数据库系统及应用(第2版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 数据模型

对于模型,人们并不陌生。一张地图,一组建筑设计沙盘,一架精致的航模飞机都是具体的模型,模型是现实世界特征的模拟和抽象。

数据模型也是一种模型,它是对现实世界数据特征的抽象,即是用来描述数据、组织数据和对数据进行操作的。由于计算机不可能直接处理现实世界中的具体事物,所以人们必须事先把具体事物转换成计算机能够处理的数据。

现有的数据库系统均是基于某种数据模型的。数据模型是数据库系统的核心和基础。

根据模型应用的不同目的,可以将模型划分概念模型、数据模型和物理模型。其中,物理模型主要是描述数据在计算机中存储的具体细节,表示能由DBMS理解的概念模式。物理模型提供的概念通常对计算机专家很有意义,但对于一般最终用户则没什么用处,因此在这里我们就不加阐述了。下面简要介绍概念模型和数据模型。

1.3.1 概念模型

概念模型也称信息模型,是按用户的观点对数据和信息建模,是现实世界到机器世界的一个中间层次。

概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员与用户之间进行交流的语言。因此,概念模型一方面要有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,另一方面应该简单、清晰、易于理解。

概念模型主要涉及一些基本的概念(如实体、属性、联系等)和其相应的表示方法,即实体-联系图。实体-联系图中:

  • 实体:用矩形表示,矩形框内写明实体名。
  • 属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。
  • 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1︰1,1︰n或m︰n)。

1.3.2 数据模型

数据模型即逻辑数据模型,它是按照计算机系统的观点对数据建模,表示独立于DBMS的逻辑视图,隐藏了数据存储的一些细节,主要用于DBMS的实现。它是数据库系统的核心和基础。各种机器上实现的DBMS软件都是基于某种数据模型或者说是支持某种数据模型的。

一般地讲,数据模型是严格定义的一组概念的集合,它描述了系统的静态特征、动态特征和完整性约束条件。因此,数据模型通常由数据结构、数据操作和完整性约束三部分组成。

目前,数据库领域中常用的数据模型主要包括层次模型、网状模型、关系模型和面向对象模型等。其中,层次模型和网状模型统称为格式化模型。

格式化模型的数据库系统在20世纪70年代至80年代初非常流行,在数据系统产品中占据了主导地位,现在已逐渐被关系模型的数据库系统取代。20世纪80年代以来,面向对象的方法和技术在计算机各个领域,包括程序设计语言、软件工程、信息系统设计、计算机硬件设计等各方面都产生了深远的影响,也促进了数据库中面向对象数据模型的研究和发展。许多关系数据库厂商为了支持面向对象模型,对关系模型做了扩展,从而产生了对象关系模型。

1.层次模型

层次模型是数据库系统中最早出现的数据模型。用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次模型(Hierarchical Model)。

层次模型是指用树型结构表示实体及其之间的联系,树中每一个结点代表一个记录类型,树状结构表示实体型之间的联系。在一个层次模型中的限制条件是:树的根结点有且仅有一个结点,无父结点;其他结点有且仅有一个父结点。

2.网状模型

用有向图结构表示实体类型及实体间联系的数据结构模型称为网状模型(Network Model)。

在数据库中,把满足以下两个条件的基本层次联系集合称为网状模型:

(1)允许一个以上的结点无双亲;

(2)一个结点可以有多于一个的双亲。

网状模型是一种比层次模型更具普遍性的结构,它去掉了层次模型的两个限制,允许多个结点没有双亲结点,允许结点有多个双亲结点,此外它还允许两个结点之间有多种联系(称之为复合联系)。因此网状模型可以更直接地去描述现实世界。而层次模型实际上是网状模型的一个特例。

3.关系模型

关系模型是目前最重要的一种数据模型,它是用二维表的形式表示实体和实体间联系的数据模型。

关系数据模型是以集合论中的关系概念为基础发展起来的。关系模型中无论是实体还是实体间的联系均由单一的结构类型——关系来表示。在实际的关系数据库中的关系也称表。一个关系数据库就是由若干个表组成。

关系模型由关系数据结构、关系操作集合和关系的完整性约束组成。

4.面向对象模型

面向对象模型是捕获在面向对象程序设计中所支持的对象语义的逻辑数据模型,它是持久的和共享的对象集合,具有模拟整个解决方案的能力。面向对象数据模型把实体表示为类,一个类描述了对象属性和实体行为。但和实体不同的是,一个对象所包含的信息不只是对象内部事实之间的联系,也包括它和其他对象的联系。因此,对象里的事实被赋予了更多的语义。面向对象数据库通过逻辑包含来维护联系,它是面向对象概念与数据库技术相结合的产物。

第2章将对各种模型进行详细介绍。