(附加知识)E-R转换为关系模型.ppt

上传人:苏美尔 文档编号:9285053 上传时间:2021-02-15 格式:PPT 页数:40 大小:858KB
返回 下载 相关 举报
(附加知识)E-R转换为关系模型.ppt_第1页
第1页 / 共40页
(附加知识)E-R转换为关系模型.ppt_第2页
第2页 / 共40页
(附加知识)E-R转换为关系模型.ppt_第3页
第3页 / 共40页
(附加知识)E-R转换为关系模型.ppt_第4页
第4页 / 共40页
(附加知识)E-R转换为关系模型.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《(附加知识)E-R转换为关系模型.ppt》由会员分享,可在线阅读,更多相关《(附加知识)E-R转换为关系模型.ppt(40页珍藏版)》请在三一文库上搜索。

1、今日学习目标:E-R图向关系模型的转换,掌握利用ER图进行概念设计的方法 掌握ER图的基本元素与确定,关系型数据库标准语言SQL,*E-R模型基础知识* ER模型,全称为实体联系模型、实体关系模型或实体联系模式图(ERD)(英语:Entity-relationship model),是概念数据模型的高层描述所使用的数据模型或模式图。 ER模型常用于信息系统设计中;比如它们在概念结构设计阶段用来描述信息需求和/或要存储在数据库中的信息的类型。但是数据建模技术可以用来描述特定论域(就是感兴趣的区域)的任何本体(就是对使用的术语和它们的联系的概述和分类)。在基于数据库的信息系统设计的情况下,在后面的

2、阶段(通常叫做逻辑设计),概念模型要映射到逻辑模型如关系模型上;它依次要在物理设计期间映射到物理模型上。注意,有时这两个阶段被一起称为“物理设计”。 E-R图模型的组成是由实体,属性和联系。其中实体是一个数据的使用者,其代表软件系统中客观存在的生活中的实物,如人、动物,物体、列表、部门、项目等.而同一类实体就构成了一个实体集。实体的内涵用实体类型来表示。实体类型是对实体集中实体的定义。实体中的所有特性称为属性.如用户有姓名、性别、住址、电话等. 实体标识符是在一个实体中,能够唯一表示实体的属性和属性集的标示符.但针对于一个实体只能使用一个实体标识符来标明。实体标识符也就是实体的主键。在ER图中

3、,实体所对应的属性用椭圆型的符号现况表示出来,添加了下划线的名字就是我们所说的标识符。在我们生活的世界中,实体不会是单独存在的,实体和其他的实体之间是有着千丝万缕的联系的。举例某一个人在公司的某个部门工作,其中的实体有某个人和公司的某个部门,他们之间的有着很多的联系联系。,1. 实体-联系方法,本节我们要介绍P.P.S.Chen于1976年提出的实体-联系方法,即 E- R(Entity-Relationship)方法。这种方法由于简单、实用,得到了非常普遍的应用,也是目前描述信息结构最常用的方法。,E-R方法使用的工具称作E-R图,它们描述的现实世界的信息结构称为企业模式(Enterpris

4、e Schema),也把这种描述结果称为E-R模型。,目前还没有具体的数据库管理系统支持 E- R模型,但是已经有支持 E- R模型的数据库设计工具,它可以把 E- R模型直接转换为具体的数据库管理系统上的数据模型。 E- R方法是设计数据库的有力工具,应用非常广泛,用 E- R图描述的概念模型也称为实体联系模型 。,从现实世界到机器世界的过程,本章首页,本节首页,本章首页,本节首页,E-R图提供了表示实体表、属性和联系的方法,规定如下:,实体集: 用矩形框表示,框内写明实体名。,属 性: 用椭圆框表示,框内写明属性名,用一条无向线与所属 实体连接起来。,联 系: 用菱形框表示,框内写明联系名

5、,并用无向线分别与有 关实体连接起来,同时在无向线旁边标明联系类型。下 图描述了三种联系类型的例子。,在建立 E-R图的时候,应根据实际应用首先确定哪些是实体集,有多少个实体集,其次确定实体集的属性,然后再确定这些实体集之间存在什么联系及联系的属性。,例:现在我们完整地考虑一下学校教学管理中的教学情况。教学过程可由学生、班级、课程、教师、讲授、选修、组成等方面构成。其中,学生、班级、课程、教师是实体集,而讲授、选修、组成是实体集间的联系。,假设各属性如下:,学生 学号、姓名、性别、出生年月、入学成绩,班级 班级号、班级名称、所属专业、组成时间、系别,课程 课程号、课程名称、学分,教师 职工号、

