教学课件:第二章-实体联系模型.ppt

上传人:小飞机 文档编号:6290370 上传时间:2023-10-14 格式:PPT 页数:61 大小:741.50KB
返回 下载 相关 举报
教学课件:第二章-实体联系模型.ppt_第1页
第1页 / 共61页
教学课件:第二章-实体联系模型.ppt_第2页
第2页 / 共61页
教学课件:第二章-实体联系模型.ppt_第3页
第3页 / 共61页
教学课件:第二章-实体联系模型.ppt_第4页
第4页 / 共61页
教学课件:第二章-实体联系模型.ppt_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《教学课件:第二章-实体联系模型.ppt》由会员分享,可在线阅读,更多相关《教学课件:第二章-实体联系模型.ppt(61页珍藏版)》请在三一办公上搜索。

1、第二章 概念模型-本章内容,数据模型概念模型(ER模型)-基本概念扩展的ER模型实体与联系实例分析,数据模型,作用:对现实世界进行抽象。找到所关心的数据,并将其组织起来,使之可以存放到数据库中。模型:是描述数据的概念集合。按应用的不同目的分为两类:概念模型、数据模型。概念模型:也称信息模型,它按用户的观点对数据和信息进行建模,用于信息世界,它强调语义表达能力,是现实世界到信息世界的第一次抽象,是用户和数据库设计人员之间进行交流的语言。,数据模型,数据模型:用于机器世界,是按计算机系统的观点对数据建模,它需要有严格的形式化定义,且常常要加上一些限制和规定,以便机器实现,概念模型-ER模型,是现实

2、世界到机器世界的一个中间层次,概念模型中最常用的是ER模型(实体联系)模型ER模型创始人:Peter Chen(陳品山)1983至今任职于Louisiana State University.Harvard大学博士,曾在MIT,UCLA,Harvard工作.Entity-Relationship(ER 模型)是计算机软件领域 引用率最高的论文之一。根据对1,000个计算机科学领域教授的调查,最初 的ER模型论文被选为计算机科学38篇最具影响力 的论文之一。,概念模型-ER模型基本概念,ER模型中的概念实体(Entity):客观存在并可以相互区分的事物叫实体。(例如:一个个学生、一辆辆轿车)属性

3、(Attribute):实体所具有的若干特征,称为实体的属性。例如:学生有学号、姓名等属性域(Domain):一个属性可能取值的范围称为这个属性的域。例如:性别的域值只能为“男”或“女”,ER模型基本概念,候选码:能够唯一标识实体的属性或最小的属性组称为候选码,可能存在多个候选码,设计者必须指明一个候选码做主码(关键字)实体型(Entity type):具有相同属性的实体具有共同的特征和性质,用实体名及其属性集合来抽象、刻画同类实体,称为实体型。,ER模型基本概念,实体集(Entity set):同型实体的集合联系:现实世界的事物之间是有联系的,这种联系在信息世界中反映为:实体(型)内部的联系

4、和实体(型)之间的联系。两个实体型之间的联系一对一联系(1:1)例如:部门、经理一对多联系(1:n)例如:部门、雇员多对多联系(m:n)例如:学生、课程,ER模型基本概念,举例,ER模型基本概念,部门,经理,设有,部门,雇员,拥有,学生,课程,选修,1,1,1,n,m,n,ER模型基本概念,两个以上实体型之间的联系也存在一对一、一对多和多对多的联系一对多:若实体集E1,E2,En存在联系,对于实体集Ej(j=1,2,i-1,i+1,n)中的给定实体,最多只和Ei中的一个实体相联系,则我们说Ei与E1,E2,Ei-1,Ei+1,En之间的联系是一对多的。,ER模型基本概念,例子:三个实体型之间的

5、联系,ER模型基本概念,经理也是职工,经理要领导多个职工,而一个职工仅被一个经理领导。,同一实体集内的各个实体之间的联系例如:职工实体集内的实体有领导和被领导的关系;高数、离散数学是数据结构的先导课,数据结构是操作系统、数据库原理的先导课。,联系的属性,?,?,联系的属性,实例分析,例子1:假定开发某工厂物资管理系统,业务调查后得到如下的问题描述。在该工厂中,一个仓库可以存放多个零件,一种零件可以存放在多个仓库中。一个仓库有多名职工当保管员,一个职工只能在一个仓库工作,每个仓库有一名主任。仓库存放由许多供应商为一些项目提供的多种零件,一个项目可以由多个供应商提供多种零件,一个供应商可供给多个项

