认识数据库系统

912 阅读3分钟

image.png

数据库系统

数据库系统包含6要素:数据库、数据库管理系统、数据库应用程序、数据库管理员、计算机基本系统。 image.png

  • 数据库/DB(database) 数据库是相互有关联关系的数据的集合,数据库是相互有关联关系的表的集合。
    下图就是一张表(table)。 image.png
  • 数据库管理系统/DBMS(database management system) 管理数据库的软件系统,如Oracle、Sybase、SQL Server、DB2、MS Access。
  • 数据库应用程序/DBAP(database application) 针对不同的用户开发不同的应用程序,不同的应用程序提供不同的功能。
    普通用户使用数据库应用程序,然后通过数据库管理系统来使用数据库。
  • 数据库管理员/DBA(database administrator) 普通用户使用数据库应用程序,然后通过数据库管理系统来使用数据库。
    数据库管理员则直接通过数据库管理系统来管理数据库。
  • 计算机基本系统 包括计算机硬件、计算机网络、必要的输入输出设备等。

下图是一个数据库系统实例:图书管理数据库系统。 image.png

数据库管理系统/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依照用户的描述,实际进行控制。
  • 数据库维护 转储、恢复、性能检测、分析等等用于数据库维护的实用程序,一般由数据库管理员来实用和掌握。

image.png 因此,DBMS其实是为用户提供了一套数据库语言,用户通过这套数据库语言使用DBMS来操作数据库

从系统角度看DBMS

真正的数据是存储在磁盘上的,因此有个存储管理器负责控制磁盘读写。
磁盘中的数据只有装入内存,才能被CPU访问,因此有个缓冲区管理器控制着内存分配、内外存之间的交换。
通常,存储管理器、缓冲区管理器是操作系统具备的功能,当然有的DBMS也可以越过操作系统直接对磁盘数据、内存数据进行管理。
DBMS为了管理DB,在后台运行着一系列程序。其中,编译器负责将数据库语言编写的内容翻译成DBMS可以执行的命令,编译得到的结果则交给执行引擎来执行。 image.png