6、姓名、性别、出生日期、职称,选修 成绩,学生对课程存在多对多的 “选修 ”联系;教师对课程也是多对多的“ 讲授 ” 联系;班级对学生是一对多的 “组成 ”联系。,本章首页,本节首页,上一页,下图给出了教学情况实体联系模型图,即教学情况E-R图,实体联系方法是抽象和描述现实世界的有力工具,用 E- R图表示的概念模型独立于具体的 DBMS所支持的数据模型,它是各种数据模型的共同基础,因而比数据模型更一般、更抽象、更接近于现实世界。,本章首页,本节首页,上一页,例:有仓库和职工两个实体,并且有语义一个仓库可以有多名职工,但是一个职工只能在一个仓库工作。那么仓库和职工是一对多的联系,我们把这种联系命

7、名为工作,相应的 E-R图如下图所示。,例:有仓库和器件两个实体,并且有语义一个仓库可以存放多种器件,一种器件可以存放于多个仓库。那么仓库和器件间是多对多的联系,我们把这种联系命名为库存,相应的E-R图如下图所示。,如果实体集 A与实体集 B之间存在联系,并且对于实体集A中的一个实体,实体集 B中有多个实体与之对应;而对实体集B中的一个实体,在实体集A中也同样,则称实体集A到实体集B的联系是多对多的,记为m:n。,本章首页,本节首页,上一页,E -R图不仅能描述两个实体之间的联系,而且还能描述两个以上实体之间的联系。,1.2 E-R模型的组成要素及表示方法,1E-R图的组成要素及其画法,联系的

8、设计之一,联系的元数 一个联系涉及到的实体集个数 一元、二元、三元,联系的连通词 联系涉及到的实体集之间实体对应的方式 1:1,1:N,M:N,实体的基数 有两个实体集E1和E2,E1中每个实体与E2中有联系实体的数目的最小值min和最大值max,称为E1的基数,用(min,max)形式表示,ER设计步骤,设计方法:自底向上 设计过程 局部ER模型 局部结构范围 实体 联系 属性 全局ER模型设计 确定公共实体 局部ER合并 消除冲突 全局优化,设计局部ER模式,设计局部ER模式,4、关于属性与实体 原则:能作为属性的尽量作为属性 实体与属性的区分准则: 准则1:属性不能再具有需要描述的性质,

9、是不可分的数据项,不能包含其他属性。 准则2:属性不能与其他实体有联系 例1:职工实体一般具有工号、姓名、年龄、职称等。但如果职称与工资、住房标准、福利等挂钩,应该将其看成是实体: 职称(代码、住房、工资、福利) 例2:住院病人的病房号本来可以是病人的属性,但如果病房与医生相联系,那就是实体了。,局部模式设计举例,初步分析系统的对象,根据服务种类分析教师子模块,局部ER图,教师管理子系统,学籍管理子系统,课程管理子系统,需求分析: 1、教师由某个系聘用2、学院设置了若干个系3、每个学院有一个院长4、每位教师都有职称,每个职称有不同的工作量5、各个系可以承接项目,项目有负责人6、教师可以参加项目

10、,其他局部模式,局部ER图,其它局部模式,设计全局 ER模式,1、确定公共实体:合并的基础 同名实体 相同键的实体,2、合并 方法:一次性合并与两两合并 优先合并有联系的局部ER 从公共实体开始合并,1,教室,M,1,教科书,教师,担任,课程,系,开设,N,1,学生,选修,N,MN,上课,P,N,设计全局 ER模式,(1)属性冲突 :如,重量单位有的用公斤,有的用克。 (2)结构冲突 : 同一对象在不同应用中的不同抽象 ; 属性变为实体或把实体变为属性,使同一对象具有 相同的抽象。 同一实体在不同局部ER图中属性的个数或次序不同 ; 合并且设计次序 实体之间的联系在不同的局部ER图中呈现不同的

11、类型 根据语义进行调整 (3)命名冲突 :属性名、实体名、联系名之间存在同名异义或异名同义冲突,全局ER模式的优化,1、实体类型的合并 1:1联系的两个实体类型 具有相同键的实体类型 2、冗余属性的消除 通过其他属性可以推出的属性,往往是合并后产生的。 非键属性同时出现在几个实体中 使用上的权衡,完整性约束来保证 冗余联系的消除:利用规范化理论中函数依赖的概念消除冗余联系,例子:三个局部ER图合并成一个ER图,4 逻辑设计,1、目标:将概念模式转换为DBMS所支持的逻辑模式 2、逻辑设计步骤初始模式的形成:将全局ER模式转换成初始关系模式 规范化处理数据模型的优化 确定规范的级别:3NF,BC

12、NF 实施规范化处理:关系分解(保持依赖、无损连接),一、E-R图向关系模型的转换 1、转换要解决的问题: 实体和实体间的联系转换为关系模式 确定关系模式的属性和码,5.4 逻辑设计,4 ER模型到关系模型的转换,把E-R图转换为关系模型可遵循如下原则 : (1)对于ER图中每个实体型,都应转换为一个关系,该关系应包括对应实体的全部属性,并应根据关系所表达的语义确定哪个属性或哪几个属性组作为“主关键字”,主关键字用来标识实体。实体的属性就是关系的属性,实体的码就是关系的码。 (2)对于ER图中的联系,情况比较复杂,要根据实体联系方式的不同,采取不同的手段加以实现。下面着重讨论联系的转换方法。,