6、目多种零件,每种零件由不同的供应商提供给多个项目。,实例分析(E-R图),一个仓库可以存放多个零件,一种零件可以存放在多个仓库中。,实例分析(E-R图),一个仓库有多名职工当保管员,一个职工只能在一个仓库工作,每个仓库有一名主任。,实例分析(E-R图),仓库存放由许多供应商为一些项目提供的多种零件,一个项目可以由多个供应商提供多种零件,一个供应商可供给多个项目多种零件,每种零件由不同的供应商提供给多个项目。,实例分析(E-R图),职工电话号?,实例分析,例子2:开发学校信息管理系统。学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教师,其中有教授和副教授,每人各带若干名研究生,每个班

7、有若干学生,每个学生选若干课程,每门可由若干学生选修。,实例分析(E-R图),实例分析(E-R图),实例分析,学号,学生,姓名,住处,研究生,本科生,教师,教授(副),研究方向,是否四级,研究方向,培养类型,软件开发中,实际使用的ER模型有更丰富的语义,介绍扩展ER的一些内容,扩展ER表示有所不同,指导人数,工资号,姓名,职称,思考:图例中的继承关系如何表示?,ER模型的其它特征-参加约束,实体的参与度(有些ER模型)实体参与联系的最小和最大次数,例如:规定每位学生最少选三门课,最多六门课,则学生在选修联系中的参与度表示为(3,6)。规定有些课程可以无人选,但任一门课程最多允许100人选,则课

8、程的参与度为(0,100)。表示为(min,max),0=1,ER模型的其它特征-弱实体,部分参与:min=0,实体集中的部分实体参与联系全参与:min0,实体集中的每个实体都参与联系例如(1)每个部门必须有一个经理负责管理该部门(2)每名学生必须选修课程,ER模型的其它特征-弱实体,弱实体现实世界有一种特殊的联系,这种联系代表实体间的所有关系。例如:职工和家属的关系弱实体是依赖于其它实体存在而存在的实体,ER模型的其它特征-弱实体,两个特点:弱实体不能独立存在,它总是依附于某一所有者实体。owner实体集与弱实体集之间必须是一对多联系,弱实体必须是全部参与弱实体不一定有自己的码,例如:家属实

9、体集可能有姓名、性别、出生年月等信息,但这些信息不足以标识一个家属(不同职工的家属有可能会重名)。,所有者实体的码+弱实体的某一属性=标识一个弱实体,1不是绝对的,ER模型的其它特征-类层次,例子:学校中学生,研究生,本科生实体集研究生和本科生称为实体集学生的子类从语义上来讲,子类中的每一个实体同时也是超类中的一个实体,子类中实体属性必须包含所有的超类实体集的属性,也就是说,子类将继承超类的属性超类/子类联系称之为ISA联系表示,ER模型的其它特征-类层次,ER模型的其它特征-类层次,ISA联系可以从两个方面来看可以看作是一个特化,即子类是经过超类特化而得到的也可以看作是一个概括,即超类是对子

10、类进行概括而得到的,ER模型的其它特征-类层次,定义在ISA联系上的两种约束关系Overlap约束:Overlap约束用来指定两个子类之间是否允许包含同一实体例如:合同工和高级雇员Covering约束:Covering约束用来指定子类中所有的实体是否包含超类中的所有实体例如:全职雇员和兼职雇员,ER模型的其它特征-聚合,联系描述的是多个实体集间的关联,只有实体才能参与联系,不允许联系参与联系,但实际应用中往往有时需要联系参与联系把联系看成由参与联系的实体组合而成的新实体,这种新实体称为参与联系的实体的聚合新实体的属性为参与联系的实体的属性和联系的属性的并新实体参与联系,ER模型的其它特征-聚合

11、,存在四个实体集(大学、研究所、公司、科研项目)和两个联系(合作、承担),其中合作是建立在大学、研究所和公司之间的联系为了定义承担这样的联系,可以对联系合作、实体集大学、研究所和公司进行聚合,将他们当作一个实体集来看待表示,ER模型的其它特征-聚合,用ER模型进行概念数据库设计,用ER模型来进行概念数据库设计时通常需要注意以下几个问题一个概念应该被建模为一个实体还是一个属性?一个概念应该被建模为一个实体还是一个联系?应该使用多个二元联系还是一个n元联系?,实体与属性,在进行数据建模时,一个特征建模为属性、实体集,还是联系集,有时并不是十分清楚的例子:向实体集Employees中增加Addres

12、s信息,可能有多种方式将Address作为一个属性:如果我们仅仅是想记载雇员的一个地址,这时这种方式就比较合适也可以将地址信息建模为一个实体集Addresses,并在Employees和Addresses之间建立一个联系Has_Address,这种设计在以下两种情况是必须的必须为雇员记载多个地址我们希望结构化雇员的地址信息,实体与属性,雇员,雇员号,雇员名,职称,地址,(2)如果多个?,雇员,雇员号,雇员名,职称,有,地址,1,n,省,市,街道,(1)结构化的好处?,实体与联系,例子1:雇员和部门的联系在这个例子中,如果不允许一个雇员在同一部门工作过两次的话,则该ER图的设计没有任何问题,但如

