数据库设计与实现ER转换为关系模式(精)ppt课件_第1页
数据库设计与实现ER转换为关系模式(精)ppt课件_第2页
数据库设计与实现ER转换为关系模式(精)ppt课件_第3页
数据库设计与实现ER转换为关系模式(精)ppt课件_第4页
数据库设计与实现ER转换为关系模式(精)ppt课件_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

2020年5月12日星期二,1,数据库系统概念-E-R,4从E-R图到数据库模式设计,根据E-R建立数据库模式的步骤1、E-R图转换为表并进行必要的合并本步骤可以按照机械方法完成一个良好的E-R图,完成本步转换和合并得到的结果,已经是比较理想的数据库模式(尽管还有人工进一步优化的余地)2、优化本步无具体可行的机械方法主要依靠设计人员的经验和能力,2020年5月12日星期二,2,数据库系统概念-E-R,44从E-R图到数据库模式设计,本章主要内容4.1E-R图到表的基本转化方法暂时只考虑基本E-R图的转换,且只考虑简单、单值属性4.2表合并方法讨论讨论联系转化的表能否及如何与其它表合并4.3E-R复杂要素转化为表的方法复杂属性处理弱实体处理继承转化为表聚集转化为表4.4关于表模式进一步优化问题的讨论4.5其它逻辑模式设计问题讨论,2020年5月12日星期二,3,数据库系统概念-E-R,4.1E-R到表的基本转化方法,实体转化为表E-R图的每个实体转化成一个表实体的属性转化为表的属性(暂时只考虑简单、单值属性)实体的主码转化为表的主码,2020年5月12日星期二,4,数据库系统概念-E-R,4.1E-R到表的基本转化方法,联系转化为表每个联系转化成一个表联系转化成表的属性参与联系实体的主码并集pk(e1)pk(e2)以及联系的属性a1,a2共同构成表的属性pk(e1)pk(e2)a1,a2在联系转化成的表中,属性的非空限制:实体主码形成的属性pk(e1)pk(e2)均应notnull只有在联系转化成的表与其他表合并后,才可能允许null,2020年5月12日星期二,5,数据库系统概念-E-R,4.1E-R到表的基本转化方法,联系转化成的表的码:参与联系实体的主码并集pk(e1)pk(e2)是联系转化成的表的超码多对一联系,上述超码去掉一个“一”端实体的主码后,是联系表的候选码多对多联系,上述超码是联系表的候选码,2020年5月12日星期二,6,数据库系统概念-E-R,4.1E-R到表的基本转化方法示例,E-R图:实体转化成的表:Dept(dno,dname)Student(sno,sname)Course(cno,cname)联系转化成的表:SD(sno,dno,time)/dno非空SC(sno,cno,score),2020年5月12日星期二,7,数据库系统概念-E-R,4.1练习,请将下述E-R转化为关系模式:注意指明各表的主码,2020年5月12日星期二,8,数据库系统概念-E-R,4.1练习,将E-R转化为关系模式参考答案实体转化成的表Teacher(tno,name)class(classno,classname)Course(cno,cname)联系转化成的表tc(tno,cno)tcc(classno,cno,tno),2020年5月12日星期二,9,数据库系统概念-E-R,4.2表的合并,主要讨论联系转化的表与相关实体转化的表的合并问题按照联系类别分别讨论能否合并、如何合并二元m:1联系二元1:1联系二元m:n联系多元联系,2020年5月12日星期二,10,数据库系统概念-E-R,4.2表的合并,二元多对一联系:联系转化的表可以和“多端”实体转化成的表进行合并示例:E-R图转化成的表Dept(dno,dname)Student(sno,sname)SD(sno,dno,time)/dno非空表的合并Student+SDStudent(sno,sname,dno,time)/dno可以为空,2020年5月12日星期二,11,数据库系统概念-E-R,4.2表的合并,二元一对一联系:联系转化的表可以任一端实体转化成的表进行合并二元一对一联系不能导致相关实体转化成的表合并示例:E-R图如右所示转化成的表Dept(dno,dname)President(pid,name)Manage(dno,pid)/dno,pid均可作主码,假设选dno作主码表的合并可以:Dept+ManageDept(dno,dname,pid)或者:President+ManagePresident(pid,name,dno)不能进行下述合并:Dept+Manage+President?(不能接受的合并),2020年5月12日星期二,12,数据库系统概念-E-R,4.2表的合并,二元m:n联系联系转化的表和实体转化的表不能进行合并示例:E-R图转化成的表Student(sno,sname)Course(cno,cname)SC(sno,cno,score)无法进行表的合并,2020年5月12日星期二,13,数据库系统概念-E-R,4.2表的合并,多元联系联系转化的表和实体转化的表不能进行合并即便是m:n:1,其转化的表和也不能进行合并示例:E-R图(省略了属性):转化成的表:Class(classno,classname)Teacher(tno,tname)Course(courseno,coursename)TCC(tno,classno,courseno)/P.K.=(classno,tno)或(classno,courseno)无法进行表的合并,2020年5月12日星期二,14,数据库系统概念-E-R,4.2表的合并:总结,联系转化成的表,和实体转化成的表,可以机械地按照下述原则合并:二元多对一联系:联系转化的表可以和“多端”实体转化成的表进行合并二元一对一联系:联系转化的表可以任一端实体转化成的表进行合并二元一对一联系不能导致相关实体转化成的表合并二元m:n联系:联系转化的表和实体转化的表不能进行合并多元联系:联系转化的表和实体转化的表不能进行合并即便是m:n:1,其转化的表和也不能进行合并实体转化成的表,相互之间不能机械合并联系转化成的表,相互之间不能机械合并,2020年5月12日星期二,15,数据库系统概念-E-R,4.2E-R图表以及表的合并:示例,教务系统概念模型如下图所示请将E-R图转化为表并进行必要的合并:,4.2E-R图表以及表的合并:示例,将E-R图转化为表:实体转化成表d(dno,dname)c(cno,cname,property)s(sno,sname,age,sex)t(tno,tname,age,sex)联系转化为表sd(sno,dno)td(tno,dno)sc(sno,cno,score)tc(tno,cno,time),隶属,学生,学习,score,age,院系,隶属,教师,课程,讲授,dno,dname,tno,tname,cno,cname,sex,age,sno,sname,sex,property,16,4.2E-R图表以及表的合并:示例,表的合并s+sds(sno,sname,age,sex,dno)t+tdt(tno,tname,age,sex,dno)合并表后的关系模式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)关系模式图如图所示,17,4.2E-R图表以及表的合并:示例,教务系统数据概念模型与逻辑模型对比概念模型主要用E-R图刻画,用于需求分析逻辑模型主要由关系模式图刻画,用于模式设计,18,2020年5月12日星期二,19,数据库系统概念-E-R,4.2练习一,请将E-R图转化为表并进行必要的合并:假设每个实体都有属性id和name假设供应联系有属性quantity,其它联系无属性,2020年5月12日星期二,20,数据库系统概念-E-R,4.2练习一:参考答案,E-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)表的合并employee+leademployee(eid,ename,leid)/leid可以为空,4.2练习一:关系模型图,2020年5月12日星期二,21,数据库系统概念-E-R,2020年5月12日星期二,22,数据库系统概念-E-R,4.2练习二,将如下E-R图转化为表并进行必要的合并,请给出:1.结果关系模式2.关系模式图,2020年5月12日星期二,23,数据库系统概念-E-R,4.3E-R图其它要素转化为表的方法,E-R图其它要素转化为表的方法复杂属性处理弱实体处理继承转化为表聚集转化为表,2020年5月12日星期二,24,数据库系统概念-E-R,4.3.1复杂属性表,多值属性每个多值属性转化为一个表表主码:实体主码+多值属性分辨符例如:S-telno(sno,tno)复合属性只保留叶节点属性派生属性一般表模式中不保留派生属性S(sno,sname,birthday,city,street)如果考虑使用频率、查询效率等因素,可以保留派生属性,尽管本质上派生属性是表的冗余属性,2020年5月12日星期二,25,数据库系统概念-E-R,4.3.1复杂属性表,示例,学生实体转化为表:所有单值属性转化为一个表S(sno,sname,birthday,city,street)每个多值属性转化为一个表S-telno(sno,tno)S-relative(sno,pid,relation,name)思考:S-relative中,pid属性是否可以单独构成主码?不同多值属性转化的表可以合并吗?,2020年5月12日星期二,26,数据库系统概念-E-R,4.3.2弱实体表,弱实体转化为表弱实体象普通实体一样向表转化,只是在弱实体转化的表中,增加属主实体的主码作为表属性弱实体转化成表的主码:属主实体的主码+弱实体的分辨符标识性联系不转化成表,不作处理,4.3.2弱实体表:示例,示例:请将如下所示银行帐户E-R图转化为表,4.3.2弱实体表:示例,将E-R图转化为表:实体转化成表acc(accno,accname)emp(eno,ename)弱实体转化成表trans(accno,lineno,date,dealnum)rual(accno,date,accrual)标识性联系不转化成表联系转化成表tr(accno,lineno,date)te(accno,lineno,eno)表合并trans+tr+te=trans(accno,lineno,transdate,dealnum,rualdate,eno),4.3.2弱实体vs强实体,练习:对上述银行账户,如果在E-R中不使用弱实体,而是通过给交易记录、利息记录增加标识属性是成为强实体,试给出相应E-R图试将上述E-R图转化为表并进行必要的合并体会、比较两种E-R图对应概念模型及逻辑模型的差异,你更喜欢哪一种?,4.3.2强实体同理扩展teacher:student(pid,sno,name)teacher(pid,tno,name)请比较扩展方案的优缺点;思考:子表是否应该扩展父类属性?应该扩展多少属性?,52,2020年5月12日星期二,53,数据库系统概念-关系数据库设计,4.5关系模式设计的其它问题讨论,本节讨论几个关系模式设计的常见问题按时间单独建表问题关系设计成交叉表时态数据建模问题,2020年5月12日星期二,54,数据库系统概念-关系数据库设计,4.5其它设计问题(一),按时间因素单独建表如常见的按照年度单独见表方式问题分析模式不稳定,不符合关系模式设计的基本原则是相当差的设计,应当避免,2020年5月12日星期二,55,数据库系统概念-关系数据库设计,4.5其它设计问题(一),按时间因素单独建表问题改进:将时间因素作为属性加到关系中关系的主码:原主码+时间因素思考:这样改进的优缺点?,2020年5月12日星期二,56,数据库系统概念-关系数据库设计,4.5其它设计问题(二),关系设计成交叉表交叉表:按某一维度数据建列例如:将月份、课程等数据设计为列问题分析交叉表是很好的数据输出格式,但不是可取的表模式设计把二维表的数据转化成交叉表格式输出,是应用程序的任务交叉表不符合关系模式设计的基本原则,应当避免,2020年5月12日星期二,57,数据库系统概念-关系数据库设计,4.5其它设计问

温馨提示

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

评论

0/150

提交评论