(2)一多对应(one to many)或多一对应(many to one)函数关系:这两种函数关 系实际上是同一种类型,它们可以记为:m或m:。如学生与其宿舍房间的联系是多一对 应函数关系(反之,则为一多对应函数关系),即多个学生对应一个房间。 (3)多多对应(many to many)函数关系:这是一种较为复杂的函数关系,可记为 mn.如教师与学生这两个实体集间的教与学的联系是多多对应函数关系。因为一个教师可 以教授多个学生,而一个学生又可以受教于多个教师。 以上四种函数关系可用图2.2表示。 E-R模型由以上三个基本概念组成。这三个基本概念之间的关系如下。 2.E-R模型三个基本概念之间的联接关系 (1)实体集(联系)与属性间的联接关系 实体是概念世界中的基本单位,属性附属于实体,它本身并不构成独立单位。一个实 体可以有若干个属性,实体以及它的所有属性构成了实体的一个完整描述。因此实体与属 性间有一定联接关系。如在人事档案中每个人(实体)可以有编号、姓名、性别、年龄、 籍贯、政治面貌等若干属性,它们组成了一个有关人(实体)的完整描述。 实体有型与值之别,一个实体的所有属性构成了这个实体的型,(如表2.1中人事档案 中的实体,它的型是编号、姓名、性别、年龄、籍贯、政治面貌等),而实体中属性值的集 合(如表2.1中138,徐英键,女,18,浙江,团员)则构成了这个实体的值。 相同型的实体构成了实体集。实体集由实体集名、实体型和实体三部分组成。如表2.1 中的每一行是一个实体,它们均有相同的型,因此表内诸实体构成了一个实体集。 表2.1人事档案简表 编号 姓名 性别 年龄 籍贯 政治面貌 138 徐英健 女 18 浙江 团员 139 赵文虎 家 23 江苏 党员 140 沈亦奇 男 20 上海 群众 141 王宾 家 21 江苏 群众 142 李红梅 女 19 安徽 团员 联系也可以附有属性,联系和它的所有属性构成了联系的一个完整描述,因此,联系 与属性间也有联接关系。如有教师与学生两个实体集间的教与学的联系,该联系尚可附有 属性一一教室号。 (2)实体(集)与联系间的联接关系 实体集间可通过联系建立联接关系,一般而言,实体集间无法建立直接关系,它只能 通过联系才能建立起联接关系。如教师与学生之间无法直接建立关系,只有通过“教与学” 的联系才能在相互之间建立关系。 表2.2实体(集)、属性、联系三者的联接关系表 实体(集) 属性 联系 实体(集) 单向 双向 属性 单向 单向 伞 系 双向 单向 上面所述的两个联接关系建立了实体(集)、属性、联系三者的关系,用表22表示。 18
18 (2) 一多对应(one to many)或多一对应(many to one)函数关系:这两种函数关 系实际上是同一种类型,它们可以记为 l:m 或 m:1。如学生与其宿舍房间的联系是多一对 应函数关系 (反之,则为一多对应函数关系),即多个学生对应一个房间。 (3) 多多对应(many to many)函数关系:这是一种较为复杂的函数关系,可记为 m:n.如教师与学生这两个实体集间的教与学的联系是多多对应函数关系。因为一个教师可 以教授多个学生,而一个学生又可以受教于多个教师。 以上四种函数关系可用图 2.2 表示。 E-R 模型由以上三个基本概念组成。这三个基本概念之间的关系如下。 2.E-R 模型三个基本概念之间的联接关系 (1)实体集(联系)与属性间的联接关系 实体是概念世界中的基本单位,属性附属于实体,它本身并不构成独立单位。一个实 体可以有若干个属性,实体以及它的所有属性构成了实体的一个完整描述。因此实体与属 性间有一定联接关系。如在人事档案中每个人(实体)可以有编号、姓名、性别、年龄、 籍贯、政治面貌等若干属性,它们组成了一个有关人(实体)的完整描述。 实体有型与值之别,一个实体的所有属性构成了这个实体的型,(如表 2.1 中人事档案 中的实体,它的型是编号、姓名、性别、年龄、籍贯、政治面貌等),而实体中属性值的集 合(如表 2.1 中 138,徐英键,女,18,浙江,团员)则构成了这个实体的值。 相同型的实体构成了实体集。实体集由实体集名、实体型和实体三部分组成。如表 2.1 中的每一行是一个实体,它们均有相同的型,因此表内诸实体构成了一个实体集。 表 2.1 人事档案简表 编号 姓名 性别 年龄 籍贯 政治面貌 138 徐英健 女 18 浙江 团员 139 赵文虎 男 23 江苏 党员 140 沈亦奇 男 20 上海 群众 141 王 宾 男 21 江苏 群众 142 李红梅 女 19 安徽 团员 联系也可以附有属性,联系和它的所有属性构成了联系的一个完整描述,因此,联系 与属性间也有联接关系。如有教师与学生两个实体集间的教与学的联系,该联系尚可附有 属性——教室号。 (2)实体(集)与联系间的联接关系 实体集间可通过联系建立联接关系,一般而言,实体集间无法建立直接关系,它只能 通过联系才能建立起联接关系。如教师与学生之间无法直接建立关系,只有通过“教与学” 的联系才能在相互之间建立关系。 表 2.2 实体(集)、属性、联系三者的联接关系表 实 体(集) 属 性 联 系 实体(集) × 单 向 双 向 属 性 单 向 × 单 向 联 系 双向 单 向 × 上面所述的两个联接关系建立了实体(集)、属性、联系三者的关系,用表 2.2 表示
ER模型中有三个基本概念以及它们间的两种基本关系。它们将现实世界中错综复杂 的现象抽象成简单明了的几个概念及关系,具有极强的概括性,因此,E-R模型目前己成 为表示概念世界的有力工具。 3.E-R模型的图示法 E-R模型另一个很大的优点是它可以用一种非常直观的图的形式表示,这种图称为E-R 图。在E-R图中我们分别用不同的几何图形表示E-R模型中的三个概念与两个联接关系。 (1)实体集表示法。在E-R图中用矩形表示实体集,在矩形内写上该实体集之名。 如实体集学生(student)、课程(course)可用图2.3表示。 student course 图2.3 实体集表示法 (2)属性表示法。在E-R图中用椭圆形表示属性,在椭圆形内写上该属性名。如学 生有属性学号(sno)、姓名(sn)及年龄(sa),可以用图2.4表示。 sno sn sC 图2.4属性表示法 图2.5联系表示法 (3)联系表示法。在E-R图中用菱形表示联系,在菱形内写上该联系名。如学生与 课程间联系SC,用图2.5表示。 三个基本概念分别用三种几何图形表示,它们间的联接关系也可用图形表示。 (4)实体集(联系)与属性间的联接关系。属性依附于实体集,因此,它们之间有联 接关系。在E-R图中这种关系可用联接这两个图形间的无向线段表示(一般情况下可用直 线)。如实体集student有属性sno(学号)、sn(学生姓名)及sa(学生年龄):实体集course 有属性cno(课程号)、cn(课程名)及pno(预修课号),此时它们可用图2.6联接。 student course sa cno pno 图2.6 实体集的属性间的联接 属性也依附于联系,它们间也有联接关系,因此也可用无向线段表示。如联系$C可 与学生的课程成绩属性g建立联接,用图2.7表示。 SC 图2.7联系与属性间的联接 (5)实体集与联系间的联接关系。在ER图中实体集与联系间的联接关系可用联接 这两个图形间的无向线段表示。如实体集student与联系SC间有联接关系,实体集course 与联系$C间也有联接关系,因此它们间可用无向线段相联,如图2.8所示。 19
19 E-R 模型中有三个基本概念以及它们间的两种基本关系。它们将现实世界中错综复杂 的现象抽象成简单明了的几个概念及关系,具有极强的概括性,因此,E-R 模型目前已成 为表示概念世界的有力工具。 3.E-R 模型的图示法 E-R模型另一个很大的优点是它可以用一种非常直观的图的形式表示,这种图称为E-R 图。在 E-R 图中我们分别用不同的几何图形表示 E-R 模型中的三个概念与两个联接关系。 (1)实体集表示法。在 E-R 图中用矩形表示实体集,在矩形内写上该实体集之名。 如实体集学生(student)、课程(course)可用图 2.3 表示。 图 2.3 实体集表示法 (2)属性表示法。在 E-R 图中用椭圆形表示属性,在椭圆形内写上该属性名。如学 生有属性学号(sno)、姓名(sn)及年龄(sa),可以用图 2.4 表示。 图 2.4 属性表示法 图 2.5 联系表示法 (3)联系表示法。在 E-R 图中用菱形表示联系,在菱形内写上该联系名。如学生与 课程间联系 SC,用图 2.5 表示。 三个基本概念分别用三种几何图形表示,它们间的联接关系也可用图形表示。 (4)实体集(联系)与属性间的联接关系。属性依附于实体集,因此,它们之间有联 接关系。在 E-R 图中这种关系可用联接这两个图形间的无向线段表示(一般情况下可用直 线)。如实体集 student 有属性 sno(学号)、sn(学生姓名)及 sa(学生年龄);实体集 course 有属性 cno(课程号)、cn(课程名)及 pno(预修课号),此时它们可用图 2.6 联接。 属性也依附于联系,它们间也有联接关系,因此也可用无向线段表示。如联系 SC 可 与学生的课程成绩属性 g 建立联接,用图 2.7 表示。 图 2.7 联系与属性间的联接 (5)实体集与联系间的联接关系。在 E-R 图中实体集与联系间的联接关系可用联接 这两个图形间的无向线段表示。如实体集 student 与联系 SC 间有联接关系,实体集 course 与联系 SC 间也有联接关系,因此它们间可用无向线段相联,如图 2.8 所示。 student course sno sn sa SC SC g sno sn sa student course cno cn pno 图 2.6 实体集的属性间的联接
student course 图2.8实体集与联系间的联接关系 有时为了进一步刻划实体间的函数关系,还可在线段边上注明其对应的函数关系,如 1:l,1:n,n:m等。如student与course间有多多函数对应关系,此时可以用图2.9表示。 n m student course 图2.9实体集间的函数关系表示图 实体集与联系间的联接可以有多种,上面所举例子均是两个实体集间联系叫二元联系, 也可以是多个实体集间联系,叫多元联系。如工厂、产品与用户间的联系PU是一种三元 联系,可用图2.10表示。 FPU 图2.10多个实体集间联系的联接方法 一个实体集内部可以有联系。如某公司职工(employee)与上下级管理(manage)间 的联系,可用图2.11(a)表示。 实体集间可有多种联系。如教师(T)与学生(S)之间可以有教学(E)联系也可有 同志(C)间的联系,可用图2.11(b)表示。 employee manage (a) (b) 图2.11实体集间多种联系 矩形、椭圆形、菱形以及按一定要求相互间相联接的线段构成了一个完整的E-R图。 例2.1由前面所述的实体集student、.course及附属于它们的属性和它们间联系SC 以及附属于$C的属性g,构成了一个有关学生、课程以及他们的成绩和他们间的联系的概 念模型。用E-R图表示如图2.12所示。 sno sn sd sa cno cn pno student n course 图2.12E-R图的一个实例 20
20 图 2.8 实体集与联系间的联接关系 有时为了进一步刻划实体间的函数关系,还可在线段边上注明其对应的函数关系,如 1:1,1:n,n:m 等。如 student 与 course 间有多多函数对应关系,此时可以用图 2.9 表示。 图 2.9 实体集间的函数关系表示图 实体集与联系间的联接可以有多种,上面所举例子均是两个实体集间联系叫二元联系, 也可以是多个实体集间联系,叫多元联系。如工厂、产品与用户间的联系 FPU 是一种三元 联系,可用图 2.10 表示。 图 2.10 多个实体集间联系的联接方法 一个实体集内部可以有联系。如某公司职工(employee)与上下级管理(manage)间 的联系,可用图 2.11(a)表示。 实体集间可有多种联系。如教师(T)与学生(S)之间可以有教学(E)联系也可有 同志(C)间的联系,可用图 2.11(b)表示。 (a) (b) 图 2.11 实体集间多种联系 矩形、椭圆形、菱形以及按一定要求相互间相联接的线段构成了一个完整的 E-R 图。 例 2.1 由前面所述的实体集 student、course 及附属于它们的属性和它们间联系 SC 以及附属于 SC 的属性 g,构成了一个有关学生、课程以及他们的成绩和他们间的联系的概 念模型。用 E-R 图表示如图 2.12 所示。 图 2.12 E-R 图的一个实例
例2.2图2.I3给出了一个工厂的物资管理E-R图,它由职工(employee),仓库 (warehouse),项目(project),零件(part),供应商(supplier)等五个实体集以及供应、 库存、领导、工作等四个联系所组成。 供应商号)(姓名)(地址)(电话 仓库号)(面积(电话 职工号) (姓名)(年龄 仓库 仓库 工作 职工 m 供应 <库存 、库存量 上级1 下级 、供应量 0 领导 项目 零件 、项目号预算(开工期 (零件号)名称规格(单价 图2.13某工厂物资管理E-R图 在概念上,E-R模型中的实体、属性与联系是三个有明显区别的不同概念,但是在分 析客观世界的具体事物时,往往会产生混淆甚至区别不清。这是构造E-R模型最困难的地 方,这主要靠经验与积累,当然也有一些规则可循,但关键取决于应用的背景以及设计人 员的理解。 2.3.2扩充的E-R模型一一EE-R模型 ER模型在表示概念世界中使用较为普遍,但是,它在表示上尚有不足,最主要的是 联系的语义不够丰富。因此,不少人对E-R模型作了改正与扩充,Teorey等人提出的扩充 E-R模型称为EE-R模型(extend entity-relationship model),它在E-R模型的基础上适当作 了扩充,它保持了ER模型简明、清晰的特点,同时又弥补了E-R模型的一些不足。 EE-R模型是E-R模型的扩充,其主要扩充了如下: 在EE-R模型中增加了一种特殊的联系叫IS-a联系。IS-a联系建立了两个实体集间的 继承(inheritance)关系,亦即是说如有实体集A,B,而B是A的一个子集且具有比A 更多的属性,此时,通过IS-a联系,B中实体可以“继承”A中所有属性(因为B是A的 子集,因此B中实体必出现在A中),同时B还可有自己的属性,此时A称为B的超(实 体)集(super-entity set),而B称为A的子(实体)集(sub-entity set).。 例2.3设有学生(student)、研究生(graduatestudent)实体集。学生实体集有属性学 号(sno)、姓名(sn)、系别(sd)及年龄(sa),而研究生也是学生,它具有学生的所有属 性,同时还有属性导师姓名(adviser--name)以及研究方向(research--field)。此时,“学生” 与“研究生”间可建立起IS-a联系,该联系一旦建立,“研究生”即可继承“学生”的所 有属性,亦即是说,此时“研究生”可视为有sno,sn,sd,sa及adviser--name,research-field 等六个属性。 在E-R模型中有E-R图,而在EE-R模型中则有EE-R图,它基本与E-R图一样,也 仅在上面所述的扩充上增加了新的表示。在EE-R图中两实体集间IS-a联系可用有有向线 段相连并用圈O表示联系,而线段的方向由子(实体)集指向超(实体)集。 21
21 例 2.2 图 2.13 给出了一个工厂的物资管理 E-R 图,它由职工(employee),仓库 (warehouse),项目(project),零件(part),供应商(supplier)等五个实体集以及供应、 库存、领导、工作等四个联系所组成。 图 2.13 某工厂物资管理 E-R 图 在概念上,E-R 模型中的实体、属性与联系是三个有明显区别的不同概念,但是在分 析客观世界的具体事物时,往往会产生混淆甚至区别不清。这是构造 E-R 模型最困难的地 方,这主要靠经验与积累,当然也有一些规则可循,但关键取决于应用的背景以及设计人 员的理解。 2.3.2 扩充的 E-R 模型——EE-R 模型 E-R 模型在表示概念世界中使用较为普遍,但是,它在表示上尚有不足,最主要的是 联系的语义不够丰富。因此,不少人对 E-R 模型作了改正与扩充,Teorey 等人提出的扩充 E-R 模型称为 EE-R 模型(extend entity-relationship model),它在 E-R 模型的基础上适当作 了扩充,它保持了 E-R 模型简明、清晰的特点,同时又弥补了 E-R 模型的一些不足。 EE-R 模型是 E-R 模型的扩充,其主要扩充了如下: 在 EE-R 模型中增加了一种特殊的联系叫 IS-a 联系。IS-a 联系建立了两个实体集间的 继承(inheritance)关系,亦即是说如有实体集 A,B,而 B 是 A 的一个子集且具有比 A 更多的属性,此时,通过 IS-a 联系,B 中实体可以“继承”A 中所有属性(因为 B 是 A 的 子集,因此 B 中实体必出现在 A 中),同时 B 还可有自己的属性,此时 A 称为 B 的超(实 体)集(super-entity set),而 B 称为 A 的子(实体)集(sub-entity set)。 例 2.3 设有学生(student)、研究生(graduatestudent)实体集。学生实体集有属性学 号(sno)、姓名(sn)、系别(sd)及年龄(sa),而研究生也是学生,它具有学生的所有属 性,同时还有属性导师姓名(adviser-name)以及研究方向(research-field)。此时,“学生” 与“研究生”间可建立起 IS-a 联系,该联系一旦建立,“研究生”即可继承“学生”的所 有属性,亦即是说,此时“研究生”可视为有 sno,sn,sd,sa 及 adviser-name,research-field 等六个属性。 在 E-R 模型中有 E-R 图,而在 EE-R 模型中则有 EE-R 图,它基本与 E-R 图一样,也 仅在上面所述的扩充上增加了新的表示。在 EE-R 图中两实体集间 IS-a 联系可用有有向线 段相连并用圈 O 表示联系,而线段的方向由子(实体)集指向超(实体)集
例2.4例2.3所示的EE-R图可用图2.14表示。 EE-R模型比E-R模型有更丰富的语义和更强的表达力,同时仍保持E-R简明性,此 外,EER图基本上继承了E-R图直观、明了的特点。因此,这种模型在表示概念世界时 比E-R模型更为有效。在本书中后面凡涉及概念世界的描述时均采用此种模型。 sno student graduatestudent adviser-name research-field 图2.14例2.3的EE-R图 最后我们用一个较为复杂的例子结束对EER模型的讨论。 例2.5可用图2.15所示的EE-R图表示大学、校长、职工间的概念模型。 uname uaddress utel university universityleader manage employee president eno ename eage edept psex proomno ptel 图2.15 一个EER图 2.3.3面向对象模型 面向对象模型(object--oriented model)是近几年来迅速崛起并得到发展的一种模型, 该模型是在吸收了以前各种概念模型优点的基础上并借鉴了面向对象方法而建立的模型。 这种模型具有更强的表示能力,特别是在表示非传统的数据领域如CAD、工程领域、多媒 体领域等复杂数据关系领域具有极强的表达力。 在面向对象模型中的最基本的概念是对象(object),它是客观世界中概念化的基本实 体,它可以是简单的实体如一个螺丝帽、一片树叶,也可以是复杂的实体如地球、宇宙飞 船。它可以是具体的实体,也可以是抽象的实体。总之,相互能区别的事物均可视为对象, 在数据库系统中,对象是一个基本数据单位,如数据元组即为对象。 1.对象的组成 (1)对象标识符:每个对象均有一个能相互区别的名字叫对象标识符(object Identifier, 简称OID)。 22
22 例 2.4 例 2.3 所示的 EE-R 图可用图 2.14 表示。 EE-R 模型比 E-R 模型有更丰富的语义和更强的表达力,同时仍保持 E-R 简明性,此 外,EE-R 图基本上继承了 E-R 图直观、明了的特点。因此,这种模型在表示概念世界时 比 E-R 模型更为有效。在本书中后面凡涉及概念世界的描述时均采用此种模型。 图 2.14 例 2.3 的 EE-R 图 最后我们用一个较为复杂的例子结束对 EE-R 模型的讨论。 例 2.5 可用图 2.15 所示的 EE-R 图表示大学、校长、职工间的概念模型。 图 2.15 一个 EE-R 图 2.3.3 面向对象模型 面向对象模型(object-oriented model)是近几年来迅速崛起并得到发展的一种模型, 该模型是在吸收了以前各种概念模型优点的基础上并借鉴了面向对象方法而建立的模型。 这种模型具有更强的表示能力,特别是在表示非传统的数据领域如 CAD、工程领域、多媒 体领域等复杂数据关系领域具有极强的表达力。 在面向对象模型中的最基本的概念是对象(object),它是客观世界中概念化的基本实 体,它可以是简单的实体如一个螺丝帽、一片树叶,也可以是复杂的实体如地球、宇宙飞 船。它可以是具体的实体,也可以是抽象的实体。总之,相互能区别的事物均可视为对象, 在数据库系统中,对象是一个基本数据单位,如数据元组即为对象。 1.对象的组成 (1)对象标识符:每个对象均有一个能相互区别的名字叫对象标识符(object Identifier, 简称 OID)