数据库系统(1)

1. 数据库系统构成

① 数据库(DB): Database
② 数据库管理系统(DBMS): Database Management System
③ 数据库应用(DBAP): Database Application
④ 数据库管理员(DBA): Database Administrator
⑤ 计算机基本系统
数据库系统(1)
图 1显示了基本的数据库结构

下图以图书馆数据库系统的实例来展示各个部分的具体场景:
数据库系统(1)
图2 数据库是以不同的表的集合的形式组成,存储大量的有用信息;数据库管理系统 DBMS 用来对数据库进行操作;而数据库的应用程序DBAP 则是针对用户的不同需求,通过数据库管理系统来对数据库的信息进行使用;数据库管理员 DBA 主要是对数据库管理系统有各种操作的权限

2. 数据库语言

① 数据定义语言DDL----DBMS提供给用户,以便用户定义数据格式
② 数据操纵语言DML----DBMS提供给用户,以便用户对数据进行操作
③ 数据控制语言DCL----DBMS提供给用户,以便用户对数据进行控制
④ 数据库各种操作的执行----DBMS按用户要求进行定义、操纵、控制和维护

① ② ③ 这三种语言构成了“SQL”语言:是一种结构化的数据库语言
数据库系统(1)

2.1 数据库语言与高级语言的差别

① 一条数据库语言相当于高级语言的一个或多个循环程序
② 数据库语言可以嵌入到高级语言(宿主语言:C/C++/C#/java)中使用
数据库系统(1)

3. 数据库管理系统

3.1 从用户角度看数据库管理系统的功能

【数据库的定义功能】: 定义数据库中 Table 的名称、标题(内含的属性名程及其对该属性的值的要求)等

  • DBMS 提供一套数据定义语言DDL(Data Definition Language)给用户
  • 用户使用DDL描述其要建立的表的格式
  • DBMS根据用户的定义,创建数据库其中的Table

数据库系统(1)

【数据库的操纵功能】: 向数据库的Table中增加/删除/更新数据及对数据进行查询、检索、统计等

  • DBMS 提供一套数据操纵语言DML(Data Manipulation Language)给用户
  • 用户使用DML描述其所要进行的增、删、改、查等操作
  • DBMS根据用户的操作描述执行这些操作

数据库系统(1)

【数据库的控制功能】: 控制数据库中的数据使用–哪些用户可以使用,哪些不能使用

  • DBMS 提供一套数据控制语言DCL(Data Control Language)给用户
  • 用户使用DCL描述其所要实施的控制
  • DBMS根据用户的操作描述执行这些操作

数据库系统(1)

【数据维护功能】: 转储/恢复/重组/性能检测/分析····

  • DBMS 提供一系列程序(实用程序/例行程序)给用户
  • 在这些程序中提供了对数据库维护的各种功能
  • 用户使用这些程序进行各种数据库维护操作

数据库的维护的实用程序,一般都是由数据库管理员(DBA)来使用和掌握的
数据库系统(1)

3.2 从系统实现角度看数据库管理系统

【数据库管理系统的实现】:

  • 形式 → 构造 → 自动化

数据库系统(1)
数据库语言用来对数据库管理系统进行指示,数据库管理系统通过解析数据库语言来对数据库进行操作。

DBMS为了完成DB的管理,在后台运行着一系列程序:

  • 语言编译器:将数据库语言书写的内容翻译成DBMS可以执行的命令,例如:DDL编译器,DML编译器,DCL编译器等等
  • 查询优化(执行引擎)与查询实现(基本命令的不同执行算法):提高数据库检索速度的手段;例如贯穿于数据存取各个阶段的优化程序
  • 数据存取与索引:提供数据在磁盘、磁带等上的高效存取手段,例如:存储管理器,缓冲区管理器,索引/文件和记录管理器等
  • 通信控制:提供网络环境下数据库操作与数据传输的手段
  • 事务管理:提供提高可靠性并避免并发操作错误的手段
  • 故障恢复:使数据库自动恢复到故障发生前正确状态的手段,例如提供了备份、运行日志操控等使用程序
  • 安全性控制:提供合法性检验,避免非授权、非法用户访问数据库的手段
  • 完整性控制:提供数据及数据操作正确性检查的手段
  • 数据字典管理:管理用户已经定义的信息
  • 应用程序接口(API):提供应用程序使用DBMS特定功能的手段
  • 数据库数据装载、重组等实用程序
  • 数据库性能分析:统计在运行过程中数据库的各种性能数据,便于优化运行
  • 等等。。。。

数据库系统(1)
数据库系统(1)
同时可以看到:

① 上半部分是DBMS系统管理的部分
② 下半部分是计算机操作系统的管理

但是有些时候,有些系统中,DBMS系统可以越过操作系统直接对底层的内存和数据库进行管理。

【典型的数据库管理系统(DBMS)】

  • Oracle
  • DB 2(IBM)
  • Sybase
  • MS SQL Server
  • MS Access
  • MS Foxpro
    … …

【数据库管理系统小结】
数据库系统(1)

4. 有关数据库的相关工作岗位和素质要求

① 终端用户:

  • interactive SQL

② 应用程序开发人员:

  • 程序化的 SQL
  • 一些事务的概念 – concept about transaction

③ 数据库分析人员和设计人员

  • 数据建模能力
  • 有关标准化的概念

④ 数据库管理员 DBA

  • 数据库维护能力
  • 了解有关安全性、完整性、故障修复的知识

⑤ 数据库管理系统设计和开发人员

  • 上述所有实现技术

⑥ 特殊或者技术性的新型数据库管理系统

  • NoSQL, DB, XML DB, MultiMedia DB, …

5. 本章知识回顾

数据库系统(1)

后续学习内容安排

  • 数据库的基本知识与关系模型
  • 数据库语言SQL
  • 数据建模与数据库的设计
  • 数据库管理系统的实现技术