1.2 数据模型

数据模型(data model)是现实世界数据特征的抽象。它不仅反映数据本身的内容,而且反映数据之间的联系。

1.2.1 数据模型概述

数据模型是数据库中数据的存储方式,是数据库系统的基础。

1. 数据模型的概念

数据的加工是一个逐步转换的过程,经历了现实世界、信息世界和计算机世界3个不同的过程,经历了两级抽象和转换,其示意图如下所示。

1)现实世界

现实世界是指客观存在的事物及其相互间的联系。现实世界中的事物有着众多的特征和相互联系,但人们只选择感兴趣的一部分来描述,如描述一件衣服或学生等特征。

2)信息世界

信息世界是人们把现实世界的信息和联系通过符号记录下来,然后用规范化的数据库定义语言来定义描述而构成的一个抽象世界。

在信息世界中,不是简单地对现实世界进行符号化,而是通过筛选、归纳、总结、命名等抽象过程产生出概念模型,用以表示对现实世界的抽象与描述。

3)计算机世界

计算机世界是将信息世界的内容数据化后的产物,将信息世界中的概念模型进一步转换成数据模型,形成便于计算机处理的数据表现形式。

2. 数据模型的研究内容

数据模型的研究包括下列3个方面。

1)概念数据模型

概念数据模型简称概念模型,是面向数据库用户的现实世界的模型,主要用来描述世界的概念化结构,不考虑计算机系统及DBMS的具体技术问题,集中精力分析数据之间的联系等。概念数据库模型必须换成逻辑数据模型,才能在数据库管理系统中实现。

2)逻辑数据模型

逻辑数据模型是在数据库中用户可以看到的数据模型,是数据库管理系统所支持的逻辑数据模型,包括网状数据模型、层次数据模型和关系数据模型3种类型。逻辑数据模型既要面向用户,又要面向系统,主要用于数据库管理系统的实现。在数据库中用数据模型来抽象、表示和处理现实世界中的数据和信息,主要研究数据的逻辑结构。

3)物理数据模型

物理数据模型是描述数据在存储介质上的组织结构的数据模型,不仅与具体的数据库管理系统相关,而且与操作系统和硬件相关。数据库管理系统为了保证其独立性与可移植性,将大部分物理数据模型的实现工作交由系统自动完成,而设计者只设计索引、聚集等特殊结构。

3. 数据模型的组成

数据模型是严格定义的一组概念的集合,是现实世界中的事物及其间联系的一种抽象表示。通常,一个数据库的数据模型由下列3部分组成。

1)数据结构

数据结构是所研究的对象类型的集合。这些对象描述数据的类型、内容、性质和数据之间的相互关系。

数据结构是刻画一个数据模型性质最重要的方面。在数据库系统中通常按照数据结构的类型来命名数据模型。例如,采用层次型数据结构、网状型数据结构、关系型数据结构的数据模型分别称为层次模型、网状模型和关系模型。

2)数据操作

数据操作是指对数据库中各种对象(类型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。例如,数据库中主要的操作有查询和更新(插入、删除、修改)两大类。数据模型要给出这些操作确切的含义、操作规则和实现操作的语言。因此,数据操作规定了数据模型的动态特性。

3)数据的约束条件

数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。

1.2.2 数据模型的分类

数据库系统模型是指数据库中数据的存储结构。根据具体数据存储需求的不同,数据库可以使用多种类型的系统模型。其中较常见的有层次模型、网状模型、关系模型以及表示现实复杂问题的面向对象的模型。

1. 层次模型

层次模型以“树结构”表示数据之间的联系,是数据库系统中最早使用的一种模型。

这种模型描述数据的组织形式像一棵倒置的树,它由节点和连线组成,其中节点表示实体。树有根、枝、叶,在这里都称为节点,根节点只有一个,向下分支,是一种一对多的关系。例如,行政机构或者家族谱的组织形式都可以看作是层次模型。

此种类型数据库的优点是层次分明,结构清晰,不同层次间的数据关联直接简单。

它的缺点是:数据将不得不以纵向向外扩展,节点之间很难建立横向的关联。对插入和删除限制较多,查询非直系的节点非常麻烦。

2. 网状模型

网状模型以“图结构”来表示数据之间的联系,主要以网状结构表示实体与实体之间的联系。

这种模型描述事物及其联系的数据组织形式就像一张网,节点表示数据元素,节点间的连线表示数据间的联系。它去掉了层次模型的两个限制,允许多个节点没有双亲节点,允许节点有多个双亲节点,此外它还允许两个节点之间有多种联系。节点之间是平等的,无上下层关系。例如学校中的“教师”“学生”“课程”“教室”等事物之间有联系但无层次关系,可认为是一种网状结构模型。

此种类型数据库的优点是能很容易地反映实体之间的关联,同时避免了数据的重复性。

其缺点是结构比较复杂,路径太多,当加入或删除数据时,牵动的相关数据较多,不易维护和重建。

3. 关系模型

关系型数据库使用的存储结构是多个二维表格,即反映事物及其联系的数据描述是以平面表格形式体现的。数据表与数据库之间存在相应的关联,这些关联将用来查询相关的数据。

在每个二维表中,每一行称为一条记录,用来描述一个对象的信息;每一列称为一个字段,用来描述对象的一个属性。

4. 面向对象模型

面向对象数据模型能完整地描述现实世界复杂的数据结构,并具有封装性和继承性等面向对象技术的特点。

面向对象的数据模型基于对象(现实世界中实体的抽象)、属性(描述对象的特性)、类(具有相同特性的对象被分组为类)、类层次(类似于一棵倒立的树,其中每个类只有一个双亲)和继承性(类层次中的对象继承上层类的属性和方法的能力)。