数据库第9章 实体联系模型Word格式文档下载.docx
- 文档编号:17657239
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:12
- 大小:165.93KB
数据库第9章 实体联系模型Word格式文档下载.docx
《数据库第9章 实体联系模型Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据库第9章 实体联系模型Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
实体(entity,也称为实体集)是一组具有相同特征或属性的对象的集合。
在E-R模型中,相似的对象被分到同一个实体中。
实体可以包含物理(或真实)存在的对象,也可以包含概念(或抽象)存在的对象。
每个实体用一个实体名和一组属性来标识。
一个数据库通常包含许多不同的实体,实体的一个实例表现为一个具体的对象,比如一个具体的学生。
E-R模型中的“实体”对应关系数据库中的一张表,实体的实例对应表中的一行记录。
2.实体的分类
实体可以分为强实体和弱实体。
强实体(strongentity,也称为强实体集)指不依赖于其他实体而存在的实体,比如“职工”实体。
强实体的特点是:
每个实例都能被实体的主键唯一标识。
弱实体(weakentity,也称为弱实体集)指依赖于其他实体而存在的实体,比如“职工子女”实体,该实体必须依赖于“职工”实体的存在而存在。
强实体有时也称为父实体、主实体或者统治实体,弱实体也称为子实体、依赖实体或从实体。
在E-R模型中,一般用单线矩形框表示强实体,用双线矩形框表示弱实体。
图9-1描述了“职工”实体和其中的两个实例,从这个图也可以看出实体和实例的区别。
实体:
职工
属性
实例
属性名
域
实例1
实例2
职工号
长度为6字节的字符串
Z10001
Z10002
姓名
长度为8字节的字符串
张小平
李红丽
性别
长度为2字节的字符串
男
女
出生日期
日期类型
1980-2-5
1976-8-10
图9-1有实例的实体
9.1.2联系
联系指用户业务中相关的2个或多个实体之间的关联。
它表示现实世界的关联关系。
联系只依赖于实体间的关联,在物理和概念上是不存在的。
联系的一个具体值称为联系实例。
联系实例是可唯一区分的关联,它包括每一个参与实体的一个实例,表明特定的实体实例间是相互关联的。
联系也被视为抽象对象。
联系通过连线将相互关联的实体连接起来。
在E-R建模中,相似的联系被归到一个联系(也称为联系集或联系型)中。
这样,一个具体的联系表达了一个或多个实体之间的一组有意义的关联,例如假设“学生”实体和“课程”实体之间存在一个“选课”联系,则如果学生(081001,张三,男)选了课程(C001,计算机网络),则(081001,张三,男)和(C001,计算机网络)之间就存在一个联系实例,这个联系实例可表示为(081001,C001,…)。
具有相同属性的联系实例都属于一个联系。
联系有如下特性:
●联系的度
●连接性
●存在性
●n元联系
1.联系的度
联系的度指联系中相关联的实体的数量,一般有递归联系或一元联系、二元联系和三元联系。
(1)递归联系:
递归联系指同一实体的实例之间的联系。
在递归联系中,实体中的一个实例只与同一实体中的另一个实例相互关联,如图9-2(a)所示。
在图9-2中,“管理”是实体“职工”与“职工”之间的递归联系。
递归联系也称为一元联系。
参与联系的每一个实例都有特定的角色。
联系的角色名对递归联系非常重要,它确定了每个参与者的功能。
在“管理”联系中“职工”实体的第一个参与者的角色名为“管理者”,第二个参与者的角色名为“被管理”。
当两个实体之间不止一个联系时,角色名就很有用。
而当参与联系的实体之间的作用很明确时,联系中的角色名就不是必须的了。
(2)二元联系:
二元联系指两个实体之间的关联,比如部门和职工、班和学生、学生和课程等都是二元联系的例子。
二元联系是最常见的联系,其联系的度为2。
图9-2(b)所示的是“部门”和“职工”之间的二元联系。
(3)三元联系:
三元联系指三个实体之间的关联,其联系的度为3。
用一个与三个实体相连接的菱形来表示三元联系,如图9-2(c)。
在图9-2(c)中,三个实体“顾客”、“商品”和“商店”与一个菱形“购买”相连接。
当二元联系不能充分准确地描述三个实体间的关联语义时,则需要采用三元联系来描述。
不管是哪种类型的联系,都需要指明实体间的连接是“一”还是“多”。
图9-2联系的度
2.联系的连接性
联系的连接性描述联系中相关联实体间映射的约束,取值为“一”或“多”。
例如,对图9-2(b)所示的E-R图,实体“部门”和“职工”之间为一对多的联系,即对“职工”实体中的多个实例,在“部门”中至多有一个实例与其关联。
实际的连接数目称为联系的连接基数。
由于基数值常随着联系实例发生变化,所以基数比连接性使用的少。
图9-3描述了二元联系中的三种基本连接结构:
一对一(1:
1)、一对多(1:
n)和多对多(m:
n)。
对图9-3(a)所示一对一连接,表示一个部门只有一个经理,而且一个人只担任一个部门的经理,这两个实体的最大和最小连接基数都仅为1。
如果是如图9-3(b)所示的一对多连接,则表示一个部门可有多名职工,而一个职工只能在一个部门工作。
“职工”端的最大和最小连接基数分别为n和1。
“部门”端的最大和最小连接基数都为1。
如果是如图9-3(c)所示的多对多连接,则表示一个职工可以参与多个项目,一个项目可以由多个职工来完成。
“职工”和“项目”的最大连接基数分别为m和n,最小连接基数都为1。
如果m和n的值分别为10和5,则表示一个职工最多可以参与5个项目,一个项目最多可以由10个职工来完成。
图9-3联系的连接性
3.n元联系
在n元联系中,用具有n个连接的菱形来表示n个实体之间的关联,每个连接对应一个实体。
图9-4所示就是一个n元联系的例子。
图9-4n元联系
4.联系的存在性
联系的存在性指某个实体的存在依赖于其它实体的存在。
图9-5中给出了一些联系存在的例子。
联系中实体的存在分为强制和非强制(也称为可选的)两种。
强制存在要求联系中任何一端的实体的实例都必须存在,而非强制存在允许实体的实例可以不存在。
例如实体“职工”可以管理某个“部门”,也可以不管理任何“部门”,因此“职工”和“部门”之间的“被管理”联系中“部门”实体是非强制存在的。
而对“部门”和“职工”之间的“拥有”联系,如果要求每个部门必须有职工,而且每个职工必须属于某个部门,则“部门”和“职工”相对“拥有”联系来说都是强制存在的。
对于强制存在的实体,一般都会使用“必须”这个词来描述。
在E-R图中,在实体和联系的连线上标○表示是非强制存在(如图9-5(a)所示);
在实体和联系的连线上加一条垂直线表示强制存在(如图9-5(b)所示)。
如果在连线上既没有标○,也没有加垂直线,则表示类型未知(如图9-5(c)所示),在图9-5(c)例子中,实体既不是强制存在的也不是非强制存在的,最小连接定为1。
图9-5联系的存在性
9.1.3属性
实体的特性或联系的特征都称为属性。
用一组属性来描述一个实体。
同一个实体中的实例具有相同或相似的属性。
例如:
“学生”实体的属性有姓名、学号、性别等。
实体中的每个属性都有取值范围,属性的取值范围称为值域。
值域定义了属性的所有取值,例如:
如果职工的年龄在18到60岁之间,则可以将“职工”实体的“年龄”属性定义为整型,且值域为18到60。
一个属性可以由多个值域构成。
属性“生日”的值域由年、月、日的值域构成。
多个属性可以共享一个值域,该值域称为属性域。
属性域的值是一组一个或多个属性所允许的取值。
例如,同一企业中“工人”和“管理员”的“生日”属性可以共享一个属性域。
属性值描述每个实例,它是数据库存储的主要数据。
“职工”试题中“姓名”属性的取值可以是具有5个汉字的字符串,“身份证号”的取值可以是18位数字等等。
联系也可以具有属性。
图9-6中“职工”实体和“项目”实体间的多对多联系“参与”具有“分配的任务”、“开始日期”和“结束日期”属性。
在这个例子中,当给定一个具体职工和一个具体项目后,有一组“分配的任务”、“开始日期”和“结束日期”属性值与其对应;
当单独描述“职工”或“项目”时,这三个属性都有多个值与其对应。
通常情况下,只有二元多对多联系和三元联系才具有属性,而一对一联系和一对多联系通常没有属性。
这是因为如果联系至少有一端是单一实体,则可以很明确地将属性分配给某个实体而不需要分配给联系。
图9-6联系的属性
属性可以分为以下几类:
●简单属性
●复合属性
●单值属性
●多值属性
●派生属性
下面我们分别介绍这几类属性。
1.简单属性
简单属性是由一个独立成分构成的属性。
简单属性不可再分成更小的成分。
简单属性也称为原子属性。
“学生”实体中的学号、姓名、性别属性都是简单属性的例子。
2.复合属性
复合属性是由多个独立存在的成分构成的属性。
一些属性可以划分成更小的独立成分。
例如,假设“职工”实体中有“地址”属性,该属性有“**省**市**区**街道”形式的取值,则这种形式的取值可进一步分解为“省”、“市”、“区”和“街道”四个属性,而“街道”又可分为街道号、街道名和楼牌号三个简单属性。
如果“职工”实体中包含外国人,则外国人的名字经常分为“名”(first_name)和“姓”(last_name)两部分,因此“姓名”又可以拆分为“名”和“姓”两部分。
图9-7说明了复合属性的例子。
图9-7复合属性
复合属性可以是有层次的,如图9-7(b)所示的“地址”属性,其中的“街道”可划分为三个简单属性:
街道名、街道号和楼牌号。
这些简单属性值的集合构成了复合属性的值。
3.单值属性
若某属性对于特定实体中的每个实例都只取一个值,则这样的属性为单值属性。
“学生”实体中每个实例的“学号”属性都只有一个值,比如“0812101”,则该属性即为单值属性。
大多数属性均为单值属性。
4.多值属性
若某属性对于特定实体中的每个实例可以取多个值,则这样的属性即为多值属性。
也就是说,多值属性的取值可以不止一个。
例如“职工”的“技能”属性,一个职工可以有多项技能,比如“总体设计”、“程序设计”、“数据库管理”。
可以对多值属性的取值数目进行上、下界的限制。
可以限定“技能”属性的取值为1~3。
在E-R图中,用双线圆角矩形表示是多值属性,如图9-8所示。
图9-8E-R图中各种属性的表示
5.派生属性
派生属性的值是由相关联的属性或属性组派生出来的,这些属性可以来自同一实体,也可以来自不同实体。
例如,“职工”实体中的“工龄”属性的值可以由该职工的“参加工作日期”和当前日期计算得到,所以“工龄”属性就是派生属性。
在E-R图中用虚线的圆角矩形表示是派生属性,如图9-8所示。
在有些情况下,属性值可以派生于同一实体中的实例。
例如,“职工”实体的“总人数”属性的值可以通过计算“职工”实体中的实例总数获得。
6.标识属性
在一个实体中,每个实例需要能被唯一识别。
可以用实体中的一个或多个属性来标识实体实例,这些属性就称为是标识属性。
标识属性指能够唯一标识实体中每个实例的属性或属性组。
例如,“职工”实体中的标识属性是“职工号”,“项目”实体中的标识属性是“项目号”。
在E-R图中标识属性用下划线标识,如图9-8中的“职工号”。
在某些实体中,如果单个属性都不能满足标识属性的要求,那么就用两个或多个属性作为标识属性。
这些用于唯一识别一个实例的属性组称为复合标识符。
图9-9是一个复合标识符的例子,其中,“列车”实体有一个复合标识符“列车标识”。
“列车标识”属性由“车次”和“发车时间”组成。
“车次”和“发车时间”属性组能够唯一地标识从始发站到目的站的各列车实例。
图9-9复合标识符
与此类似,联系的标识符是指唯一标识联系中的属性或属性组。
联系通常由多个属性共同标识。
大多数情况下,联系的标识属性也是参与联系的实体的标识属性。
例如,在图9-10中,“学号”和“课程号”属性组能够唯一地标识“选课”联系中的每个实例。
“学号”和“课程号”属性也是该联系的参与实体中的标识属性。
如果实体标识符和联系中的标识符的值域相同,那么为了方便,通常习惯将实体标识符与联系中的标识符同名。
图9-10中的“学号”是“学生”实体的标识符,同时也标识“选课”联系中的学生。
图9-10联系的标识符
9.1.4约束
联系通常采用特定约束来限制联系集合中的实体组合。
约束要反映现实世界中对联系的限定。
例如,“部门”实体要求每个部门必须有一个员工,“职工”实体中的每个人必须有一种技能。
联系中约束的主要类型有:
多样性约束、基数约束和参与约束等。
1.多样性约束
多样性指一个实体所包含的每个实例都通过某种联系与另一个实体的同一实例相关联。
它约束了实体相关联的方式,是由企业或用户确立的原则或商业规则的一种表示。
在为用户业务建模时,定义和表示用户业务中的所有约束是很重要的。
2.基数约束
基数约束指定了一个实体中的实例与另一个实体中的每个实例相关联的数目。
基数约束分为最大基数约束和最小基数约束两种。
最小基数约束指一个实体中的实例与另一个实体中的每个实例相关联的最小数目,最大基数约束指一个实体中的实例与另一个实体中的每个实例相关联的最大数目。
例如,假设一名职工只管理一个部门,一个部门只由一名职工管理,则“职工”和“部门”之间的基数约束都是1。
如图9-11所示。
3.参与约束
参与约束指明一个实体是否依赖于通过联系与之关联的其他实体。
参与约束分为全部参与约束(也称为强制参与)和部分参与(也称为可选参与)约束两种。
全部参与约束指一个实体中的所有实例都必须通过联系与另一个实体相关联。
全部参与约束也称为存在依赖。
部分参与约束指一个实体中的部分实例通过联系与另一个实体相关联,但不是所有的都必须。
例如,假设所有部门都有一个管理者,但并不是每个职工都管理一个部门,则“职工”和“部门”间的参与约束就是0或1,而“部门”和“职工”间的参与约束是1。
图9-11一对一联系的基数约束与参与约束
4.排除约束
在排除约束中,对多个关系的通常或默认的处理是包含OR,OR允许某个实体或全部实体都参与。
但在有些情况下,排除约束(不相交或不包含OR)可能会影响多个关系,它允许在几个实体中最多只有一个实体实例参与到只有一个根实体的联系中。
图9-12排除约束示例
图9-12说明了排除约束的一个例子,在这个例子中,根实体“工作任务”有两个相关的实体:
“外部项目”和“内部项目”。
“工作任务”可以分配到“外部项目”中或者是“内部项目”中,但不能同时分配到这两个实体中。
这意味着,在“外部项目”和“内部项目”实体的实例中最多只有一个能够应用到“工作任务”的实例中。
9.2E-R图符号
E-R模型通常用实体-联系图(E-R图)表示,E-R图是E-R模型的图形表示。
我们在本书第2章2.2.2节介绍了基本的E-R图并给出了E-R图的一些表达符号,本章我们对E-R模型进行了更深入的介绍,根据本章对E-R模型的扩展,E-R图的表示也有相应的表达符号,如图9-15所示。
图9-13E-R图的符号
习题
1.什么是强实体?
什么是弱实体?
请举例说明。
2.什么是联系?
联系和联系实例的区别是什么?
3.有哪些不同类型的联系?
请各举一例说明。
4.什么是联系的度?
请举例说明不同类型的联系的度。
5.什么是联系的存在性?
请举例说明不同类型的联系的存在性。
6.什么是递归联系?
7.什么是属性?
属性有哪些类型?
8.有某大学的教学管理数据库,包含的信息有教师(Teacher_ID为标识属性)和所教的课程。
针对下面不同的语义环境,画出相应的E-R图。
(1)每位教师可以在多个学期教授同一门课程并且记录每次教学信息。
(2)每位教师可以在多个学期教授同一门课程并且只记录最近一次的教学信息。
(3)每位教师必须教授多门课程并且只记录最近一次的教学信息。
(4)每位教师只教授一门课程并且每门课程必须被多位教师教授。
9.某大学需要用数据库来管理学生、教师、课程以及学生的修课信息。
需求如下:
(1)每位教师的姓名是唯一的。
(2)每门课程的课程名是唯一的。
(3)每门课程都有相应学分。
(4)每门课程由一位教师负责,学校需要记录教师的姓名和地址信息。
(5)每门课程都有多位助教。
(6)每位助教可以辅导多门课程。
(7)助教不仅可以进行教学辅导,还可以负责一些课程。
(8)每个学生有唯一的学号。
(9)每位学生在学习一些特定课程前,必须完成相应的先修课程的学习。
(10)每门课程可以有多位学生学习。
(11)每位学生可以修多门课程,学校需要记录学生的姓名、地址和联系电话。
请根据以上需求,确定实体和联系并构建E-R图。
10.一个企业的数据库需要存储如下信息:
职工:
职工号,工资,电话
部门:
部门号,部门名,人数
职工_子女:
姓名,年龄
每个职工都在某个部门工作,每个部门由一个职工管理。
当父母确定时,其孩子的名字是唯一的。
一旦父母离开该企业,孩子的信息也不保存。
请根据以上信息,画出E-R图。
11.某商店业务系统数据库需要存储如下信息:
(1)一个商店可从多个供应商购买货物,供应商由“供应商编号”标识。
(2)需要记录从各供应商购买每件商品的数量以及商品价格,而且还需要记录供应商的地址。
(3)供应的商品由“商品编号”标识,并且每个商品都有描述信息。
(4)每个供应商可以有多个地址。
请根据以上信息,确定该业务实体和联系并构建相应的E-R图。
12.某企业包含多个部门,每个部门有若干职工,每个部门可以承担若干项目,职工可以参与到项目中。
现需要维护如下信息:
(1)需要记录职工的编号和姓名信息,其中“编号”为职工的标识属性。
(2)所有职工都归属于某个部门,部门由“部门名”标识。
(3)每个职工可参与一个或多个项目,每个项目有“项目编号”和“项目预算”属性。
(4)每个项目由一个部门负责,一个部门可以负责多个项目。
(5)每个职工只能参加其所在部门承担的项目,同时允许什么项目也不参加的职工存在。
请根据以上信息,完成下列要求:
(1)确定实体和联系并构建E-R图。
(2)如果每个职工都参加所在部门的所有项目,是否需要修改该E-R图?
(3)如果需要记录每个职工在每个项目上花费的时间(花费时间),是否需要修改该E-R图?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库第9章 实体联系模型 数据库 实体 联系 模型