13、3、二元联系类型的转换 若实体间联系是1:1,可以在两个实体类型转换成的两个关系模式中任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。 若实体间联系是1:N,则在N端实体类型转换成的关系模式中加入1端实体类型的键和联系类型的属性。 若实体间联系是M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合 4、一元联系类型的转换:同二元联系 5、三元联系类型的转换 总是将三元联系类型转换成关系模式,其属性为三端实体类型的键加上联系类型的属性,而键为三端实体键的组合。 具有相同码的关系模式可合并。目的是减少系统中的关系个数,4 逻辑设计

14、,ER模型到关系模型的转换实例,系(系号,系名,电话),教师(工号,姓名,性别,年龄,系号,聘期),学生(学号,姓名,年龄,性别),课程(课程号,课程名,教师名),选课(学号,课程号,成绩),ER模型到关系模型的转换实例,零件(零件号,零件名,规格) 组成(零件号,子零件号,数量),仓库(仓库号,仓库名,地址) 商店(商店号,商店名) 商品(商品号,商品名) 进货(商店号,商品名,仓库号,日期,数量),例1 库存销售信息管理系统的ER模型及转换,库存系统ER图,实体,二、数据模型的优化: 1、确定数据依赖:按需求分析阶段所得到的语义,分别写出每个关系模式内部各属性之间的数据依赖以及不同关系模式

15、属性之间数据依赖。 如学生关系模式中存在数据依赖: 学号姓名,学号性别,学号年龄,学号所在系 选修关系模式中存在数据依赖:(学号,课程号)成绩 课程关系模式内部存在数据依赖: 课程号课程名,课程号学分 学生与选修关系模式的学号之间存在数据依赖: 学生.学号选修.学号 2、对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。,5.4 逻辑设计,3、关系规范化 并不是规范化程度越高的关系就越优:联接运算引起 一般说来,第三范式就足够了。例如: 学生成绩(学号,英语,数学,语文,平均分) 函数依赖:学号英语,学号数学,学号语文,学号平均分,(英语, 数学, 语文)平均分。 显然有学号(英语

16、,数学,语文),存在传递函数信赖,是2NF关系。虽然平均成绩可以由其他属性推算出来,但如果应用中需要经常查询学生的平均成绩,为提高效率,仍然可保留该冗余数据,对关系模式不再做进一步分解。,4、对关系模式进行必要的分解或合并,以提高数据操作的效率和存储空间的利用率。常用的分解方法是: 水平分解:把(基本)关系的元组分为若干子集合,定义每个子集合为一个子关系,以提高系统的效率。根据“80/20原则” , 垂直分解:把关系模式R的属性分解为若干子集合,形成若干子关系模式。分解原则是经常在一起使用的属性从R中分解出来形成一个子关系模式。 垂直分解必须确保无损连接性和保持函数依赖。,课后练习,1学校中有

17、若干系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授和副教授每人各带若干研究生; 每个班有若干学生, 每个学生选修若干课程, 每门课可由若干学生选修。请用 E 一 R 图画出此学校的概念模型。 2.某工厂生产若干产品,每种产品由不同的零件组成, 有的零件可用在不同的产品上。这些零件由不同的原材料制成, 不同零件所用的材料可以相同。 这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。请用 E 一 R 图画出此工厂产品、零件、材料、仓库的概念模型。,课后练习答案解析:,1.,各实体属性为: 系:系编号,系名 班级:班级号,班级名 教研室:教研室号,教研室 学生:

18、学号,姓名,学历 课程:课程号,课程名 教员:职工号,姓名,职称 联系的属性: “选修”的属性为“成绩” 转换为关系模型如下: 系(系编号,系名,学校名) 班级(班级号,班级名,系编号) 教研室(教研室号,教研室,系编号) 学生(学号,姓名,学历,班级号,导师职工号) 课程( 课程号,课程名) 教员(职工号,姓名,职称,教研室号) 选修(学号,课程号,成绩),*对于该题一个疑问就是学校也是一个实体,按照转换的原则,一个实体型转换为一个关系模式,那么应该有一个学校的关系模型,但这里并没有出现,该题应该是因为学校的属性不明确,才没有去加,正常来说应该要加上学校。,2.,各实体属性为: 产品:产品号,产品名 零件:零件号,零件名 原材料:原材料号,原材料名,类别 仓库:仓库号,仓库名 各联系的属性为: 产品组成:使用零件量 零件制造:使用原材料量 零件存储:存储量 材料存放 :存储量 转换为关系模型如下: 产品(产品号,产品名,仓库号) 零件:零件号,零件名 原材料:原材料号,原材料名,类别,仓库号,存放量) 仓库(仓库号,仓库名) 产品组成(产品号,零件号,使用零件量) 零件组成(零件号,原材料号,使用原材料量) 零件储存(零件号,仓库号,存储量),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1