数据库原理与实践(Access版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.5 数据模型

1.5.1 数据模型的概念

模型是现实世界特征的模拟和抽象。在数据库技术中,数据模型用于表示实体类型及实体类型间联系。数据模型是数据库的基础,是数据库的形式框架,用于描述一组数据的概念和定义,数据模型包含三个层面。

1.概念数据模型

概念数据模型是面向数据库用户现实世界的数据模型,主要用来描述世界的概念化结构,它使数据库的设计人员在设计的初始阶段,摆脱计算机系统及DBMS的具体技术问题,集中精力分析数据以及数据之间的联系。概念数据模型与具体的DBMS无关,必须换成逻辑数据模型,才能在DBMS中实现。

2.逻辑数据模型

逻辑数据模型是用户从数据库所看到的数据模型,是具体的DBMS所支持的数据模型,如网状数据模型、层次数据模型、关系数据模型等。此模型既要面向用户,又要面向系统。

3.物理数据模型

物理数据模型是描述数据在存储介质上组织结构的数据模型,它不但与具体的DBMS有关,而且还与操作系统和硬件有关。每一种逻辑数据模型在实现时都有对应的物理数据模型。DBMS为了保证其独立性与可移植性,大部分物理数据模型的实现工作由系统自动完成,而设计者只设计索引、聚集等特殊结构。

1.5.2 数据模型组成要素

一般地讲,任何一种数据模型都是严格定义的概念集合。这些概念必须能够精确地描述系统的静态特性、动态特性和完整性约束条件。因此,数据模型通常都是由数据结构、数据操作和完整性约束三个要素组成。

1.数据结构

数据结构研究数据之间的组织形式(数据的逻辑结构)、数据的存储形式(数据的物理结构)以及数据对象的类型等。存储在数据库中的对象类型集合是数据库的组成部分。数据结构用于描述系统的静态特性。在数据库系统中,通常按照其数据结构的类型来命名数据模型。例如层次结构、网状结构、关系结构的数据模型分别命名为层次模型、网状模型和关系模型。

2.数据操作

数据操作是指对数据库中的各种对象(型)的实例(值)允许执行的操作集合,包括操作及有关操作规则,用于描述系统的动态特性。数据库主要有查询和更新(包括插入、删除、修改)两大类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级),以及实现操作的语言。

3.数据完整性约束

数据完整性约束是一组完整性规则的集合。完整性规则用于指明给定的数据模型中数据及其联系所具有的制约和储存规则,以保证数据的正确性、有效性和相容性。数据模型应该反映和规定本数据模型应遵守的基本性、通用性和完整性约束。此外,数据模型还应该提供定义完整性约束的机制,以反映所涉及的数据必须遵守的特定语义约束。例如,学生的“年龄”只能取值大于零的值;人员信息中的“性别”只能为“男”或“女”;学生选课信息中的“课程号”的值必须取自学校已经开设课程的课程号等。

1.5.3 逻辑模型的基本类型

数据模型是数据库系统的核心和基础,各种DBMS软件都是基于某种数据模型的。所以通常也按照数据模型的特点将传统数据库系统分成层次数据库、网状数据库和关系数据库三类。其中,层次模型和网状模型统称为非关系模型,非关系模型的数据库系统在20世纪70年代非常流行,到了20世纪80年代,关系模型的数据库系统以其独特的优点逐渐占据了主导地位,成为数据库系统的主流。

1.层次模型

层次数据库系统采用层次模型作为数据的组织方式。用树型(层次)结构表示实体类型以及实体间的联系是层次模型的主要特征。层次结构是一棵树。树的结点是记录类型,根结点只有一个,根结点以外的结点只有一个双亲结点,每一个结点可以有多个孩子结点。层次模型如图1.13所示。

层次模型的另一个最基本的特点是,任何一个给定的记录值(也称为实体)只有按照其路径查看时,才能显出它的全部意义,而且所有子记录值均不能够脱离双亲记录值而独立存在。

层次数据库系统的典型代表是IBM公司的推出的IMS(Information Management Systems)信息库管理系统,这是1968年IBM公司推出的第一个大型的商用数据库管理系统,曾在20世纪70年代商业上广泛应用。目前,仍有某些用户在使用。

2.网状模型

用网状结构表示实体类型及实体之间联系的数据模型称为网状模型。在网状模型中,一个子结点可以有多个父结点,在两个结点之间可以有一种或多种联系。记录之间联系是通过指针实现的,因此数据的联系十分密切。网状模型的数据结构在物理上易于实现,效率较高,但是编写应用程序较复杂,程序员必须熟悉数据库的逻辑结构。网状模型(Network Model)一般使用有向图结构表示实体类型及实体间联系。

网状模型的特点是记录之间联系通过指针实现,MN联系也容易实现(一个MN联系可拆成两个1:N联系),查询效率较高,网状模型如图1.14所示。

图1.13 层次模型示意图

图1.14 网状模型示意图

网状模型允许结点有多个双亲结点,并且允许两个结点之间有多种联系(复合联系)。网状模型可以更直接地去描述现实世界,层次模型实际上是网状模型的一个特例。网状数据库模型对于层次和非层次结构的事物都能比较自然的模拟,但网状模型的缺点是数据结构复杂且编程复杂。

3.关系模型

网状数据库和层次数据库已经很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。用户在对这两种数据库进行存取时,仍然需要明确数据的存储结构,指出存取路径。而后来出现的关系数据库较好地解决了这些问题,关系模型是目前最常用的一种数据模型。关系模型比较简单,容易为初学者接受。关系在用户看来是一个表格,记录是表中的行,属性是表中的列。关系模型是数学化的模型,可把表格看成一个集合,因此集合论、数理逻辑等知识可引入到关系模型中来。

关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。

图1.11对应的关系模式如表1.1所示,表1.1中各关系模式对应的关系如表1.2、表1.3、表1.4所示。

表1.1 关系模式

表1.2 学生关系

表1.3 课程关系

表1.4 成绩关系

与其他数据模型相比,关系模型突出的优点如下:

① 关系模型提供单一的数据结构形式,具有高度的简明性和精确性;

② 关系模型的逻辑结构和相应的操作完全独立于数据存储方式,具有高度的数据独立性;

③ 关系模型使数据库的研究建立在比较坚实的数学基础上;

④ 关系数据库语言与一阶谓词逻辑的固有内在联系,为以关系数据库为基础的推理系统和知识库系统的研究提供了方便。