13、果允许同一雇员在一个部门多次任职的话,则上述ER图设计存在问题。Why?解决策略:引入一个实体Duration,也就是将原来的二元联系建模为一个实体,并用一个三元联系取代原来的二元联系。,实体与联系-例1,实体与联系-例1,Employee1 9596 department1Employee1 9697 department2Employee1 9899 department1,实体与联系-例2,例子2:一个部门至多只能有一个管理者,但一个经理可以管理多个部门,经理管理部门有一个起始时间和所自由支配的财务预算。如果对于每个部门都有一个财务预算,则这种表示方式是非常自然的。,实体与联系-例2,如

14、果属性dbudget表示经理对其所管理的所有部门的财务预算之和,则上述表示(1)会引起dbudget信息的冗余;(2)会误导系统设计人员。解决策略:引入一个实体Mgr_Appts来表示一组部门的经理的委派,也就是将原来的二元联系建模为一个实体,并用一个三元联系取代原来的二元联系,实体与联系-例2,实体与联系-例3,是否存在:王立 数据库 98王立 数据库 78特点:不是多值!结论:只能做属性,实体与联系-例3,是否存在:姓名 课名 平时成绩 实验成绩 考试成绩 总成绩王立 数据库 8 18 60 86李梅 数据库 7 19 53 79特点:是多属性值!结论:可以做实体,成绩作为实体的情况,实体

15、与联系-例3,是否存在:姓名 课名 平时成绩 实验成绩 考试成绩 总成绩王立 数据库 8 18 60 86李梅 数据库 7 19 53 79特点:是多属性值!结论:可以做实体,成绩作为实体的情况,思考:职工地址是否是同样的道理?,实体与联系-例3,是否存在:姓名 课名 平时成绩 实验成绩 考试成绩 总成绩王立 数据库 8 18 60 86李梅 数据库 7 19 53 79特点:是多值!结论:可以做实体,成绩作为实体的情况,缺点:语义的正确性需要系统自行维护,二元与三元联系,例1:每个雇员可以购买几份保险,每份保险可以被多个雇员所拥有且每个家属可以被多个保险单所涵盖,三元多对多联系。,二元与三元

16、联系-例1,考虑下列附加的需求多个雇员不能同时购买同一份保险每份保险必须由雇员购买一份保险可以涉及到多位家属家属(Dependents)是一个弱实体集每位家属只对应一份保险,二元与三元联系,根据上述需求,给出如下方案:对应1,将m改成1不能解决一位家属只对应一份保险在Policies上施加一个Total参加约束产生一个副作用:每份险单至少涉及到一位家属将p改为1(不满足:因为要求每位家属只对应一份保险)引入一个弱实体集,二元与三元联系-例1,二元与三元联系-例1,实例分析,一个公司数据库需要存储雇员、部门和雇员小孩的信息。雇员工作在部门(一个雇员只能工作在一个部门),每个部门由一个雇员管理,每

17、个雇员小孩的名字是唯一的,假定小孩只有一个家长工作在这个公司,而且我们不关心那些已经调离雇员的小孩情况。请画出ER图捕获这些信息。,实例分析,一个大学数据库包括教授、课程信息。教授讲授课程,下面几种情况都是描述有关讲授联系集的,对于每一种情况画ER图描述教授可以在几个学期讲授同一门课程,但仅最近一次的讲授活动需被记录下来教授可以在几个学期讲授同一门课程,每次讲授活动需被记录下来每个教授必须讲授课程每个教授只讲授一门课程,实例分析,每个教授只讲授一门课程,每门课程可有几位教授讲授假定一些课程可由一组教授联合讲授假定一些特定课程只能由一组教授联合讲授,且这些教授中的任一位不可能独立讲授这门课程(思考题),实例分析,(1),教授可以在几个学期讲授同一门课程,但仅最近一次的讲授活动需被记录下来,实例分析,教授可以在几个学期讲授同一门课程,每次讲授活动需被记录下来,实例分析,(3),每个教授必须讲授课程,实例分析,(4,5),每个教授只讲授一门课程每个教授只讲授一门课程,每门课程可有几位教授讲授,实例分析,(6),假定一些课程可由一组教授联合讲授,实例分析,(7),假定一些特定课程只能由一组教授联合讲授,且这些教授中的任一位不可能独立讲授这门课程,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号