返回首页

第3章 实体联系模型(E-R模型)

时间:2019-08-09 来源:原创/投稿/转载作者:管理员点击: 162

  第3章 实体联系模型(E-R模型)_工学_高等教育_教育专区。第3章 实体联系模型(E-R模型) 第3章 实体联系模型(E-R模型) 本章内容 3.1 E—R模型 3.2 E—R图的设计方法 3.3 E—R模型到关系模型的转换 3.1 E—R模

  第3章 实体联系模型(E-R模型) 第3章 实体联系模型(E-R模型) 本章内容 3.1 E—R模型 3.2 E—R图的设计方法 3.3 E—R模型到关系模型的转换 3.1 E—R模型 实体-联系方法(Entity―Relationship Approach)。 概念模型是现实世界到信息世界的第一层抽象, 是数据库设计人员进行数据库设计的有力工具,也是 数据库设计人员和用户之间进行交流的语言。 概念模型一方面应该具有较强的语义表达能力, 能够方便、直接地表达应用中的各种语义知识,另一 方面它还应该简单、清晰、易于用户理解。 3.1 E—R模型 3.1.1 E-R图的组成要素及其画法 3.1.2 两实体集间不同联系情况的E-R图表示法 3.1.3 同一实体集内部不同联系情况的E-R图表示法 3.1.4 两个以上实体集之间多对多联系的E-R图表示法 3.1.1 E-R图的组成要素及其画法 1.E-R图要素 E-R图的基本要素有四个:实体集、联系、属性、主关键字。 2.绘制方法 把相互联系的实体集(方框)通过联系(菱形框)连接起来,注 明联系方式,再把实体集的属性(椭圆框)连到相应实体集上。 需注意的是:能作为属性的就不要作为实体,这有利于E—R图的简化。 E―R图中使用的各种构件如下图所示: 椭圆 矩形 菱形 线段 双椭圆 虚椭圆 双线 双边框的矩形 双边框的菱形 E―R图中使用的各种符号 矩形: 表示实体集。 椭圆: 表示属性。 菱形: 表示联系集。 线段: 将属性连接到实体集或将实体集连接到联系集。 双椭圆: 表示多值属性。 虚椭圆: 表示派生属性。 双线: 表示一个实体全部参与到联系集中。 双边框的矩形: 表示弱实体集。 双边框的菱形: 表示弱实体集对应的标识性联系. 派生属性: 这类属性的值可以从别的相关属性或实体 派生出来。 例如, 学生的年龄可以通过其出生日期计 算出来。 E–R模型有两个明显的优点:一是接近人的思想,容易 理解;二是与计算机无关,用户容易接受。因此,E–R模型 已经成为数据库概念设计的一种重要方法,它是设计人员和 不熟悉计算机的用户之间的共同语言。 一般遇到一个实际问题,总是先设计一个E–R模型,然 后再把E–R模型转换成计算机能实现的数据模型。 3.1.2 两实体集间不同联系情况的E-R图表示法 【例3-1】两个实体集之间的一对 一的联系的绘制方法。 假设某学院有若干个班级,每 个班级只有一个辅导员,每个辅导 员只管理一个班级。则辅导员和班 级之间是一对一的联系。班级和辅 导员的属性分别如下: 辅导员——工号,姓名,性别,年 龄,学历 班级——班号,班级名 另外,辅导员和班级之间是 一个管理联系,这种管理用一个属 性任职时间来描述,请根据描述画 出能够反映实体集之间的信息关系 的E-R图。 【例3-2】 两个实体集之间的 一对多的联系的绘制方法。 假设在某出版管理系统中, 有两个实体集:出版社和图书。 出版社用来出版图书,且规定 一本图书只能由一个出版社出 版,一个出版社可以出版多本 图书。出版社和图书之间是一 对多的联系。出版社和图书的 属性分别如下: 出版社——社号,地点,电话 图书——书号,书名,价格 另外,在出版联系中要反映出 出版图书的数量。请根据描述 画出能够反映实体集之间的信 息关系的E-R图。 【例3-3】两个实体集之间的多 对多的联系的绘制方法。 假设在某图书管理系统中, 一名作者可以创作多本书,一 本书也可以由多名作者共同创 作。图书和作者之间是多对多 的联系。作者和图书可用以下 属性来描述: 作者——编号,姓名,职称图 书——书号,书名,出版日期 另外,在“创作”联系中应能 反映出该书的合同时间和完成 时间。请根据描述画出能够反 映实体之间的信息关系的E-R图。 3.1.3 同一实体集内部不同联系情况的E-R图表示法 【例3-4】同一实体集内部的一对多联系的绘制方法。 假设在某单位里,职工实体集中的实体可分成两类:领导者和被领导者。 领导者可以领导多个被领导者,而被领导者只有一个顶头上司,从而实现层层 负责制。而对于一个具体职工而言,他既可能是其他职工的领导者,又可能被 别的职工领导。职工实体集的属性描述如下。 职工——工号,姓名,性别,出生日期,工作日期,职称,工资 另:在“领导”联系中有个“民意测验”属性,用来存放职工对领导的满意度。 【例3-5】同一实体集内部的 多对多联系的绘制方法。 假设在某组装车间中, 零部件之间存在着多对多的 组装联系,即一个零部件能 组装多种其它零部件,反之 该零部件也可以由其他零部 件组装。零部件实体集的属 性描述如下。 零部件——部件号,名称, 价格 零部件之间的组装联系有一 个属性“数量”,用来指出 组装该零部件需要其它零部 件各多少个。 3.1.4 两个以上实体集之间多对多联系的E-R图表示法 【例3-6】两个以上实体集之间多对多联系的E-R图表示法。 在某校教务处信息管理系统中,假设在同一学期中,一名教师可 以教多门课,一门课可以由多名教师教,一名学生可以选多名不同教 师都的课,一名教师教的课可以被多名不同的学生选修。那么教师、 课程、学生实体集之间就存在着多对多的多元联系。各实体集的属性 描述如下。 教师:教师号,姓名,身份证号,性别,职称,出生日期,电话 号码,备注,照片 课程:课程编号,课程名称,学时,学分,备注 学生:学号,姓名,身份证号,性别,出生日期,专业,年级, 电话号码,备注,照片 另外,学生选修某教师教的某门课程有一个成绩。 3.2 E—R图的设计方法 设计E-R图的两个阶段 (1)针对每一用户画出该用户信息的局部E—R图,确定该用户视图的实体、属性 和联系。需注意的是:能作为属性的就不要作为实体,这有利于E—R图的 简化。 (2)综合局部E—R图,生成总体E—R图。在综合过程中,同名实体只能出现一 次,还要去掉不必要的联系,以便消除冗余。一般来说,从总体E—R图必须 能导出原来的所有局部视图,包括实体、属性和联系。 注意:一个系统的总体E—R图不是惟一的,强调不同的侧面 画出的E—R图可能有很大不同。 全局概念结构 子需求 子需求 图示 自底向上策略 … 概念结构 概念结构 … 概念结构 概念结构 概念结构 概念结构 子需求 子需求 视图的设计一般从小开始,逐步扩大,直至完备,一般有 下列3种可能的设计次序。 (1)自顶向下 自顶向下的视图设计先从抽象级别高、普遍的对象开始, 逐步细化、具体化、特殊化。例如图书这个视图,可从一般 的出版物开始,再分为书籍和期刊,再加上借阅人、购臵、 流通等模式。 (2)自底向上 自底向上的视图设计从具体的基本对象开始,逐步抽 象化、普遍化。这相当于面向对象数据模型中的普遍化过 程。 (3)由内向外 由内向外的视图设计从最基本、最明显的对象开始, 逐步扩大至有关的其他对象。以学生视图为例,先表示有 关学生的基本数据,再表示诸如课外活动、兴趣小组、家 庭情况等有关的其他数据。 【例3-7】某学校管理系统中有三个部门:教务处、人事处和财务处。教务处职能是管理 学生选课和教师任课;人事处职能是管理人员的隶属关系;财务处职能是发放教师的工 资。 教务处涉及到的实体集及实体集之间的联系如例3-6所述。 人事处涉及到的实体集及实体集之间的联系如下: ? 系:属性有系号,系名,系主任,电话号码,办公地点 ? 教师:教师号,姓名,身份证号,性别,职称,出生日期,电话号码,备注,照片 ? 班级:班号,班级名称,辅导员 ? 学生:学号,姓名,身份证号,性别,出生日期,专业,年级,电话号码,备注, 照片 ? 实体集之间的联系可描述为:一个系拥有多名教师,一名教师只从属于一个系;一 个系管理多个班级,每个班级只属于一个系;一个班级由多名学生组成,每个学生只属 于一个班级。 财务处涉及到的实体集及实体集之间的联系如下: ? 教师:教师号,姓名,身份证号,性别,职称,出生日期,电话号码,备注,照片 ? 工资:属性有基本工资、加班工资、扣税、工资编号 ? 教师和工资的联系是:一个教师只能领一份工资,一份工资只能由一个教师领, 领工资时应注明是某月工资。 根据要求设计出该学校管理系统的全局E-R图。 1、局部E–R模型建立后,应对照每一个应用进行检查,确 保模型能满足数据流图对数据处理的需要。 在调整中遵循的一条原则是:为了简化E-R图的处理, 现实世界的事物能作为属性对待的,尽量作为属性对待。 (1)作为“属性”,不能再具有需要描述的性质。“属 性”必须是不可分的数据项,不能包含其他属性。 (2)“属性”不能与其他实体具有联系,即E―R图中所 表示的联系是实体之间的联系。 2、各子系统的分E–R模型设计好以后,下一步就是要将分E–R 模型综合成系统总的概念模型(总E–R模型)。 一般说来,综合可以有两种方式: (1) 多个分E–R图一次集成; (2) 逐步集成,用累加的方式一次集成两个分E–R图。 第一种方式比较复杂,做起来难度较大;第二种方式 每次只集成两个分E–R图,可以降低复杂度。 无论采用哪种方式,每次集成局部E–R图时都需要分两步 走:第一步合并,解决各分E–R图之间的冲突,将各分E–R图 合并起来生成初步E–R图;第二步修改和重构,消除不必要的 冗余,生成基本E–R图。 3、各分E–R图之间的冲突主要有三类:属性冲突、命名冲突 和结构冲突。 (1) 属性冲突:包括属性值的类型、取值范围、取值 单位的不同。 (2) 命名冲突:包括实体名、联系名、属性名之间异 名同义,或同名异义等。 (3) 结构冲突:例如同一对象在一个局部E–R图中作为 实体,而在另一个局部E–R图中作为属性,同一实体在不同 的E–R图中属性个数和类型不同等。 实际还有:域冲突、约束冲突等。 3.3 E—R模型到关系模型的转换 3.3.1 两实体集间联系的转换 3.3.2 同一实体集内部联系的转换 转换原则 3.3.3 多个实体集之间多对多多元联系的转换 E-R图转换为关系模型可遵循如下原则: (1)对于E—R图中每个实体集,都应转换为一个关系, 该关系应包括对应实体集的全部属性,并应根据关系所表 达的语义确定哪个属性或属性组作为“主关键字”,主关 键字用来标识实体。 (2)对于E—R图中的联系,情况比较复杂,要根据实体 联系方式的不同,采取不同的手段加以实现。 (3)具有相同码的关系模式可合并。 ① 一个1∶1联系可以转换为一个独立的关系模式,也可 以与任意一端对应的关系模式合并。 如果转换为一个独立的关系模式,则与该联系相连的各实体的码以 及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候 选码。 如果与某一端实体对应的关系模式合并,则需要在该关系模式的属 性中加入另一个关系模式的码和联系本身的属性。 ②一个1∶n联系可以转换为一个独立的关系模式,也可 以与n端对应的关系模式合并。 如果转换为一个独立的关系模式,则与该联系相连的各实体的码以 及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。 ③一个m∶n联系转换为一个关系模式。 与该联系相连的各实体的码以及联系本身的属性均 转换为关系的属性,而关系的码为各实体码的组合。 ④三个或三个以上实体间的一个多元联系可以转换为一 个关系模式。 与该多元联系相连的各实体的码以及联系本身的属性 均转换为关系的属性,而关系的码为各实体码的组合。 在转换中除了要遵循以上原则外, 还应注意两点: (1)命名和属性域的处理。 关系模式的命名,可以采用E―R图中原来的命名,也可以另行命名。 命名应有助于对数据的理解和记忆,同时应尽可能避免重名。 如果DBMS不支持E-R图中某些属性的域,则应做相应的修改。如果 用户坚持要使用原来的数据类型,那就可能导致数据库的数据类型与应用 程序中的数据类型不一致,这只能由应用程序去转换。 (2)非原子属性的处理。 E―R数据模型中允许非原子属性,这不符合关系模型 的第一范式的条件。 非原子属性主要有两种基本类型; 集合型和元组型。 只要解决这两种基本的非原子属性的转换问题, 就不难推 广到其他复杂的非原子属性的处理。 可以采用的对集合属性纵向展开,对元组属性横向展开 的办法解决E―R图中非原子属性的问题。 如:课程号CNO;工资组成等; 3.3.1 两实体集间联系的转换 1.两实体集间1:n联系 两实体集间1:n联系,可将“一方”实体集的主关键字纳入 “n方”实体集对应的关系中作为“外关键字”,同时把联系的属 性也一并纳入“n方”对应的关系中。 例如,图3-3所示的一对多的联系,可转换成下面的两个关系 模式 。 2.两实体集间m:n联系 对于两实体集间m:n联系,必须对“联系”单独建立一个关系, 用来联系双方实体集。该关系的属性中至少要包括被它所联系的 双方实体集的“主关键字”,并且如果联系有属性,也要归入这 个关系中。 例如,图3-4所示的多对多的联系,可转换成下面的三个关系 模式 。 3.两实体集间的1:1的联系 假设A实体集与B实体集是1:1的联系,联系的转换有三种方法: ①把A实体集的主关键字加入到B实体集对应的关系中,如果联 系有属性也一并加入; ②把B实体集的主关键字加入到A实体集对应的关系中,如果联 系有属性也一并加入; ③建立第三个关系,关系中包含两个实体集的主关键字,如果 联系有属性也一并加入。 3.3.2 同一实体集内部联系的转换 1.同一实体集内部的一对多联系的转换 同一个实体集内部个体间的1:n联系,可在这个实体集对应的 关系中多设一个属性,用来作为与该实体相联系的另一实体的 “主关键字”,如果联系有属性,也一并归入到关系中。 例如图3-6所示的职工实体集内部1:n的联系,就可以转换为如 下关系模式。 2.同一实体集内部的多对多联系的转换 如果同一实体集内存在m:n的联系,也需为这个联系单独建 立一个关系,该关系中至少应包含被它联系的双方实体的主关 键字,如果联系有属性,也要归入这个关系中。 例如图3-7所示的零部件实体集内部m:n组装联系,就可以 转换为如下两个关系模式。 3.3.3 多个实体集之间多对多多元联系的转换 对于两个以上实体集之间m:n的多元联系,必须为联系单独 建立一个关系,该关系中至少应包含被它联系的各个实体集的主 关键字,如果联系有属性,也要归入这个关系中。 例如图3-8所示的教师、学生、课程实体集之间“教—学—课”多 元联系可转化为以下关系模式。 【例3-8】把图3-10所示的E-R图转换为关系模式。 解:第一步把每个实体集转换成一个关系模式,如下: 第二步转换关系,分三步,如下: (1)把教师、课程和学生三个实体集的m:n的多元联系反映出来,需 建立一个新的关系,关系中包含联系涉及到的各实体集的主关键字及 联系的属性。转换的关系如下。 (2)把系与教师、系与班级及班级与学生之间的1:n的联系反映出来, 只需把相应的1方的主关键字放入到多方中使之成为外关键字即可。转 换的关系如下。 (3)把教师和工资间的一对一的关系反映出来,可把教师号和月份 属性放到工资关系中。 最后形成的关系模式为:

【责任编辑:管理员】
上一篇:女_词语_成语_百度汉语 下一篇:e-learning
随机推荐 更多>>