数据库设计与实现-ER转换为关系模式.ppt_第1页
数据库设计与实现-ER转换为关系模式.ppt_第2页
数据库设计与实现-ER转换为关系模式.ppt_第3页
数据库设计与实现-ER转换为关系模式.ppt_第4页
数据库设计与实现-ER转换为关系模式.ppt_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

* 1 数据库系统概念-E-R 4从E-R 图到数据库模式设计 l根据E-R建立数据库模式的步骤 1、E-R图转换为表并进行必要的合并 l本步骤可以按照机械方法完成 l一个良好的E-R图,完成本步转换和合并 得到的结果,已经是比较理想的数据库模 式 (尽管还有人工进一步优化的余地) 2、优化 l本步无具体可行的机械方法 l主要依靠设计人员的经验和能力 转换、设计 理解、表达 现实世界 概念模型:E-R图 逻辑模型: DBSchema * 2 数据库系统概念-E-R 4 4从E-R 图到数据库模式设计 l本章主要内容 4.1E-R图到表的基本转化方法 l暂时只考虑基本E-R图的转换,且只考虑简单、单值属性 4.2表合并方法讨论 l讨论联系转化的表能否及如何与其它表合并 4.3E-R复杂要素转化为表的方法 l复杂属性处理 l弱实体处理 l继承转化为表 l聚集转化为表 4.4关于表模式进一步优化问题的讨论 4.5其它逻辑模式设计问题讨论 * 3 数据库系统概念-E-R 4.1 E-R 到表的基本转化方法 l实体转化为表 E-R图的每个实体转化成一个表 实体的属性转化为表的属性 (暂时只考虑简单、单值属性) 实体的主码转化为表的主码 * 4 数据库系统概念-E-R 4.1 E-R 到表的基本转化方法 l联系转化为表 每个联系转化成一个表 l联系转化成表的属性 参与联系实体的主码并集pk(e1)pk(e2)以 及联系的属性a1,a2共同构成表的属性 pk(e1)pk(e2)a1,a2 l在联系转化成的表中,属性的非空限制: 实体主码形成的属性pk(e1)pk(e2) 均应not null 只有在联系转化成的表与其他表合并后,才 可能允许null * 5 数据库系统概念-E-R 4.1 E-R 到表的基本转化方法 l联系转化成的表的码: 参与联系实体的主码并集pk(e1)pk(e2) 是联系转化成的表的超码 多对一联系,上述超码去掉一个“一”端实体的 主码后,是联系表的候选码 多对多联系,上述超码是联系表的候选码 * 6 数据库系统概念-E-R 4.1 E-R到表的基本转化方法示例 lE-R图: l实体转化成的表: Dept(dno,dname) Student(sno,sname) Course(cno,cname) l联系转化成的表: SD(sno,dno,time) /dno非空 SC(sno,cno,score) 院系 隶属 属 学生课程 学习 属 dnodnamesnonamecnocnametimescore * 7 数据库系统概念-E-R 4.1 练习 l请将下述E-R转化为关系模式: 注意指明各表的主码 教师课程 班级 上课 讲授 tno name cno cname classname classno * 8 数据库系统概念-E-R 4.1 练习 l将E-R转化为关系模式参考答案 实体转化成的表 lTeacher(tno,name) lclass(classno,classname) lCourse(cno,cname) 联系转化成的表 ltc(tno,cno) ltcc(classno,cno,tno) * 9 数据库系统概念-E-R 4.2表的合并 l主要讨论联系转化的表与相关实体转化的表 的合并问题 l按照联系类别分别讨论能否合并、如何合并 二元m:1联系 二元1:1联系 二元m:n联系 多元联系 * 10 数据库系统概念-E-R 4.2表的合并 l二元多对一联系: 联系转化的表可以和“多端” 实体转化成的表进行合并 l示例: E-R图 转化成的表 lDept(dno,dname) lStudent(sno,sname) lSD(sno,dno,time) /dno非空 表的合并 lStudent+SD Student(sno,sname,dno,time)/dno可以为空 院系 隶属 属 学生 dnodnamesnonametime * 11 数据库系统概念-E-R 4.2表的合并 l二元一对一联系: 联系转化的表可以任一端实体转化成的表进行合并 二元一对一联系不能导致相关实体转化成的表合并 l示例: E-R图如右所示 转化成的表 lDept(dno,dname) lPresident(pid,name) lManage(dno,pid) /dno,pid均可作主码,假设选dno作主码 表的合并 l可以:Dept+Manage Dept(dno,dname,pid) l或者:President+ManagePresident(pid,name,dno) 不能进行下述合并: Dept+Manage+President ?(不能接受的合并) 院系 管理 院长 dnodnamepidname * 12 数据库系统概念-E-R 4.2表的合并 l二元m:n联系 联系转化的表和实体转化的表不能进行合并 l示例: E-R图 转化成的表 lStudent(sno,sname) lCourse(cno,cname) lSC(sno,cno,score) 无法进行表的合并 学生课程 学习 snonamecnocnamescore * 13 数据库系统概念-E-R 4.2表的合并 l多元联系 联系转化的表和实体转化的表不能进行合并 即便是m:n:1,其转化的表和也不能进行合并 l示例: E-R图(省略了属性): 转化成的表: lClass(classno,classname) lTeacher(tno,tname) lCourse(courseno,coursename) lTCC(tno,classno,courseno) /P.K.=(classno,tno)或(classno,courseno) 无法进行表的合并 教师课程 班级 上课 * 14 数据库系统概念-E-R 4.2表的合并:总结 l联系转化成的表,和实体转化成的表,可以机械地 按照下述原则合并: 二元多对一联系: l联系转化的表可以和“多端” 实体转化成的表进行合并 二元一对一联系: l联系转化的表可以任一端实体转化成的表进行合并 l二元一对一联系不能导致相关实体转化成的表合并 二元m:n联系: l联系转化的表和实体转化的表不能进行合并 多元联系: l联系转化的表和实体转化的表不能进行合并 l即便是m:n:1,其转化的表和也不能进行合并 l实体转化成的表,相互之间不能机械合并 l联系转化成的表,相互之间不能机械合并 * 15 数据库系统概念-E-R 4.2 E-R图表以及表的合并:示例 l教务系统概念模型如下图所示 请将E-R图转化为表并进行必要的合并: 隶属 学生 学习 score age 院系 隶属 教师 课程 讲授 dno dname tno name cnocname sex age sno name sex property 4.2 E-R图表以及表的合并:示例 l将E-R图转化为表: 实体转化成表 ld(dno,dname) lc(cno,cname,property) ls(sno,sname,age,sex) lt(tno,tname,age,sex) 联系转化为表 lsd(sno,dno) ltd(tno,dno) lsc(sno,cno,score) ltc(tno,cno,time) 隶属 学生 学习 score age 院系 隶属 教师 课程 讲授 dno dname tno tname cnocname sex age sno sname sex property 16 4.2 E-R图表以及表的合并:示例 l表的合并 s+sds(sno,sname,age,sex,dno) t +td t(tno, tname,age,sex,dno) l合并表后的关系模式 d(dno,dname) c(cno,cname,property) s(sno,sname,age,sex,dno) t(tno,tname,age,sex,dno) sc(sno,cno,score) tc(tno,cno) l关系模式图如图所示 17 4.2 E-R图表以及表的合并:示例 l教务系统数据概念模型与逻辑模型对比 概念模型主要用E-R图刻画,用于需求分析 逻辑模型主要由关系模式图刻画,用于模式设计 隶属 学生 学习 score age 院系 隶属 教师 课程 讲授 dno dname tno tname cnocname sex age sno sname sex property 18 * 19 数据库系统概念-E-R 4.2 练习一 l请将E-R图转化为表并进行必要的合并: 假设每个实体都有属性id和name 假设供应联系有属性quantity,其它联系无属性 仓库存放 供应商零件生产 项目 供应 职工 管理 属 参与 属 领导 属 领导 员工 * 20 数据库系统概念-E-R 4.2 练习一:参考答案 lE-R图转化为表 实体转化成表 project(pid,pname) employee(eid,ename) supplier(sid,sname) component(cid,cname) warehouse(wid,wname) 联系转化为表 participate(pid,eid) lead(eid,leid) /leid非空 supply(sid,pid,cid,quantity) produce(sid,cid) store(cid,wid) manager(eid,wid) l表的合并 employee+leademployee(eid,ename,leid)/leid可以为空 仓库 存 放 供应商零件 生 产 项目 供 应 职工 管 理 属 参 与 属 领 导 领导 员工 4.2 练习一:关系模型图 * 21 数据库系统概念-E-R * 22 数据库系统概念-E-R 4.2 练习二 l将如下E-R图转化为表并进行必要的合并,请给出: 1.结果关系模式 2.关系模式图 学生 学习 score age 院系 隶属 教师 课程 讲授 dnodname tno name cnocname sno name 先行课 隶属 age 班级 上课classname classno telno 隶属 * 23 数据库系统概念-E-R 4.3E-R图其它要素转化为表的方法 l E-R图其它要素转化为表的方法 复杂属性处理 弱实体处理 继承转化为表 聚集转化为表 * 24 数据库系统概念-E-R 4.3.1复杂属性表 l多值属性 每个多值属性转化为一个表 表主码: 实体主码+多值属性分辨符 例如:S-telno(sno,tno) l复合属性 只保留叶节点属性 l派生属性 一般表模式中不保留派生属性 S(sno,sname,birthday,city,street) 如果考虑使用频率、查询效率等因素,可以保留派 生属性,尽管本质上派生属性是表的冗余属性 birthday age 学生 snoname relative pidnamerelation city street addr telno * 25 数据库系统概念-E-R 4.3.1复杂属性表 l示例,学生实体转化为表: 所有单值属性转化为一个表 lS(sno,sname,birthday,city,street) 每个多值属性转化为一个表 lS-telno(sno,tno) lS-relative(sno,pid,relation,name) l思考: S-relative中,pid属性是否可以单独构成主码? 不同多值属性转化的表可以合并吗? birthday age 学生 snoname relative pidnamerelation city street addr telno * 26 数据库系统概念-E-R 4.3.2弱实体表 l 弱实体转化为表 弱实体象普通实体一样向表转化,只是在弱 实体转化的表中,增加属主实体的主码作为 表属性 弱实体转化成表的主码: l属主实体的主码+弱实体的分辨符 标识性联系不转化成表,不作处理 4.3.2弱实体表:示例 l示例: 请将如下所示银行帐户E-R图转化为表 账户 accno AccName datedealnumLineNo date accrual 银行职员 EnoEName 交易记录 操作 计息 利息记录 4.3.2弱实体表:示例 l将E-R图转化为表: 实体转化成表 lacc(accno,accname) lemp(eno,ename) 弱实体转化成表 ltrans(accno,lineno,date,dealnum) lrual(accno,date,accrual) 标识性联系不转化成表 联系转化成表 ltr(accno,lineno,date) lte(accno,lineno,eno) l表合并 trans+tr+te =trans(accno,lineno,transdate,dealnum,rualdate,eno) 账户 accno AccName date dealnumLineNo date accrual 银行职员 EnoEName 交易记录 操作 计息 利息记录 4.3.2弱实体vs强实体 l练习: 对上述银行账户,如果在E-R中不使用弱实 体,而是通过给交易记录、利息记录增加标 识属性是成为强实体,试给出相应E-R图 试将上述E-R图转化为表并进行必要的合并 体会、比较两种E-R图对应概念模型及逻辑 模型的差异,你更喜欢哪一种? 4.3.2强实体同理扩展teacher: lstudent(pid,sno,name) lteacher(pid,tno,name) 请比较扩展方案的优缺点; 思考:子表是否应该扩展父类属性?应该扩展多少属性? 教师课程 学生 上课 讲授 人员 图书 借阅 ISA tno name cnocname bnobname pid age sno 52 * 53 数据库系统概念-关系数据库设计 4.5关系模式设计的其它问题讨论 l本节讨论几个关系模式设计的常见问题 按时间单独建表问题 关系设计成交叉表 时态数据建模问题 * 54 数据库系统概念-关系数据库设计 4.5其它设计问题(一) l按时间因素单独建表 如常见的按照年度单独见表方式 l问题分析 模式不稳定,不符合关系模式设计的基本原则 是相当差的设计,应当避免 Earn2001 DeptAmount D13000 D26016 Earn2002 DeptAmount D13010 D26050 Earn DeptAmount D13050 D26120 * 55 数据库系统概念-关系数据库设计 4.5其它设计问题(一) l按时间因素单独建表问题改进: 将时间因素作为属性加到关系中 关系的主码:原主码+时间因素 l思考:这样改进的优缺点? Earn2001 DeptAmount D13000 D26016 Earn2002 DeptAmount D13010 D26050 Earn DeptAmount D13050 D26120 Earn DeptYearAmount D120003000 D220006016 D120013010 D220016050 * 56 数据库系统概念-关系数据库设计 4.5其它设计问题(二) l关系设计成交叉表 交叉表:按某一维度数据建列 例如:将月份、课程等数据设计为列 l问题

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论