1. 数据库系统构成
① 数据库(DB): Database
② 数据库管理系统(DBMS): Database Management System
③ 数据库应用(DBAP): Database Application
④ 数据库管理员(DBA): Database Administrator
⑤ 计算机基本系统
图 1显示了基本的数据库结构
下图以图书馆数据库系统的实例来展示各个部分的具体场景:
图2 数据库是以不同的表的集合的形式组成,存储大量的有用信息;数据库管理系统 DBMS 用来对数据库进行操作;而数据库的应用程序DBAP 则是针对用户的不同需求,通过数据库管理系统来对数据库的信息进行使用;数据库管理员 DBA 主要是对数据库管理系统有各种操作的权限
2. 数据库语言
① 数据定义语言DDL----DBMS提供给用户,以便用户定义数据格式
② 数据操纵语言DML----DBMS提供给用户,以便用户对数据进行操作
③ 数据控制语言DCL----DBMS提供给用户,以便用户对数据进行控制
④ 数据库各种操作的执行----DBMS按用户要求进行定义、操纵、控制和维护
① ② ③ 这三种语言构成了“SQL”语言:是一种结构化的数据库语言
2.1 数据库语言与高级语言的差别
① 一条数据库语言相当于高级语言的一个或多个循环程序
② 数据库语言可以嵌入到高级语言(宿主语言:C/C++/C#/java)中使用
3. 数据库管理系统
3.1 从用户角度看数据库管理系统的功能
【数据库的定义功能】: 定义数据库中 Table 的名称、标题(内含的属性名程及其对该属性的值的要求)等
- DBMS 提供一套数据定义语言DDL(Data Definition Language)给用户
- 用户使用DDL描述其要建立的表的格式
- DBMS根据用户的定义,创建数据库其中的Table
【数据库的操纵功能】: 向数据库的Table中增加/删除/更新数据及对数据进行查询、检索、统计等
- DBMS 提供一套数据操纵语言DML(Data Manipulation Language)给用户
- 用户使用DML描述其所要进行的增、删、改、查等操作
- DBMS根据用户的操作描述执行这些操作
【数据库的控制功能】: 控制数据库中的数据使用–哪些用户可以使用,哪些不能使用
- DBMS 提供一套数据控制语言DCL(Data Control Language)给用户
- 用户使用DCL描述其所要实施的控制
- DBMS根据用户的操作描述执行这些操作
【数据维护功能】: 转储/恢复/重组/性能检测/分析····
- DBMS 提供一系列程序(实用程序/例行程序)给用户
- 在这些程序中提供了对数据库维护的各种功能
- 用户使用这些程序进行各种数据库维护操作
数据库的维护的实用程序,一般都是由数据库管理员(DBA)来使用和掌握的
3.2 从系统实现角度看数据库管理系统
【数据库管理系统的实现】:
- 形式 → 构造 → 自动化
数据库语言用来对数据库管理系统进行指示,数据库管理系统通过解析数据库语言来对数据库进行操作。
DBMS为了完成DB的管理,在后台运行着一系列程序:
- 语言编译器:将数据库语言书写的内容翻译成DBMS可以执行的命令,例如:DDL编译器,DML编译器,DCL编译器等等
- 查询优化(执行引擎)与查询实现(基本命令的不同执行算法):提高数据库检索速度的手段;例如贯穿于数据存取各个阶段的优化程序
- 数据存取与索引:提供数据在磁盘、磁带等上的高效存取手段,例如:存储管理器,缓冲区管理器,索引/文件和记录管理器等
- 通信控制:提供网络环境下数据库操作与数据传输的手段
- 事务管理:提供提高可靠性并避免并发操作错误的手段
- 故障恢复:使数据库自动恢复到故障发生前正确状态的手段,例如提供了备份、运行日志操控等使用程序
- 安全性控制:提供合法性检验,避免非授权、非法用户访问数据库的手段
- 完整性控制:提供数据及数据操作正确性检查的手段
- 数据字典管理:管理用户已经定义的信息
- 应用程序接口(API):提供应用程序使用DBMS特定功能的手段
- 数据库数据装载、重组等实用程序
- 数据库性能分析:统计在运行过程中数据库的各种性能数据,便于优化运行
- 等等。。。。
同时可以看到:
① 上半部分是DBMS系统管理的部分
② 下半部分是计算机操作系统的管理
但是有些时候,有些系统中,DBMS系统可以越过操作系统直接对底层的内存和数据库进行管理。
【典型的数据库管理系统(DBMS)】
- Oracle
- DB 2(IBM)
- Sybase
- MS SQL Server
- MS Access
- MS Foxpro
… …
【数据库管理系统小结】
4. 有关数据库的相关工作岗位和素质要求
① 终端用户:
- interactive SQL
② 应用程序开发人员:
- 程序化的 SQL
- 一些事务的概念 – concept about transaction
③ 数据库分析人员和设计人员
- 数据建模能力
- 有关标准化的概念
④ 数据库管理员 DBA
- 数据库维护能力
- 了解有关安全性、完整性、故障修复的知识
⑤ 数据库管理系统设计和开发人员
- 上述所有实现技术
⑥ 特殊或者技术性的新型数据库管理系统
- NoSQL, DB, XML DB, MultiMedia DB, …
5. 本章知识回顾
后续学习内容安排
- 数据库的基本知识与关系模型
- 数据库语言SQL
- 数据建模与数据库的设计
- 数据库管理系统的实现技术