当前位置:文档之家› 数据库设计与实现ER转换为关系模式

数据库设计与实现ER转换为关系模式


示例:
班级
E-R图(省略了属性):
上课
转化成的表:
Class(classno,classname)
教师
课程
Teacher(tno,tname)
Course(courseno,coursename)
TCC(tno,classno,courseno)
//P.K.=(classno,tno)或(classno,courseno)
逻辑模型: DBSchema
主要依靠设计人员的经验和能力
2020年10月5日星期一
数据库系统概念----E-R
1
4 4从E-R 图到数据库模式设计
本章主要内容
4.1E-R图到表的基本转化方法
暂时只考虑基本E-R图的转换,且只考虑简单、单值属性
4.2表合并方法讨论
讨论联系转化的表能否及如何与其它表合并
dno dname
院系
管理
pid name
院长
Dept(dno,dname)
President(pid,name)
Manage(dno,pid) //dno,pid均可作主码,假设选dno作主 码
表的合并
可以:Dept+Manage Dept(dno,dname,pid)
或者:President+ManagePresident(pid,name,dno)
4.3E-R复杂要素转化为表的方法
复杂属性处理 弱实体处理 继承转化为表 聚集转化为表
4.4关于表模式进一步优化问题的讨论 4.5其它逻辑模式设计问题讨论
2020年10月5日星期一
数据库系统概念----E-R
2
4.1 E-R 到表的基本转化方法
实体转化为表 E-R图的每个实体转化成一个表 实体的属性转化为表的属性 (暂时只考虑简单、单值属性) 实体的主码转化为表的主码
请将下述E-R转化为关系模式:
注意指明各表的主码
tno name
教师
班级
上课 讲授
classno classname
课程
cno cname
2020年10月5日星期一
数据库系统概念----E-R
7
4.1 练习
将E-R转化为关系模式参考答案 实体转化成的表
Teacher(tno,name) class(classno,classname) Course(cno,cname)
• 实体主码形成的属性pk(e1)∪pk(e2)∪… 均应not null
• 只有在联系转化成的表与其他表合并后,才 可能允许null
2020年10月5日星期一
数据库系统概念----E-R
4
4.1 E-R 到表的基本转化方法
联系转化成的表的码:
参与联系实体的主码并集pk(e1)∪pk(e2)… 是联系转化成的表的超码
表的合并
Student+SD Student(sno,sname,dno,time)//dno可以为空
2020年10月5日星期一
数据库系统概念----E-R
10
4.2表的合并
二元一对一联系:
联系转化的表可以任一端实体转化成的表进行合并
二元一对一联系不能导致相关实体转化成的表合并
示例:
E-R图如右所示 转化成的表
4从E-R 图到数据库模式设计
根据E-R建立数据库模式的步骤
1、E-R图转换为表并进行必要的合并
本步骤可以按照机械方法完成
现实世界
一个良好的E-R图,完成本步转换和合并 得到的结果,已经是比较理想的数据库模
理解、表达

概念模型:E-R图
(尽管还有人工进一步优化的余地)
2、优化
转换、设计
本步无具体可行的机械方法
无法进行表的合并
2020年10月5日星期一
Student(sno,sname) Course(cno,cname) SC(sno,cno,score)
无法进行表的合并
2020年10月5日星期一
数据库系统概念----E-R
12
4.2表的合并
多元联系
联系转化的表和实体转化的表不能进行合并
即便是m:n:1,其转化的表和也不能进行合并
2020年10月5日星期一
数据库系统概念----E-R
9
4.2表的合并
二元多对一联系:
联系转化的表可以和“多端” 实体转化成的表进行合 并
示例:
dno
dname
time
sno name
E-R图
院系
隶属

学生
转化成的表
Dept(dno,dname) Student(sno,sname) SD(sno,dno,time) //dno非空
联系转化成的表
tc(tno,cno) tcc(classno,cno,tno)
2020年10月5日星期一
数据库系统概念----E-R
8
4.2表的合并
主要讨论联系转化的表与相关实体转化的 表的合并问题
按照联系类别分别讨论能否合并、如何合 并
二元m:1联系 二元1:1联系 二元m:n联系 多元联系
Dept(dno,dname) Student(sno,sname) Course(cno,cname)
联系转化成的表:
SD(sno,dno,time) //dno非空 SC(sno,cno,score)
cno cname
课程
2020年10月5日星期一
数据库系统概念----E-R
6
4.1 练习
多对一联系,上述超码去掉一个“一”端实 体的主码后,是联系表的候选码
多对多联系,上述超码是联系表的候选码
2020年10月5日星期一
数据库系统概念----E-R
5
4.1 E-R到表的基本转化方法示例
E-R图:
dno
dname
time sno name
score
院系
隶属
学生
学习


实体转化成的表:
不能进行下述合并:
Dept+Manage+President ?(不能接受的合并)
2020年10月5日星期一
数据库系统概念----E-R
11
4.2表的合并
二元m:n联系
联系转化的表和实体转化的表不能进行合并
示例:
sno name
score
cno cname
E-R图
学生
学习
课程
转化成的表
2020年10月5日星期一
数据库系统概念----E-R
3
4.1 E-R系转化成一个表
联系转化成表的属性
参与联系实体的主码并集pk(e1)∪pk(e2)…以 及联系的属性{a1,a2}共同构成表的属性
pk(e1)∪pk(e2)∪…∪{a1,a2…}
在联系转化成的表中,属性的非空限制:
相关主题