网站首页 > 技术文章 正文
数据库管理系统——基本知识概述
吴国发
2025年7月24日
内容提要:数据库管理系统(DBMS)用于建立、使用和维护数据库。本文介绍DBMS的基本知识,包括DBMS的分类、功能、组成、工作模式、技术特点等。
关键词:计算机 软件 数据库 管理系统 DBMS
数据库管理系统是一种操纵和管理数据库的大型计算机软件,用于建立、使用和维护数据库,英文为Database Management System简称DBMS。DBMS对数据库进行统一的管理和控制。DBMS具有数据定义、数据操作、数据存储与管理、数据维护、通信等功能。
本文的内容主要来自百度“百科词条”。笔者做了适当的增删和修改。
DBMS的分类
根据数据模型的不同,DBMS可以分成层次型、网状型、关系型、面向对象型等。使用最广的是关系型DBMS。
关系型数据库管理系统分成两大类:单用户数据库管理系统,多用户数据库管理系统。
本文下面所述主要是多用户数据库管理系统。
DBMS的功能
DBMS基本功能如下:
(1)数据定义:DBMS提供数据定义语言DDL(Data Definition Language),供用户定义数据库的三级模式结构、两级映像以及完整性约束和保密限制等约束。DDL主要用于建立、修改数据库的库结构。DDL所描述的库结构仅仅给出了数据库的框架,数据库的框架信息被存放在数据字典(Data Dictionary)中。
(2)数据操作:DBMS提供数据操作语言DML(Data Manipulation Language),供用户实现对数据的追加、删除、更新、查询等操作。
(3)数据库的运行管理:包括多用户环境下的并发控制、存取限制控制、完整性检查、安全性检查,以及运行日志的组织管理、事务的管理和自动恢复等。
(4)数据组织、存储与管理:包括数据字典、用户数据、存取路径等,需确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。
(5)数据库的保护:DBMS对数据库的保护主要通过四个方面来实现,即数据库的恢复、数据库的并发控制、数据库的完整性控制、数据库到安全性控制。
(6)数据库的维护:这一部分包括数据库的数据载入、转换、转储,以及数据库的重构、性能监控等功能。
(7)通信:DBMS具有与操作系统的联机处理、分时系统及远程作业输入的相关接口,负责处理数据的传送。对网络环境下的数据库系统,还应该包括DBMS与网络中其他软件系统的通信功能以及数据库之间的互操作功能。
DBMS的组成
按功能划分,数据库管理系统大致可分为6个部分:
(1)模式翻译:提供数据定义语言(DDL)。用它书写的数据库模式被翻译为内部表示。数据库的逻辑结构、完整性约束和物理储存结构保存在内部的数据字典中。数据库的各种数据操作(如查找、修改、插入和删除等)和数据库的维护管理都是以数据库模式为依据的。
(2)应用程序的编译:把包含着访问数据库语句的应用程序,编译成在DBMS支持下可运行的目标程序。
(3)交互式查询:提供易使用的交互式查询语言,如SQL。DBMS负责执行查询命令,并将查询结果显示在屏幕上。
(4)数据的组织与存取:提供数据在外围储存设备上的物理组织与存取方法。
(5)事务运行管理:提供事务运行管理及运行日志,事务运行的安全性监控和数据完整性检查,事务的并发控制及系统恢复等功能。
(6)数据库的维护:为数据库管理员提供软件支持,包括数据安全控制、完整性保障、数据库备份、数据库重组以及性能监控等维护工具。
DBMS的工作模式
DBMS的工作模式顺序如下:
(1)接受应用程序的数据请求和处理请求;
(2)将用户的数据请求(高级指令)转换成机器代码(低层指令);
(3)实现对数据库的操作;
(4)从对数据库的操作中接受查询结果;
(5)对查询结果进行处理(格式转换);
(6)将处理结果返回给用户。
DBMS的技术特点
DBMS的技术特点如下:
(1)采用复杂的数据模型表示数据结构,数据冗余小,易扩充,实现了数据共享。
(2)具有较高的数据独立性和程序独立性。数据库的独立性包括物理独立性和逻辑独立性。
(3)数据库系统为用户提供了方便的用户接口。
(4)数据库系统提供四个方面的数据控制功能,分别是并发控制、恢复、完整性和安全性。数据库中各个应用程序所使用的数据由数据库系统统一规定,按照一定的数据模型组织和建立,由系统统一管理和集中控制。
常用的DBMS
多用户数据库管理系统产品主要是Oracle、IBM DB2、MS SQL Server、Sybase、MySQL等。
关于常用的DBMS产品,我们将在下一篇文章中详细介绍。
猜你喜欢
- 2025-08-02 Linux常用命令(用户及用户组管理命令)
- 2025-08-02 如何在 Windows 11 或 10 上通过 WSL 安装 Sensu Go 监控工具
- 2025-08-02 服务器密码错误被锁定怎么解决
- 2025-08-02 Oracle数据恢复—格式化分区导致Oracle数据库数据丢失的数据恢复
- 2025-08-02 LabVIEW实现Oracle数据库的访问
- 2025-05-11 服务器数据恢复—RAID故障导致oracle无法启动的数据恢复案例
- 2025-05-11 这份MySQL全面手册,受喜爱程度不输任何大厂笔记
- 2025-05-11 【Oracle】Package 存储过程编写以及其他实用技术
- 2025-05-11 网络工程师必知:高危端口大全
- 2025-05-11 如何备考OCM认证考试?
- 08-02C|在一个结构体嵌套一个共用体实现一体多用
- 08-02C++中,常用的强制类型转换函数
- 08-02如何使用C语言编程实现一个推箱子游戏?技术核心和算法实现
- 08-02C++20 新特性(24):模板访问权限和typename的放宽
- 08-02C++零基础到工程实践
- 08-02[深度学习] Python人脸识别库face_recognition使用教程
- 08-02AI算法之怎么利用Python实现支持向量机SVM算法
- 08-02【机器学习】SVM支持向量机
- 1521℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 623℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 526℃MySQL service启动脚本浅析(r12笔记第59天)
- 492℃启用MySQL查询缓存(mysql8.0查询缓存)
- 491℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 479℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 460℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 458℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- windowsscripthost (69)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)