资源描述:
《数据库设计与实现-ER转换为关系模式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、21七月20211数据库系统概念----E-R4从E-R图到数据库模式设计根据E-R建立数据库模式的步骤1、E-R图转换为表并进行必要的合并本步骤可以按照机械方法完成一个良好的E-R图,完成本步转换和合并得到的结果,已经是比较理想的数据库模式(尽管还有人工进一步优化的余地)2、优化本步无具体可行的机械方法主要依靠设计人员的经验和能力转换、设计理解、表达现实世界概念模型:E-R图逻辑模型:DBSchema21七月20212数据库系统概念----E-R44从E-R图到数据库模式设计本章主要内容4.1E-R图到表的基本转化方法暂时只考虑基本E-R图的转换,且
2、只考虑简单、单值属性4.2表合并方法讨论讨论联系转化的表能否及如何与其它表合并4.3E-R复杂要素转化为表的方法复杂属性处理弱实体处理继承转化为表聚集转化为表4.4关于表模式进一步优化问题的讨论4.5其它逻辑模式设计问题讨论21七月20213数据库系统概念----E-R4.1E-R到表的基本转化方法实体转化为表E-R图的每个实体转化成一个表实体的属性转化为表的属性(暂时只考虑简单、单值属性)实体的主码转化为表的主码21七月20214数据库系统概念----E-R4.1E-R到表的基本转化方法联系转化为表每个联系转化成一个表联系转化成表的属性参与联系实体的
3、主码并集pk(e1)∪pk(e2)…以及联系的属性{a1,a2}共同构成表的属性pk(e1)∪pk(e2)∪…∪{a1,a2…}在联系转化成的表中,属性的非空限制:实体主码形成的属性pk(e1)∪pk(e2)∪…均应notnull只有在联系转化成的表与其他表合并后,才可能允许null21七月20215数据库系统概念----E-R4.1E-R到表的基本转化方法联系转化成的表的码:参与联系实体的主码并集pk(e1)∪pk(e2)…是联系转化成的表的超码多对一联系,上述超码去掉一个“一”端实体的主码后,是联系表的候选码多对多联系,上述超码是联系表的候选码21
4、七月20216数据库系统概念----E-R4.1E-R到表的基本转化方法示例E-R图:实体转化成的表:Dept(dno,dname)Student(sno,sname)Course(cno,cname)联系转化成的表:SD(sno,dno,time)//dno非空SC(sno,cno,score)院系隶属属学生课程学习属dnodnamesnonamecnocnametimescore21七月20217数据库系统概念----E-R4.1练习请将下述E-R转化为关系模式:注意指明各表的主码教师课程班级上课讲授tnonamecnocnameclassname
5、classno21七月20218数据库系统概念----E-R4.1练习将E-R转化为关系模式参考答案实体转化成的表Teacher(tno,name)class(classno,classname)Course(cno,cname)联系转化成的表tc(tno,cno)tcc(classno,cno,tno)21七月20219数据库系统概念----E-R4.2表的合并主要讨论联系转化的表与相关实体转化的表的合并问题按照联系类别分别讨论能否合并、如何合并二元m:1联系二元1:1联系二元m:n联系多元联系21七月202110数据库系统概念----E-R4.2表
6、的合并二元多对一联系:联系转化的表可以和“多端”实体转化成的表进行合并示例:E-R图转化成的表Dept(dno,dname)Student(sno,sname)SD(sno,dno,time)//dno非空表的合并Student+SDStudent(sno,sname,dno,time)//dno可以为空院系隶属属学生dnodnamesnonametime21七月202111数据库系统概念----E-R4.2表的合并二元一对一联系:联系转化的表可以任一端实体转化成的表进行合并二元一对一联系不能导致相关实体转化成的表合并示例:E-R图如右所示转化成的表
7、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?(不能接受的合并)院系管理院长dnodnamepidname21七月202112数据库系统概念----E-R4.2表的合并二元m:n联系联系转化的表和实体转化的表不能进行合并示例:E-R
8、图转化成的表Student(sno,sname)Course(cno,cname)SC(sno