一、数据库系统三级模式与二级映像
层次结构图
1、若从数据库管理员(DBA)的视角来看,数据库系统可分为内部系统结构和外部体系结构,其中内部体系结构通常采用三级模式结构。
(1)模式 也称为概念模式或逻辑模式,对应于概念级,它是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。 不仅要定义数据的逻辑结构,还要定义数据之间的联系,定义与数据相关的安全性、完整性等要求。它是由DBMS描述语言(DataDescription Language,DDL)来描述、定义的,体现、反映了数据库系统的整体观。
(2)外模式 也称为子模式或用户模式,对应于用户级,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。 外模式实际上是用于满足不同数据库用户需求的数据视图,即用户视图。用户可以通过外模式描述语言来描述、定义对应于用户的数据记录(外模式),也可以利用数据操纵语言(DataManipulation Language,DML)对这些数据记录进行。外模式反映了数据库的用户观。
(3)内模式 内模式也称为存储模式,对应于物理级,它是对数据库中数据物理结构和存储方式的描述,是数据在数据库内部的表示形式,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。 内模式实际上是整个数据库的最底层表示,它不同于物理层,是数据库管理员 (DBA)所见到的,特定的 DBMS 所处理的数据库的内部结构,即内部视图或存储视图。内模式定义了所有内部记录类型、索引和文件的组织方式,以及所有数据控制方面的细节。内模式由内模式描述语言来描述、定义,它是数据库的存储观。
2、二级映像
1、外模式/模式映像:所谓映像,就是一种对应规则,它指出映像双方是如何进行转换的。通过外模式一模式映射,定义和建立某个外模式与模式间的对应关系,将外模式与模式联系起来,当模式发生改变时,只要改变其映射,就可以使外模式保持不变,对应的应用程序也可保持不变;
2、模式/内模式映像:定义了数据库全局逻辑结构与物理存储之间的对应关系,模式/内模式映像是唯一的。通过模式一内模式映射,定义建立数据的逻辑结构(模式)与存储结构(内模式)间的对应关系,当数据的存储结构发生变化时,只需改变模式一内模式映射,就能保持模式不变,因此应用程序也可以保持不变。
通过外模式-模式映射和模式-内模式映射这两个映射保证了数据库系统中的数据具有较高的逻辑独立性和物理独立性。
当数据库模式发生变化时,例如关系数据库系统中增加新的关系、改变关系的属性数据类型等,可以调整外模式/模式间的映像关系,保证面向用户的各个外模式不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与应用程序的逻辑独立性,简称数据的逻辑独立性。
当数据库中数据物理存储结构改变时,即内模式发生变化,例如定义和选用了另一种存储结构,可以调整模式/内模式映像关系,保持数据库模式不变,从而使数据库系统的外模式和各个应用程序不必随之改变。这样就保证了数据库中数据与应用程序间的物理独立性,简称数据的物理独立性。
二、数据模型
1、概念
数据模型:描述的是数据的共性内容,是对现实世界数据特征的抽象,用于描述一组数据的概念和定义。数据模型是数据库中数据的存储方式,是数据库系统的基础。在数据库中,数据的物理结构又称数据的存储结构,就是数据元素在计算机存储器中的表示及其配置;数据的逻辑结构则是指数据元素之间的逻辑关系,它是数据在用户或程序员面前的表现形式,数据的存储结构不一定与逻辑结构一致。
· 层次结构图
2、数据特征与数据模型组成要素
数据的特征:
(1)静态特征:包括数据的基本结构、数据间的联系以及对数据取值范围的约束;
(2)动态特征:是指对数据可以进行符合一定规则的操作。
组成要素:
数据模型通常由数据结构、数据操作和数据约束三个要素组成。数据结构描述的是系统的静态特性,即数据对象的数据类型、内容、属性以及数据对象之间的联系。数据操作描述的是系统的动态特性,是对各种对象的实例允许执行的操作的集合,包括操作以及有关的操作规则。数据约束描述数据结构中数据间的语法和语义关联,包括相互制约与依存关系以及数据动态变化规则,以保证数据的正确性、有效性与相容性。
3、数据模型的分类
数据模型是模型化数据和信息的工具,也是数据库系统的核心和基础。
(1)概念层数据模型
概念层数据模型也称为数据的概念模型或信息模型,它用来描述现实世界的事物,与具体的计算机系统无关,且独立于任何DBMS,但容易向 DBMS 所支持的逻辑数据模型转换。
概念模型的表示方法:用 E-R 图来描述现实世界的概念模型,实体用矩形表 示;属性用椭圆形表示;联系用菱形表示。
(2)逻辑层数据模型
逻辑层是数据抽象的中间层,描述数据整体的逻辑结构。 主要的逻辑数据模型有层次模型、网状模型、关系模型、面向对象模型。
1)、层次模型:数据库最早使用的数据模型。特点:有且仅有一个结点没有父结 点,它称作根结点;其他结点有且仅有一个父结点。
2)、网状模型:以网状结构表示实体与实体之间的联系。
3)、关系模型:用二维表结构来表示实体及实体间联系的模型,并以二维表格的形式组织数据库中的数据。关系模型是建立在严格的数学概念基础上的;关系模型的概念单一,统一用关系来表示实体以及实体之间的联系,对数据的检索和更新结果同样也是用关系来表示;关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。
4)、面向对象模型:与数据库相结合所构成的数据模型称为面向对象模型。
(3)物理层数据模型
物理层数据模型,也称为数据的物理模型,其描述数据在存储介质上的组织结构,是逻辑模型的物理实现,即每一种逻辑模型在实现时都有与其相对的物理模型。从现实世界到概念模型的转换是由数据库设计人员完成的;从概念模型到逻辑模型的转换可以由数据库设计人员完成,也可以用数据库设计工具协助设计人员完成;从逻辑模型到物理模型的转换是由数据库管理系统完成的。
三、关系数据模型
关系模型包含三个组成要素,分别是关系数据结构、关系操作集合和关系完整性约束。
关系数据库系统:支持关系模型的数据库系统。
1、关系数据结构
关系模型只包含单一的数据结构,即关系。在关系模型中,现实世界的实体以及实体间的各种联系,均是使用关系来表示。在用户看来,关系模型是把数据库表示为关系的集合,且关系数据库是以二维表格的形式组织数据。
表:也称为关系,是一个二维的数据结构。
关系:一个关系逻辑上对应一张二维表,可以为每个关系取一个名称进行标识。关系可以有三种类型,即基本关系、查询表和视图表。
1)基本关系通常又称为基本表或基表,是实际存在的表,它是实际存储数据的逻辑表示;
2)查询表是查询结果;
3)视图表是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。
4)参照关系和被参照关系:参照关系也称为从关系,被参照关系也称为主关系,它们是指以外码相关联的两个关系。以外码作为主码的关系称为被参照关系;外码所在的关系称为参照关系。被参照关系与参照关系是通过外码相联系的,这种联系通常是一对多的联系。
5)关系模式:同数据模型一样,数据库也有型和值之分。在关系数据库中,关系模式是型,关系是值,即关系模式是对关系的描述。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的。这是因为关系操作在不断地更新着数据库中的数据。人们常常会把关系模式和关系都笼统地称为关系。
6)关系数据库
以关系模式作为数据的逻辑模型,并采用关系作为数据组织方式的一类数据库,其数据库操作建立在关系代数的基础上。在一个给定的应用领域中,所有关系的集合构成一个关系数据库。 关系数据库对关系是有限定的,具体要求如下:
6.1).每一个属性都是不可分解的。
6.2).每一个关系仅仅有一种关系模式。
6.3).每一个关系模式中的属性必须命名,在同一个关系模式中,属性名必须是不同的。
6.4).同一个关系中不允许出现候选码或候选键值完全相同的元组。
6.5).在关系中元组的顺序是无关紧要的,可以任意交换。
6.6).在关系中属性的顺序是无关紧要的,可以任意交换。
7)其他概念,如,列、 属性、表中的行、元组、分量、主码或主键、全码或全键、主属性和非主属性、外码或外键、域、数据类型、码或键、超码或超键、候选码或候选键。
2、 关系的完整性约束
数据库的数据完整性是指数据库中数据的正确性、相容性和一致性。
关系模型中有三类完整性约束,分别是实体完整性约束、参照完整性约束和用户定义完整性约束。
(1)实体完整性约束
实体完整性约束是指关系的主属性,即主码的组成不能为空,也就是关系的主 属性不能是空值 NULL。
(2)参照完整性约束
参照完整性约束就是定义外码和主码之间的引用规则,它是对关系间引用数据的一种限制。描述定义:若属性 F 是基本关系 R 的外码,它与基本关系 S 的 主码 K 相对应,则对 R 中每个元组在 F 上的值只允许两种可能,即要么取空值, 要么等于 S 中某个元组的主码值。
(3)用户定义完整性约束
用户定义的完整性约束是针对某一应用环境的完整性约束条件,它反映了某一具体应用所涉及的数据应满足的要求。
(4)关系模型完整性约束的检验
为了维护关系数据库中数据的完整性,在对关系数据库执行插入、删除和更新操作时,需要检验是否满足上述三类完整性约束。