购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.2 数据库系统的体系结构

采用分级的方法,可以将数据库系统的结构划分为多个层次。其中,最著名的是美国ANSI/SPARC数据库系统研究组1975年提出的三级划分法,数据库被分为三个抽象级别——用户级、概念级、物理级,并分别对应三级模式——外模式、概念模式、内模式。这使得不同级别的用户可以根据其角色和工作职能观察到数据库的不同数据范围,从而有效地组织、管理数据,相比文件系统的数据管理方法而言,降低了数据冗余,保证了数据的一致性,提高了数据的独立性。

3.2.1 三级模式结构

所谓 模式 (schema),是数据库的抽象描述,数据模型是其主题。模式主要描述内容包括数据项的名称、数据项的数据类型、约束、文件之间的相互联系等。如教务管理系统中选课管理数据库的模式如图3.3所示。模式只是对数据记录类型的描述,不涉及具体实例的值,是相对稳定的。

图3.3 选课管理数据库的模式

三级模式结构是数据库领域公认的标准结构。依照三级模式结构构建起来的数据库分别称为用户级数据库、概念级数据库、物理级数据库。不同级别的用户所看到的数据库是不一样的,从而形成数据库中不同的视图。所谓 视图 ,是指观察、认识和理解数据的范围、角度和方法,是数据库在用户“眼中”的反映。

1.概念模式

概念模式简称模式,描述的是现实世界中的实体及其性质与联系,定义记录、数据项、数据的完整性约束条件及记录之间的联系,是数据库的框架。概念模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个概念模式。概念模式把用户视图有机地结合成一个整体,综合权衡所有用户的需求,实现数据的一致性,并最大限度地降低数据冗余度,准确地反映数据间的联系。依照概念模式构建的数据库就是概念级数据库,是DBA看到和使用的数据库,又称为DBA视图。概念级数据库由概念记录(即模式的一个逻辑数据单位)组成,一个数据库可有多个不同的用户视图,每个用户视图由数据库某一部分的抽象表示所组成。但一个数据库应用系统只存在一个DBA视图,它把数据库作为一个整体加以抽象表示。

2.外模式

外模式又称子模式、用户模式,描述的是数据库用户(包括程序员和终端用户)能够看见和使用的局部数据的逻辑结构和特征。用户级数据库对应于外模式,是最接近用户的一级数据库,是用户能够看到和使用的数据库,又称为用户视图。用户级数据库主要由外部记录(用户所需要的数据记录)组成,不同用户视图可以互相重叠,用户的所有操作都是针对用户视图进行的。外模式是与某一应用有关的数据的逻辑表示。用户根据外模式,用数据操纵语句或应用程序操作数据库中的数据。外模式主要描述用户视图的各个记录的组成,以及记录之间的关系、数据项的特征、数据的安全性和完整性约束条件。一个数据库可以有多个外模式。一个应用程序只能使用一个外模式。

3.内模式

内模式是整个数据库的最底层表示,它定义了存储记录的类型、存储域的表示、存储记录的物理顺序、索引和存储路径等数据的存储组织,是数据物理结构和存储方式的描述。一个数据库只有一个内模式。

物理级数据库对应于内模式,是数据库的低层表示,它描述数据的实际存储组织,又称内部视图。物理级数据库由内部记录(包含了实际所需数据,DBMS管理数据时所需的系统数据如相关指针和标志等)组成,物理级数据库并不是真正的物理存储,而是最接近于物理存储的一个抽象级。

如图3.4所示,在数据库的三级模式结构中:概念模式只有一个,是数据库的中心与关键;内模式只有一个,它依赖于概念模式,独立于外模式和存储设备;外模式面向具体的应用程序,可以有多个,它们独立于内模式和存储设备;应用程序依赖于外模式,独立于概念模式和内模式。

图3.4 数据库的三级模式结构

3.2.2 两级映射

两级映射实现了数据库体系结构中三个抽象层次之间的联系与转换。对于每一个外模式,都存在一个外模式/概念模式的映射,它确定了数据的局部逻辑结构与全局逻辑结构之间的对应关系。外模式可有多个,有多少个外模式,就有多少个外模式/概念模式的映射。由于概念模式和内模式都是唯一的,从概念模式到内模式的映射是唯一的,因此可以确定数据的全局逻辑结构与存储结构之间的对应关系。

数据库的三级模式结构通过两级映射联系了起来。用户向数据库提出数据访问请求时,通过应用程序向DBMS发出操作指令。DBMS接收到指令后,检查该操作权限是否合法。若该操作权限合法,则在数据字典中找到数据库的三级模式结构定义,把外模式中的用户请求转换成概念模式中对应的请求,然后再把这个请求转换成内模式中的请求,OS根据这一请求在存储设备中提取出数据并以物理记录的形式返回。如果是查询操作,必须经过反向的映射,即由OS把物理记录转换成内部记录,再由DBMS转换成对应的概念记录,最终根据用户外部视图匹配成外部记录的格式返回给用户,如图3.5所示。在这个数据查询的过程中,DBMS在内存为应用程序开辟一个数据库的系统缓冲区,用于数据的传输和格式的转换。

图3.5 用户查询数据的过程

3.2.3 数据独立性

数据独立性 是指在数据库三级模式结构中,某一层次上模式的改变不会使其上一层的模式也发生改变的能力。数据独立性是数据库系统最重要的目标之一。在使用数据库系统管理数据时,把数据的定义从应用程序中剥离开来,并由DBMS专门负责对数据的存取,可以大大减少数据结构改变所引起的应用程序修改和维护工作量,降低软件开发和维护的成本。数据库的三级模式结构和两级映射维护了数据与应用程序之间的无关性,保证了数据库系统具有较高数据独立性。数据库系统的数据独立性包括两个层次:逻辑独立性和物理独立性。

数据的 逻辑独立性 是指用户的应用程序与数据库的逻辑结构是相互独立的。例如,在不破坏原有记录类型之间联系的情况下增加新的记录类型,在原有记录类型之间增加新的联系,或在某些记录类型中增加新的数据项时,数据的整体逻辑结构发生变化,而用户对数据的需求没发生变化,那么数据的局部逻辑结构无须修改。这时,只需修改外模式/概念模式的映射,保证数据的局部逻辑结构不变。由于应用程序是依据数据的局部逻辑结构编写的,所以应用程序不需要修改,从而保证了数据的逻辑独立性。

数据的 物理独立性 是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。数据在磁盘上如何存储是由DBMS管理的,用户不需要了解,应用程序只需要处理数据的逻辑结构即可。当数据的存储改变时,例如改变存储设备或引进新的存储设备、改变数据的存储位置、改变物理记录的体积、改变数据的物理组织方式等,相应地调整概念模式/内模式的映射,使概念模式保持不变,因此外模式保持不变,从而不必修改应用程序,确保了数据的物理独立性。

由于应用程序对它们所访问的数据的逻辑结构依赖程度很高,因此数据的逻辑独立性往往比数据的物理独立性更难实现。 ths+rPVVHrOH0hBFqb8o5e/AgEtzByjEo6l+5pNea/EUMycgkqY97v2Fg7Q/p7cg

点击中间区域
呼出菜单
上一章
目录
下一章
×