3.1 数据库管理系统概述
3.1.1 关系数据库的体系结构
关系模型的数据结构简单,而且有完善的理论支持数据操作,但在实现可应用的数据库管理系统时,必须考虑各类数据库用户的特点和需求,提供相关管理功能。美国国家标准协会提出的数据库的三级模式结构,从不同用户的角度对数据模型进行抽象,从而指导数据库管理系统的实现。
1.三级模式结构概述
使用数据库的不同人员,例如,应用程序员、系统分析员和数据库管理员等,由于工作职责不同,接触和使用数据库的范围各不相同,从而形成了各自的数据库视图。所谓视图,是指观察、认识和理解数据的范围、角度和方法。根据各类人员与数据库的不同关系,可把视图分为三种:对应于应用程序员的外部视图、对应于系统分析员的逻辑视图和对应于数据库管理员的内部视图。关系数据库以三级模式及三级模式之间的两级映射关系形成整体体系结构,三级模式分别是外模式、模式和内模式(见图3.1)。
图3.1 数据库的三级模式结构
2.三级模式简介
(1)模式
模式又称逻辑模式,对应于一个应用的所有关系模式的集合、关系完整性约束及其所允许的关系操作就构成了关系数据库的逻辑模式。它是由数据库设计者综合所有相关数据对象、按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图。它是系统分析员所看到的全局数据库视图。一个数据库只有一个逻辑模式。如图2.6所示为“e学习”系统数据库的关系模型,反映了数据库逻辑模式的概要信息。
(2)外模式
外模式又称子模式或用户模式,是某个或某些应用程序员所看到的数据库的局部数据视图。外模式可以通过定义“查询”或“视图”从“基本关系模式”中变换导出,是从模式中导出的子模式。一个数据库可以有多个外模式。
“查询”是根据指定条件对表进行查询所得的结果表,是临时表,一般不再使用,因此具有一次性和冗余性的特点。“视图”是为了方便查询和处理而设计的数据虚表,在数据库中只存储结构的定义,而不存储数据,数据来自基本表。
【例3.1】从学生表、课程表和选课表变换得到学生成绩视图。
以图2.6中的数据库关系模型为基础,从学生表、课程表和选课表分别选取相关属性,得到外模式:学生成绩(姓名,课程名,成绩),学生成绩视图如图3.2所示。
图3.2 学生成绩视图的定义
(3)内模式
内模式又称存储模式,是数据库全体数据的机器内部表示或存储结构描述,是真正存放在外存储器中的物理数据库,它描述数据记录、索引、文件的组织方式和在存储介质上的物理结构。内模式是数据库管理员创建和维护数据库的视图。一个数据库只有一个内模式。内模式主要关注以下问题。
① 关系存储结构。数据库的逻辑结构与系统平台无关,但数据库的物理结构存储必须考虑具体的计算机系统和数据库管理系统,采用它们所支持的数据库文件结构存储方法,设计数据库文件的存储位置,选用它们所支持的数据类型描述和完整性约束规则来定义数据表。
② 关系存取方法。在数据库管理系统中,关系表中的数据按记录存储。为了提高对数据记录的查询效率,通常采用索引方法来建立数据记录的存取顺序。索引与书的目录或字典检字索引的原理是一样的。数据库管理系统一般集成多种快速查找算法,但这些算法基本上都是以数据记录排序为前提的。
3.模式间的映射关系
数据库的三级模式是数据模型在三个层次上的抽象表示。为了实现这三个抽象层次间的联系和转换,数据库管理系统在三级模式之间提供两级映射关系(见图3.1)。
(1)外模式与模式之间的映射关系
外模式与模式之间的映射关系保证了数据的逻辑独立性,即当数据库的逻辑结构发生变化时,可通过调节“外模式/模式”之间的映射关系保证外模式不变,那么建立在外模式基础上的应用程序也不需要改变。
【例3.2】学生年龄视图的定义。
基于关系模式:学生(学号,姓名,性别,年龄)建立外模式:学生年龄(学号,年龄),如图3.3(a)所示。应用程序根据外模式学生年龄编写。
在后续应用中发现,“年龄”值会由于时间变化变得不准确,因此需要将学生表的“年龄”属性修改为“出生日期”。这时我们只要调整“模式/外模式”之间的映射关系,即原来外模式中“年龄”是直接从学生表中的“年龄”属性获得的,现在改为通过当前日期和学生表的“出生日期”计算得到,如图3.3(b)所示。外模式不变,建立在外模式上的应用程序也不用修改,实现了数据的逻辑独立性。
图3.3 学生年龄视图的定义
(2)模式与内模式之间的映射关系
模式与内模式之间的映射关系保证了数据的物理独立性,即:当数据的存储结构发生变化时,可以通过调节“模式/内模式”之间的映射关系保证模式不变。例如,当学生表的存储位置、存取方式发生变化时,数据库管理系统通过调整“模式/内模式”之间的映射关系保证模式不变。
3.1.2 关系数据库管理系统
1.数据库管理系统的概念
数据库管理系统(DataBase Management System,DBMS)是以数据库的三级模式结构为指导实现的数据库管理软件。它位于应用程序与操作系统之间,是数据库应用系统开发必不可少的一个系统软件。如图3.4所示,数据库应用程序提出数据操作要求,需要通过数据库管理系统访问数据库,数据库管理员也要通过数据库管理系统对数据库实施管理。
数据库管理系统一般由商业软件公司或开源社区开发。流行的关系型数据库管理系统有很多,如SQL Server、Oracle、MySQL等,它们的基本原理和主要功能相似。
图3.4 数据库管理系统的作用
2.数据库管理系统的功能
数据库管理系统的主要功能如下。
(1)数据定义:支持建立数据库,定义数据库的模式结构、数据库的完整性约束规则和安全性控制方式等。
(2)数据操作:支持对数据库中数据的检索及更新(包括插入、删除和修改)操作。
(3)数据库的运行管理:完成数据库运行时的控制和管理,包括并发控制、安全性检查、完整性约束规则的检查、数据库的内部管理和维护(如索引维护等)。
(4)数据库的维护:提供包括数据库初始数据输入、数据转换、数据库备份和恢复、数据导入和导出、数据库重组、性能监视和分析等功能。
(5)数据库语言的支持:支持用数据库语言(如SQL语言)来使用和管理数据库。