三、数据模型
在数据库系统中,根据实体(或数据)之间的联系方式,通常把数据模型分为层次模型,网状模型和关系模型三类。
- 层次模型
采用层次或树形结构来表示实体之间联系的模型叫层次模型,在这种结构中,多记录型之间层层具有 1-m 关系来构成层次式数据模型。它由处于不同层次的各结点和连线组成。结点表示实体集(记录型),连线表示相连两实体之间的关系,这种关系只能是 1-m 关系。通常把表示 1 的实体放在上面, 称为父结点;而表示 m 的实体放在下面,称为子结点。树的最高一层上只有一个结点,称为根。根以外的其余结点都有其上一级的结点作为父结点与它相连,同时可能有一个或多个子结点与它相连。没有子结点的结点称为叶, 如图 8.4 所示,这是一棵倒置的树形,结点 A 为根,A,B1,B2,B3,C1 为结
点,C2,C3,C4,C5,C6,D1,D2 为叶结点。
这种树可同时用于逻辑和物理数据的描述。在逻辑描述中,它们描述数据模型;在物理描述中,它们被用于描述存储方式,即描述物理结构。
在数据结构中记录从属关系的选择在某种意义上取决于存储效率,以及查询量和类型。需要提出的是,即使实际上这两种关系都可能存在,但是在层次结构中通常只表示其中的一种关系。
图 8.4 层次数据模型
层次模型表示 1-1 关系和 1-m 关系是最直接而方便的。但其中有两个限制:一是树的最高结点,即根只有一个,二是根以外的其他结点都与一个且只与一个父结点相连。这样就使得 m-n 关系不能直接用它来表示。要想用层次模型来表示 m-n 关系,必须设法先将该关系分解为 1-m 关系,然后再用层次模型来表示,这是层次模型的局限性,而简单清晰是它的优点。(实体间的 m-n 关系分解为 1-m 关系的方法,将在本章第四节第二段中介绍。)
采用层次数据模型的数据库叫做层次数据库(系统)。比较流行的层次数据库有:
IDS, IMS,SYSTEM2000 等。
- 网状模型
用网络来表示实体之间联系的模型叫网状模型。上面介绍的层次模型中每个结点与一个或多个下属结点相连,而在网络模型中则如图 8.5 所示任何一个结点可以和任意多个结点相连,即实体之间的关系是 m-n 关系。如果取
消层次模型中的两个限制,便可形成网状模型。显然,层次是网状的特殊形式,网状是层次的一般形式。所以,有时具有 m-n 关系的网状结构叫复杂网状结构。只含 I-n 关系的网状结构叫简单网状结构。
图 8.5 网状数据模型
- 关系模型
以上介绍的层次与网状模型是在传统的文件管理系统基础上发展起来的格式化模型。在格式化数据模型里,数据模型与图之间可以建立对应关系, 可以表示为 DM={R,L},R 为记录型的集合(文件),视为图的结点;L 为记录型间两两联系的集合,视为图中连接两结点间的线。在关系数据模型里, 不再将数据模型表示为图的方式,而是用二维表表示实体集合属性间的关系,同时用二维表表示实体集合之间的联系,数据的逻辑结构归结为满足一定条件的表格形式,这种表格建立在关系代数规范化理论基础上。在关系代数中把二维表格叫做“关系”(relation),并把采用二维表格形式的数据模型叫做关系数据模型。可见,关系数据库是由一系列表格组成的,在每一个表格中,行代表一些具有唯一性的实体或记录,列代表各种属性,每个表格是一个关系,因此可把关系数据库看作是表格的集合。
在层次和网状模型中,各文件之间的联系是通过指针来实现的,而在关系模型中文件(记录)之间的联系是利用各不同关系(表格)中共同的数据值,即用关键字来描述。
由于表格是人们习惯使用而且直观的一种记录数据方式,所以关系模型具有直观而使用方便的特点。例如,在学校管理中常用到的学生登记表(如表 8.1)、课程表(如表 8.2)、学生选课表(如表 8. 3)。这里学生和课程之间是 m-n 关系。著用层次或网状模型来表示是比较复杂的。我们把这两个实体之间的关系用表格即学生选课表来表示,就显得自然清晰。
表 8.1 学生登记表
学号 |
姓名 |
班级 |
家庭 |
---|---|---|---|
921501 |
张 宏 |
92 — 2 |
北京 |
921502 |
李 敏 |
92 — 2 |
上海 |
921503 |
刘 凯 |
92 — 2 |
天津 |
921504 |
林 茂 |
92 — 2 |
吉林 |
921505 |
陈 宁 |
92 — 2 |
宁夏 |
表 8.2 课 程 表
课程号 |
课程名 |
讲课教师 |
---|---|---|
010101 |
英 语 |
张 丽 |
020112 |
数 学 |
王 宁 |
020211 |
数据处理概论 |
李 平 |
050301 |
企业管 理 |
何 军 |
050302 |
会计原理 |
刘 华 |
表 8.3 学生选课表
学号 |
课程号 |
成绩 |
---|---|---|
921501 |
010101 |
优 |
921502 |
050301 |
良 |
921503 |
050302 |
优 |
921504 |
020211 |
及 |
921505 |
020112 |
良 |
921506 |
010101 |
良 |
以上三个表格之间的关系是用课程号和学号来描述的。这里课程号和学号就是关键字。
关系数据库自 70 年代以来有了极大发展,早期投入实际应用的数据库大多数是层次和网状结构的。但由于关系模型较层次和网状的结构简单、直观, 操作简便,虽发展较晚,但近年来发展却非常迅速,不断涌现出功能越来越强的各种关系数据库,比较流行的关系数据库有:大众化的 dBAsE,FoxBASE, FoxPro 和标准化的 INFORMlX,lNGRES,UNIFY,ORACLE,SYBASE 等。
在实际应用中有比以上三种基本数据模型更抽象、更高级、更一般、更接近于现实世界,更有实用价值的数据模型,那就是实体联系模型(Entity
—Relation model),简称 E-R 模型。设计好的 E-R 模型可转换为各种不同的数据库管理系统所支持的数据模型。关于 E-R 方法留到本章第四节再介
绍。