
3数据库设计与实现-高级er图.ppt
52页13高级E-R模型l本章主要讨论 – 3.1弱实体 – 3.2继承 – 3.3聚集 – 3.4E-R图的元素表示 – 3.5概念模型设计过程*2数据库系统概念----E-R3.1弱实体l背景示例:在银行系统中,希望研究: – 账户的交易记录与柜员之间的联系 – 账户的交易与利息之间的联系l问题:如何表示上述联系? – 按E-R图的原则,联系是实体与实体之间的联系 – 不能是实体和属性之间、属性和属性之间的联系账户accnoAccNameTransactiondatedealnumLineNodateaccrualAccrualRec银行职员EnoEName*3数据库系统概念----E-R3.1弱实体l上述问题的表示方法: – 属性实体化 – 交易记录、利息记录属性实体化之后,实体无法独立 标识 – 行号、日期都只能在一个账户内分辨多值属性,缺少 全局标识账户accnoAccNameTransactiondatedealnumLineNodateaccrualAccrualRec银行职员EnoEName*4数据库系统概念----E-R3.1弱实体l弱实体提出的背景 – 存在一些场景,需要研究:l一个实体的属性与其它实体之间的关系l或者属性之间相互的关联关系 – E-R图中联系是实体与实体之间的联系 – 在研究属性参与的联系时,需要进行属性实体化l某些属性实体化之后,实体可以独立标识,如;l某些属性实体化之后,实体自身无标识属性,如账户交易; – 属性实体化后,不能独立标识,形成弱实体 l弱实体定义 – 没有足够属性标识的实体,称为弱实体 – 反之称为强实体 – 弱实体需要依赖属主实体而存在,不能独立存在*5数据库系统概念----E-R3.1弱实体l引入弱实体后的E-R图: – 有效解决了属性实体化后缺少标识问题账户accnoAccNamedatedealnumLineNodateaccrual银行职员EnoEName交易记录操作计息利息记录* 6数据库系统概念----E-R3.1弱实体l弱实体 – 没有足够属性标识的实体,称为弱实体, – 反之称为强实体 l标志性联系 – 弱实体和属主实体之间的联系是存在依赖联系 – 弱实体和属主实体间的存在依赖联系,称作实体的标 志性联系 – 标识性联系:多对一、全部参与,一般不命名 – 标识性联系在E-R图中以双边框菱形表示账户accnoAccNamedatedealnumLineNo 交易记录*7数据库系统概念----E-R3.1弱实体l分辨符 – 弱实体在特定属主实体内的标识属性,称作 分辨符 – 在全局范围内,弱实体的标识由属主实体的 主码和弱实体的分辨符共同组成 – 分辨符在E-R图中用虚下划线表示账户accnoAccNamedatedealnumLineNo 交易记录*8数据库系统概念----E-R3.1属性实体化方法l属性实体化 – 属性实体化后,如果有标识属性,自然成为强实体 – 属性实体化后,如果没有标志性属性,有两种办法处 理:l1、将属性实体化为弱实体l2、通过增加标识属性,使属性实体化为强实体l练习: – 请画出银行账户的E-R图,通过增加标识属性,使交 易记录等属性实体化为强实体 – 请和使用弱实体的方案比较,哪种方案更好?*9数据库系统概念----E-R3.1实体化:弱实体vs强实体l实体化为弱实体vs增加标识属性成为强实体 – 增加标识属性实际上是进行了实现相关的设 计工作。
在分析阶段进行设计工作会限制设 计阶段设计方案的选择 – 使用弱实体能更好地刻画现实语义 – 引入弱实体使E-R图元素增多、复杂性增加*10数据库系统概念----E-R3.1弱实体vs属性l使用实体的属性,还是使用弱实体? – 如果不研究属性和其它属性/联系/实体之间的 联系, 应该使用属性 – 如果需要研究属性和其它属性/联系/实体之间 的联系, 则需要将属性实体化,必要时使用 弱实体*11数据库系统概念----E-R3.1练习l请绘制医院系统住院部分的E-R图 – 医院为住院病人建立病历病历首页记录病人住院相关的基本 信息;病历主体由住院期间每次诊疗的记录顺序排列组成 – 诊疗记录由诊疗时间、诊疗情况记录组成,并要由进行当次诊 疗的住院医生签字诊疗可发出检查单、治疗医嘱单,需要记 录诊疗和检查单、医嘱单的关系 – 检查单由住院医生写明检查事项发给检查科室检查科室执行 检查,载明检查结果并由检查医生签字返回住院医生住院医 生将检查单黏贴在病历末尾 – 医嘱单由治疗医生/护士执行,记录执行结果并保存在执行科 室备查 – 请画出相关数据概念模型具体内容可以根据你对住院管理的 理解进行补充和调整。
123.2继承l实体型的层次 – 实体型:现实世界同类事物特征和性质的抽象 – 同一事物抽象层次的不同,形成了不同层次的实体型 – 例如:同一个人,可以被看作是本科生、学生、 person 等等l思考: – 对一个具体系统中人的研究,应该抽象到哪个层次? 本科生?学生?还是person? – 对一个具体系统,是否可能同时关注一个事物不同层 次的实体型?*133.2继承l实体型的层次 – 同一系统可能会同时关注一个事物不同层次的实体型 – 例如:在学校系统中,教务方面愿意把在校人员看做 教师和学生,而图书馆方面更愿意统一看作在校人员l思考: – 如何刻画不同层次实体型之间的关系?教师课程学生上课讲授人员图书借阅3.2继承lISA联系 – E-R图使用ISA联系表示不同层次实体型之间的关系 – ISA联系本质是继承关系 – ISA联系使用标有“ISA”字样的三角形来表示*14教师人员ISA学生3.2继承l学校系统E-R图示例: – 仅关注教学和图书管理部分– 请给E-R图标上属性:关注人员pid, name, age, 关注学生sno,name,age,关注教师tno, name,关注bno,bname,cno, cname*15教师课程学生上课讲授人员图书借阅ISA3.2继承l学校系统E-R图示例:l思考: – 实体型[学生]还需要标明属性name,age吗? – 子类从父类继承了什么? – ISA是联系吗?*16教师课程学生上课讲授人员图书借阅ISAtnonamecnocnamebnobnamepidagesno3.2子类从父类继承了什么?l子类继承了父类的属性 – 父类属性被子类自动继承 – [学生]实体不再需要标明属性name、agel子类继承参与父类参与的联系lE-R图不考虑方法,因此不考虑方法的继承*17教师课程学生上课讲授人员图书借阅ISAtnonamecnocnamebnobnamepidagesno*18思考: 实体型[学生]还需要标明属性name,age 吗? 子类从父类继承了什么? 从这张E-R图看,使用继承的利与弊?3.2子类从父类继承了什么?3.2继承的约束lISA联系的约束 – 全部特殊化约束 – 不相交约束*193.2全部特殊化约束lISA联系的子类完全性分类 – 全部特殊化:l每个父类实体均必须是一个子类实体l全部特殊化是对ISA关系的约束l全部特殊化约束应在E-R图上予以标明 – 部分特殊化:l允许一些父类实体不是任何子类实体l部分特殊化不是对ISA关系的约束,不需要标明l思考: – 教师、学生对在校人员的ISA关系,具有全部特殊化 约束吗?*20存款账户账户ISA贷款账户全 部3.2不相交约束lISA联系的相交性分类 – 相交(重叠)l同一实体可以同时属于一个父类的多个不同子类l相交不是对ISA关系的约束,不需要在E-R图上标明 – 不相交l一个实体至多属于一个子类l不相交是对ISA关系的约束l不相交约束应在E-R图上予以标明l思考: – 教师、学生对人员的ISA关系,具有不相交约束吗?*21文章科研成果ISA项目不相交*222.2练习l学校系统数据概念模型如图下所示 – 现在需要增加在校人员的借书业务 – 请尝试使用在校人员和教师学生的继承关系学生选课scoreage院系隶属 属教师课程讲授 属dnodnametnonamecnocnamepidagesnonamepid隶属 属*232.2练习l学校系统增加借书业务后的概念模型 – 参考方案(一)学生选课score院系隶属 属 教师课程讲授 属dnodnametnocnocnamesno隶属人员图书借阅namebnobnamepidageISA*242.2练习l学校系统增加借书业务后的概念模型 – 参考方案(二)学生选课score院系隶属教师课程讲授 属dnodnametnocnocnamesno人员图书借阅namebnobnamepidageISA2.2练习l学校系统增加借书业务后的概念模型 – 请比较方案一、二的优缺点 – 应该选择哪个方案?选择的依据是什么?l练习: – 请给出不使用继承的概念模型 – 对比使用继承和不使用继承的概念模型,各 有什么优缺点?*252.2练习l学校系统增加借书业务后的概念模型 – 参考方案(三),不使用继承*26学生选课scoreage院系隶属 教师课程讲授 属dnodnametnonamecnocnamepidagesnonamepid隶属图书借阅bnobname借阅*27数据库系统概念----E-R3.3聚集l背景示例:请用E-R图表示如下关系 – 客户和项目之间存在着订购关系 – 某些订购需要第三方(银行)提供担保l思考:如何表示? – 问题本质,担保的是“订购”联系 – 实体和联系之间不能建联系客户项目订购银行担保*28数据库系统概念----E-R3.3聚集l聚集 – 可以将联系和参与联系的实体聚集为高层实体 – 高层实体可以和其它实体产生联系 – 例如:客户、项目及订购联系聚集成的高层实体, 可以和银行之间建立担保联系l思考:如果不使用聚集,如何用E-R图表示?客户项目订购银行担保*29数据库系统概念----E-R3.3聚集l不使用聚集,E-R图的两种表示方案l思考: – 这两种方案比较优缺点如何?那种方案更好? – 使用聚集和不使用聚集相比,优缺点如何?担 保全部全部 客户项目银行担保客户项目订购银行订购订购合约关 于隶 属方案一:联系实体化方案二:看作两种不同的订购*30数据库系统概念----E-R图2:属性表示方法汇总示例角色3.4E-R图元素符号总结lE-R图的主要符号、表示方法总结birthdayage学生snonamerelativepidnamerelationcitystreetaddrtelnopostal_codeERR弱实体IS A35RR图1:E-R图的主要符号*31数据库系统概念----E-R3.4E-R图的符号体系l可选的符号 – E-R图有多种符号体系 – 例如:另一种常见的基数约束表示方法l具体选择哪个符号体系由项目组决定课程学习学生院系隶属院长管理mn1m11*32数据库系统概念----E-R3.4E-R图的符号体系l比较与思考 – 两种基数约束表示方法各有哪些优缺点? – 你更喜欢哪一种表示方法? ①②课程学习学生院系隶属院长管理mn1m11课程学习学生院系隶属院长管理*33数据库系统概念----E-R3.5概念模型设计过程l概念模型设计过程 – 局部E-R图设计 – 全局E-R图设计 – 全局E-R图优化l设计过程的基本原则 – 每个过程都要在需求调研和理解基础上进行 – 每个过程的结果都需要得到相关用户确认*34数据库系统概念----E-R3.5局部E-R图设计需求调研确定局部结构范围实体定义联系定义属性分配局 部 E | R 模 式 设 计全局E-R模式设计*35数据库系统概念----E-R3.5全局E-R图设计局部E-R模式确定公共实体类型合并两个局部E-R模式检查并消除冲突全 局 E | R 模 式 设 计还有未合并的局部模式?全局E-R模式优化无有*36数据库系统概念----E-R3.5全局E-R图设计:消除冲突l消除冲突 – 不同E-R图对同一问题表述不一致形成冲突 – E-。












