数据库系统
数据库系统包含6要素:数据库、数据库管理系统、数据库应用程序、数据库管理员、计算机基本系统。
- 数据库/DB(database)
数据库是相互有关联关系的数据的集合,数据库是相互有关联关系的表的集合。
下图就是一张表(table)。 - 数据库管理系统/DBMS(database management system) 管理数据库的软件系统,如Oracle、Sybase、SQL Server、DB2、MS Access。
- 数据库应用程序/DBAP(database application)
针对不同的用户开发不同的应用程序,不同的应用程序提供不同的功能。
普通用户使用数据库应用程序,然后通过数据库管理系统来使用数据库。 - 数据库管理员/DBA(database administrator)
普通用户使用数据库应用程序,然后通过数据库管理系统来使用数据库。
数据库管理员则直接通过数据库管理系统来管理数据库。 - 计算机基本系统 包括计算机硬件、计算机网络、必要的输入输出设备等。
下图是一个数据库系统实例:图书管理数据库系统。
数据库管理系统/DBMS
从用户角度看DBMS
从用户角度看,DBMS应该具备什么功能?
- 数据库定义 数据库中应该包含哪些表,DBMS是不知道的,需要用户自己告诉DBMS需要创建哪些表,因此DBMS需要提供一套数据定义语言(DDL,Data Definition Language),这样用户就可以用DDL来描述所要建立的表的格式,然后DBMS依照用户的定义来创建数据库及其中的table。
- 数据库操纵 要能对数据库中的数据进行增删改查操作,DBMS需要提供一套数据操纵语言(DML,Data Manipulation Language),这样用户就可以用DML来描述所要进行的增删改查操作,然后DBMS按照用户的操作描述实际执行这些操作。
- 数据库控制 要控制对数据库中数据的使用,决定哪些用户可以使用,哪些用户不可以,DBMS需要提供一套数据控制语言(DCL,Data Control Language),这样用户就可以使用DCL来描述其对数据库所要实施的控制,然后DBMS依照用户的描述,实际进行控制。
- 数据库维护 转储、恢复、性能检测、分析等等用于数据库维护的实用程序,一般由数据库管理员来实用和掌握。
因此,DBMS其实是为用户提供了一套数据库语言,用户通过这套数据库语言使用DBMS来操作数据库。
从系统角度看DBMS
真正的数据是存储在磁盘上的,因此有个存储管理器负责控制磁盘读写。
磁盘中的数据只有装入内存,才能被CPU访问,因此有个缓冲区管理器控制着内存分配、内外存之间的交换。
通常,存储管理器、缓冲区管理器是操作系统具备的功能,当然有的DBMS也可以越过操作系统直接对磁盘数据、内存数据进行管理。
DBMS为了管理DB,在后台运行着一系列程序。其中,编译器负责将数据库语言编写的内容翻译成DBMS可以执行的命令,编译得到的结果则交给执行引擎来执行。