1、11 November 20221数据库系统概念-E-R4从从E-R 图到数据库模式设计图到数据库模式设计l根据E-R建立数据库模式的步骤 1、E-R图转换为表并进行必要的合并l本步骤可以按照机械方法完成l一个良好的E-R图,完成本步转换和合并得到的结果,已经是比较理想的数据库模式(尽管还有人工进一步优化的余地)2、优化l本步无具体可行的机械方法l主要依靠设计人员的经验和能力转换、设计转换、设计理解、表达理解、表达现实世界现实世界概念模型:概念模型:E-R图图逻辑模型:逻辑模型:DBSchema11 November 20222数据库系统概念-E-R4 4从从E-R 图到数据库模式设计图到数据
2、库模式设计l本章主要内容 4.1E-R图到表的基本转化方法l暂时只考虑基本E-R图的转换,且只考虑简单、单值属性 4.2表合并方法讨论l讨论联系转化的表能否及如何与其它表合并 4.3E-R复杂要素转化为表的方法l复杂属性处理l弱实体处理l继承转化为表l聚集转化为表 4.4关于表模式进一步优化问题的讨论 4.5其它逻辑模式设计问题讨论11 November 20223数据库系统概念-E-R4.1 E-R 到表的到表的基本转化方法基本转化方法l实体转化为表E-R图的每个实体转化成一个表实体的属性转化为表的属性(暂时只考虑简单、单值属性)实体的主码转化为表的主码11 November 20224数据
3、库系统概念-E-R4.1 E-R 到表的到表的基本转化方法基本转化方法l联系转化为表 每个联系转化成一个表l联系转化成表的属性 参与联系实体的主码并集pk(e1)pk(e2)以及联系的属性a1,a2共同构成表的属性 pk(e1)pk(e2)a1,a2l在联系转化成的表中,属性的非空限制:实体主码形成的属性pk(e1)pk(e2)均应not null 只有在联系转化成的表与其他表合并后,才可能允许null11 November 20225数据库系统概念-E-R4.1 E-R 到表的到表的基本转化方法基本转化方法l联系转化成的表的码:参与联系实体的主码并集pk(e1)pk(e2)是联系转化成的表的
4、超码 多对一联系,上述超码去掉一个“一”端实体的主码后,是联系表的候选码 多对多联系,上述超码是联系表的候选码11 November 20226数据库系统概念-E-R4.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)院系院系隶属隶属属属学生学生课程课程学习学习属属dnodnamesnonamecnocnametimescore11 November 20227数
5、据库系统概念-E-R4.1 练习练习l请将下述E-R转化为关系模式:注意指明各表的主码教师教师课程课程班级班级上课上课讲授讲授tnonamecnocnameclassnameclassno11 November 20228数据库系统概念-E-R4.1 练习练习l将E-R转化为关系模式参考答案实体转化成的表lTeacher(tno,name)lclass(classno,classname)lCourse(cno,cname)联系转化成的表ltc(tno,cno)ltcc(classno,cno,tno)11 November 20229数据库系统概念-E-R4.2表的合并表的合并l主要讨论联系
6、转化的表与相关实体转化的表的合并问题l按照联系类别分别讨论能否合并、如何合并 二元m:1联系 二元1:1联系 二元m:n联系 多元联系11 November 202210数据库系统概念-E-R4.2表的合并表的合并l二元多对一联系:联系转化的表可以和“多端”实体转化成的表进行合并l示例:E-R图 转化成的表lDept(dno,dname)lStudent(sno,sname)lSD(sno,dno,time)/dno非空 表的合并lStudent+SD Student(sno,sname,dno,time)/dno可以为空院系院系隶属隶属属属学生学生dnodnamesnonametime11
7、November 202211数据库系统概念-E-R4.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?(不
8、能接受的合并)院系院系管理管理院长院长dnodnamepidname11 November 202212数据库系统概念-E-R4.2表的合并表的合并l二元m:n联系 联系转化的表和实体转化的表不能进行合并l示例:E-R图 转化成的表lStudent(sno,sname)lCourse(cno,cname)lSC(sno,cno,score)无法进行表的合并学生学生课程课程学习学习snonamecnocnamescore11 November 202213数据库系统概念-E-R4.2表的合并表的合并l多元联系 联系转化的表和实体转化的表不能进行合并 即便是m:n:1,其转化的表和也不能进行合并l
9、示例:E-R图(省略了属性):转化成的表:lClass(classno,classname)lTeacher(tno,tname)lCourse(courseno,coursename)lTCC(tno,classno,courseno)/P.K.=(classno,tno)或(classno,courseno)无法进行表的合并教师教师课程课程班级班级上课上课11 November 202214数据库系统概念-E-R4.2表的合并:总结表的合并:总结l联系转化成的表,和实体转化成的表,可以机械地按照下述原则合并:二元多对一联系:l联系转化的表可以和“多端”实体转化成的表进行合并 二元一对一联系
10、:l联系转化的表可以任一端实体转化成的表进行合并l二元一对一联系不能导致相关实体转化成的表合并 二元m:n联系:l联系转化的表和实体转化的表不能进行合并 多元联系:l联系转化的表和实体转化的表不能进行合并l即便是m:n:1,其转化的表和也不能进行合并l实体转化成的表,相互之间不能机械合并l联系转化成的表,相互之间不能机械合并11 November 202215数据库系统概念-E-R4.2 E-R图图表以及表的合并:示例表以及表的合并:示例l教务系统概念模型如下图所示 请将E-R图转化为表并进行必要的合并:隶属隶属学生学生学习学习scoreage院系院系隶属隶属教师教师课程课程讲授讲授dnodn
11、ametnonamecnocnamesexagesnonamesexproperty4.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)隶属隶属学生学生学习学习scoreage院系院系隶属隶属教师教师课程课程讲授讲授dnodnametnotnamecnocnamesexage
12、snosnamesexproperty164.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关系模式图如图所示174.2 E-R图图表以及表的合并:示例表以及表的合并:示例l教务系统数据概念模型与逻辑模型对比 概念模型主要用
13、E-R图刻画,用于需求分析 逻辑模型主要由关系模式图刻画,用于模式设计隶属隶属学生学生学习学习scoreage院系院系隶属隶属教师教师课程课程讲授讲授dnodnametnotnamecnocnamesexagesnosnamesexproperty1811 November 202219数据库系统概念-E-R4.2 练习一练习一l请将E-R图转化为表并进行必要的合并:假设每个实体都有属性id和name 假设供应联系有属性quantity,其它联系无属性仓库仓库存放存放供应商供应商零件零件生产生产项目项目供应供应职工职工管理管理属属参与参与属属领导领导属属领导领导员工员工11 November
14、202220数据库系统概念-E-R4.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,
15、ename,leid)/leid可以为空仓库仓库存存放放供应商供应商零件零件生生产产项目项目供供应应职工职工管管理理属属参参与与属属领领导导领导领导员工员工4.2 练习一练习一:关系模型图关系模型图11 November 202221数据库系统概念-E-R11 November 202222数据库系统概念-E-R4.2 练习二练习二l将如下E-R图转化为表并进行必要的合并,请给出:1.结果关系模式 2.关系模式图学生学生学习学习scoreage院系院系隶属隶属教师教师课程课程讲授讲授dnodnametnonamecnocnamesnoname先行课先行课隶属隶属age班级班级上课上课class
16、nameclassnotelno隶属隶属11 November 202223数据库系统概念-E-R4.3E-R图其它要素转化为表的方法图其它要素转化为表的方法l E-R图其它要素转化为表的方法 复杂属性处理 弱实体处理 继承转化为表 聚集转化为表11 November 202224数据库系统概念-E-R4.3.1复杂属性复杂属性表表l多值属性 每个多值属性转化为一个表 表主码:实体主码+多值属性分辨符 例如:S-telno(sno,tno)l复合属性 只保留叶节点属性l派生属性 一般表模式中不保留派生属性 S(sno,sname,birthday,city,street)如果考虑使用频率、查询
17、效率等因素,可以保留派生属性,尽管本质上派生属性是表的冗余属性birthdayage学生学生snonamerelativepidnamerelationcitystreetaddrtelno11 November 202225数据库系统概念-E-R4.3.1复杂属性复杂属性表表l示例,学生实体转化为表:所有单值属性转化为一个表lS(sno,sname,birthday,city,street)每个多值属性转化为一个表lS-telno(sno,tno)lS-relative(sno,pid,relation,name)l思考:S-relative中,pid属性是否可以单独构成主码?不同多值属性转
18、化的表可以合并吗?birthdayage学生学生snonamerelativepidnamerelationcitystreetaddrtelno11 November 202226数据库系统概念-E-R4.3.2弱实体弱实体表表l 弱实体转化为表 弱实体象普通实体一样向表转化,只是在弱实体转化的表中,增加属主实体的主码作为表属性 弱实体转化成表的主码:l属主实体的主码+弱实体的分辨符 标识性联系不转化成表,不作处理4.3.2弱实体弱实体表:示例表:示例l示例:请将如下所示银行帐户E-R图转化为表账户账户accnoAccNamedatedealnumLineNodateaccrual银行职员银
19、行职员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)账户账
20、户accnoAccNamedatedealnumLineNodateaccrual银行职员银行职员EnoEName交易记录交易记录操作操作计息计息利息记录利息记录4.3.2弱实体弱实体vs强实体强实体l练习:对上述银行账户,如果在E-R中不使用弱实体,而是通过给交易记录、利息记录增加标识属性是成为强实体,试给出相应E-R图 试将上述E-R图转化为表并进行必要的合并 体会、比较两种E-R图对应概念模型及逻辑模型的差异,你更喜欢哪一种?4.3.2强实体强实体&表:参考方案表:参考方案l将E-R图转化为表:实体转化成表lacc(accno,accname)ltrans(tid,lineno,date
21、,dealnum)lrual(rid,date,accrual)lemp(eno,ename)联系转化成表lta(tid,accno)lra(rid,accno)ltr(tid,rid)lte(tid,eno)l表合并 trans+ta+tr+te=trans(tid,accno,lineno,date,dealnum,rid,eno)rual+ra=rual(rid,accno,date,accrual)账户账户accnoAccNamedatedealnumLineNodateaccrual银行职员银行职员EnoEName操作操作计息计息交易记录交易记录利息记录利息记录tidrid隶属隶属隶
22、属隶属4.3.2弱实体弱实体vs强实体强实体l弱实体方案转化的逻辑模式 acc(accno,accname)emp(eno,ename)trans(accno,lineno,transdate,dealnum,rualdate,eno)rual(accno,date,accrual)l强实体方案转化的逻辑模式:acc(accno,accname)emp(eno,ename)trans(tid,accno,lineno,date,dealnum,rid,eno)rual(rid,accno,date,accrual)l课堂练习:请分别给出两种逻辑模式的模式图 试述你更喜欢哪种方案?11 Nove
23、mber 202232数据库系统概念-E-R4.3.3继承关系继承关系表表l继承关系的三种处理方案父类、子类分别建表p(pid,name)s(pid,sno,dept)t(pid,tno,dept)父类并入子类,只为子类建表s(pid,name,sno,dept)t(pid,name,tno,dept)子类并入父类,只为父类建表p(pid,name,sno,s-dept,tno,t-dept)l比较:三种方案各有优缺点,都可以接受 设计人员根据具体情况,综合评定选择确定最终方案 讨论:针对这个示例,你更愿意选择哪个方案?ISA学生学生personpidnamesnodept教师教师tnodep
24、t4.3.3练习与讨论练习与讨论l学校系统概念模型如下E-R图所示:请按照继承关系三种处理方案分别转化成表 比较各方案优缺点,你更喜欢哪种方案?教师教师课程课程学生学生上课上课讲授讲授人员人员图书图书借阅借阅ISAtnonamecnocnamebnobnamepidagesno4.3.3练习与讨论:参考答案一练习与讨论:参考答案一l父类、子类分别建表 实体转化成表lperson(pid,name,age)lstudent(pid,sno)lteacher(pid,tno)lbook(bno,bname)lcourse(cno,cname)联系转化成表lpb(pid,bno)ltsc(t-pid
25、,s-pid,cno)ltc(pid,cno)没有联系转化的表需要和实体转化的表合并教师教师课程课程学生学生上课上课讲授讲授人员人员图书图书借阅借阅ISAtnonamecnocnamebnobnamepidagesno4.3.3练习与讨论:参考答案练习与讨论:参考答案2-1l父类并入子类,只为子类建表2-1 实体转化成表lstudent(pid,sno,name,age)lteacher(pid,tno,name,age)lbook(bno,bname)lcourse(cno,cname)联系转化成表lpb(pid,bno)/pid参照谁?ltsc(t-pid,s-pid,cno)ltc(pi
26、d,cno)没有联系转化的表需要和实体转化的表合并教师教师课程课程学生学生上课上课讲授讲授人员人员图书图书借阅借阅ISAtnonamecnocnamebnobnamepidagesno4.3.3练习与讨论:参考答案练习与讨论:参考答案2-2l父类并入子类,只为子类建表2-2 实体转化成表lstudent(pid,sno,name,age)lteacher(pid,tno,name,age)lbook(bno,bname)lcourse(cno,cname)联系转化成表lsb(pid,bno)ltb(pid,bno)ltsc(t-pid,s-pid,cno)ltc(pid,cno)没有联系转化的
27、表需要和实体转化的表合并教师教师课程课程学生学生上课上课讲授讲授人员人员图书图书借阅借阅ISAtnonamecnocnamebnobnamepidagesno4.3.3练习与讨论:参考答案三练习与讨论:参考答案三l子类并入父类,只为父类建表 实体转化成表lperson(pid,name,age,sno,tno)lbook(bno,bname)lcourse(cno,cname)联系转化成表lpb(pid,bno)ltsc(t-pid,s-pid,cno)ltc(pid,cno)没有联系转化的表需要和实体转化的表合并教师教师课程课程学生学生上课上课讲授讲授人员人员图书图书借阅借阅ISAtnona
28、mecnocnamebnobnamepidagesno4.3.3练习与讨论练习与讨论l对学校系统:比较继承关系几种处理方案优缺点 你更喜欢哪种方案?11 November 202239数据库系统概念-E-R4.3.4聚集聚集表表l聚集的处理方案 联系及相关实体聚集成的高层实体,核心是被聚集的“联系”聚集成的高层实体本身不转化成表 高层实体参与的联系进行正常的表转化,高层实体的主码使用聚集的“核心联系”的主码代替l示例,E-R图转化为表 custom(),bank(),project()order(cid,pid)guarantee(cid,pid,bid)客户客户项目项目订购订购银行银行担保担
29、保11 November 202240数据库系统概念-E-R4.3.4聚集聚集表表l思考,对E-R图所示概念模型:不使用聚集,如何绘制E-R图?相应E-R图如何转成模式?最终得到的逻辑模式相同吗?哪个更好?客户客户项目项目订购订购银行银行担保担保11 November 202241数据库系统概念-E-R4.3.4聚集聚集表表l方案二:联系实体化 custom(),bank(),project()order(oid,cid,pid,)guarantee(oid,bid)l方案三:看作两种不同的联系 custom(),bank(),project()order(cid,pid)Guaranteed
30、-order(cid,pid,bid)l思考:哪种方案更好?方案三:看作两种不同的联系方案三:看作两种不同的联系担担 保保客户客户项目项目订购订购银行银行订购订购项目项目全部全部全部全部客户客户银行银行担保担保订购合约订购合约关关于于隶隶属属方案二:联系实体化方案二:联系实体化4.3.4练习练习11 November 202242l请建立排课系统E-R图,并转换成表:山东大学山东大学2010-2011学年第二学期学生用本科课程表学年第二学期学生用本科课程表 班级:2008-3序号序号课程课程名称名称课时课时教室教室任课任课 教师教师助教助教上课时间(节次)上课时间(节次)备注备注一一二二三三四
31、四五五1数据库系统概论41区208赵刚张红韩珍1-21-2实验共18课时2操作系统45区106张红3-41-23商务智能31区208王兵董强5-74.3.4练习练习l参考方案(一):使用聚集 Class(classno,)Course(cno,)Teacher(tno,)Givclass(tno,cno,classno,classroom)Givclass_time(tno,cno,classno,time)Assistant(assistanttno,tno,cno,classno)11 November 202243教师教师课程课程班级班级上课上课classroomtimetnotname
32、cnocnameclassnoclassname讲授讲授助教助教4.3.4练习练习11 November 202244全部全部全全 部部全部全部教师教师课程课程班级班级classroomtimetnotnamecnocnameclassnoclassname上课条目上课条目讲授讲授关于关于上课上课gno助教助教l参考方案(二):联系实体化 Class(classno,)Course(cno,)Teacher(tno,)Givclassitem(gno,teacher_tno,cno,classroom)/合并了讲授、关于两个联系 Givclassitem_time(gno,time)Givcl
33、ass(gno,classno)Assistant(assistant_tno,gno)4.3.4练习练习11 November 202245教师教师课程课程班级班级上课上课tnotnamecnocnameclassnoclassname讲授讲授上课上课classroomtimeclassroomtime讲授讲授助教助教l参考方案(三):看作两个不同的联系 Class(classno,)Course(cno,)Teacher(tno,)Givclass(tno,cno,classno,classroom)Givclass_time(tno,cno,classno,time)Givclasswi
34、thassistant(tno,cno,classno,assisttno,classroom)/独立于givclass联系/需要有classroom属性 Givclasswithassistant_time(tno,cno,classno,assisttno,time)l试比较方案一二三,你认为哪种方案更合适?11 November 202246数据库系统概念-E-R4.4关系模式优化关系模式优化l逻辑模型设计步骤 1、E-R图转换为表并进行必要合并l本步可以按照机械方法完成 2、逻辑模型优化l本步无具体可行的机械方法l主要依靠设计人员的经验和能力l逻辑模型优化 本章讨论几个优化示例 请通过
35、示例,体会设计和优化的基本思路转换、设计转换、设计理解、表达理解、表达现实世界现实世界概念模型:概念模型:E-R图图逻辑模型:逻辑模型:DBSchema11 November 202247数据库系统概念-E-R4.4关系模式优化:示例一关系模式优化:示例一l示例:请将E-R图转化为表并进行必要的合并 假设每个实体都有属性no和namel思考:转化的结果还有进一步优化的余地吗?如果有优化余地,如何优化?利弊如何?教师教师课程课程讲授讲授学生学生上课上课11 November 202248数据库系统概念-E-R4.4关系模式优化:示例一关系模式优化:示例一lE-R图转化为表:S(sno,sname
36、)T(tno,tname)C(cno,cname)SCT(sno,cno,tno)TC(tno,cno)/cno:not nulll合并 T+TC=T(tno,tname,cno)/cno可以为空l思考:第一种改进思路l既然tno cno,则SCT必有冗余数据l能否将SCT(sno,cno,tno)简化为SCT(sno,tno)?第二种改进思路l既然SCT已经包含TC关系l能否简单省略TC关系?教师教师课程课程讲授讲授学生学生上课上课11 November 202249数据库系统概念-E-R4.4关系模式优化:示例一关系模式优化:示例一l请比较三种方案:(忽略了实体转化的表)E-R图转化成的关
37、系模式:SCT(sno,cno,tno)TC(tno,cno)将SCT简化为(sno,tno):SCT(sno,tno)TC(tno,cno)简单省略TC关系:SCT(sno,cno,tno)l思考:哪个方案更合适?如果你是设计员,你会选择哪个方案?它的所有指标都是最好的吗?请体会:设计是在矛盾的指标中,评价选择最合适的方案教师教师课程课程讲授讲授学生学生上课上课11 November 202250数据库系统概念-E-R4.4 关系关系模式优化模式优化l关系模式设计方案的评价标准 数据表示符合自然结构 清晰、简洁、易于理解 数据冗余小 数据访问效率高(查询效率、修改效率)结构易于扩展 l关系模
38、式设计 设计方案的评价标准中,指标相互之间存在矛盾 设计是在矛盾的指标中,评价选择最合适的方案 工程思想和方法、设计人员的经验和能力:对模式设计都是重要的lE-R图转换为表 vs 模式优化设计 一个良好的E-R图,转换为表并进行必要的合并,得到的结果已经是比较理想的数据库模式 不排除还有人工进一步优化的余地 进一步的优化必须审慎,必须综合评价优化的优缺点11 November 202251数据库系统概念-E-R4.4关系模式优化:示例二关系模式优化:示例二l针对E-R图表示的概念模型 请在不同设计方案中,评价选择最合适的方案E-R图转化成的关系模式:S(sno,sname)C(cno,cnam
39、e)SC(sno,cno,score)合并为一个表:SC(sno,sname,cno,cname,score)对SC扩展:S(sno,sname)C(cno,cname)SC(sno,sname,cno,cname,score)l思考:比较各方案的优缺点 哪个方案更合适?如果你是设计员,你会选择哪个方案?l没有标准答案、不能简单以对错进行评论学生学生课程课程学习学习属属snonamecnocnamescore4.4关系模式优化:示例三关系模式优化:示例三l针对E-R图所示概念模型,父类子类分别建表:person(pid,name,age)student(pid,sno)teacher(pid,
40、tno)book(bno,bname)course(cno,cname)pb(pid,bno)tsc(t-pid,s-pid,cno)tc(pid,cno)l优化思路:考虑到查询sno时经常查询name,扩展student;同理扩展teacher:lstudent(pid,sno,name)lteacher(pid,tno,name)请比较扩展方案的优缺点;思考:子表是否应该扩展父类属性?应该扩展多少属性?教师教师课程课程学生学生上课上课讲授讲授人员人员图书图书借阅借阅ISAtnonamecnocnamebnobnamepidagesno5211 November 202253数据库系统概念-
41、关系数据库设计4.5关系模式设计的其它问题讨论关系模式设计的其它问题讨论l本节讨论几个关系模式设计的常见问题 按时间单独建表问题 关系设计成交叉表 时态数据建模问题11 November 202254数据库系统概念-关系数据库设计4.5其它设计问题(一)其它设计问题(一)l按时间因素单独建表 如常见的按照年度单独见表方式l问题分析 模式不稳定,不符合关系模式设计的基本原则 是相当差的设计,应当避免Earn2001DeptD1D2Amount30006016Earn2002DeptD1D2Amount30106050EarnDeptD1D2Amount3050612011 November 20
42、2255数据库系统概念-关系数据库设计4.5其它设计问题(一)其它设计问题(一)l按时间因素单独建表问题改进:将时间因素作为属性加到关系中 关系的主码:原主码+时间因素l思考:这样改进的优缺点?Earn2001DeptD1D2Amount30006016Earn2002DeptD1D2Amount30106050EarnDeptD1D2Amount30506120EarnDeptD1D2D1D2Year2000200020012001Amount300060163010605011 November 202256数据库系统概念-关系数据库设计4.5其它设计问题(二)其它设计问题(二)l关系设计
43、成交叉表 交叉表:按某一维度数据建列 例如:将月份、课程等数据设计为列l问题分析 交叉表是很好的数据输出格式,但不是可取的表模式设计 把二维表的数据转化成交叉表格式输出,是应用程序的任务 交叉表不符合关系模式设计的基本原则,应当避免R1DeptD1D2D1Year200020002001Jan30005000Feb26005600Oct35006010R2Sname甲甲乙乙丙丙DB859576OS91776711 November 202257数据库系统概念-关系数据库设计4.5其它设计问题(二)其它设计问题(二)l关系设计成交叉表问题改进 将数据维度改为列,即作为属性加到关系中 关系的主码:
44、原主码+增加的数据维度属性 数据库存储数据,不存储数据的展现形式R2Snos1s2s3s1s2s3Cnoc1c1 c1c2c2 c2Score859576917767R1DeptD1D2D1D1Year2000200020002001month1121Amount30005000260011 November 202258数据库系统概念-关系数据库设计4.5其它设计问题(三)其它设计问题(三)l时态数据建模设计 管理历史数据,常常将时间段与数据相关联 时态数据:与时间段相关联的数据 快照:特定时间点上的数据l时态数据的常用设计方法 1、首先忽略时态因素完成数据库设计 2、给需要管理历史数据的关系增加时间相关属性lbegin-time,end-time 3、变更增加时态因素表的主码:主码增加属性begin-timeRSnoE1E1E2Begin2001-92003-82001-9End2003-72005-72005-7Dept数数计计软软Snapshot(R,2002-7)SnoE1E2Dept数数软软
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。