欢迎来到天天文库
浏览记录
ID:40220409
大小:488.50 KB
页数:42页
时间:2019-07-26
《数据库设计贯通-逻辑及物理设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库设计贯通—逻辑结构设计部分参考书目:数据库系统概论高等教育出版社王珊萨师煊数据库系统教程高等教育出版社施伯乐等数据库设计、应用开发与管理电子工业出版社MichaelV.Mannino著唐常杰等译UML和统一过程-实用面向对象的分析和设计机械工业出版社方贵宾等译UML应用建模实践过程机械工业出版社尤克滨编著逻辑结构设计步骤ER图向关系模型的转换关系模型的优化视图(view)设计ER图向关系模型的转换Entity1:MrelationshipN:MrelationshipIdentifyingrelationsh
2、ipOptional1-MrelationshipGeneralizationHierarchy1-1Relationships基本转化规则basicconversionrules规则一、Eachentitytypebecomesatable(实体转化为表,实体的主码成为表的主码,不包括弱实体,属性转化成列)基本转化规则basicconversionrules规则二、Each1-Mrelationshipbecomesaforeignkeyinthetablecorrespondingtothechildentit
3、y(一对多联系转化为子表中参照父表的外键,如果父表对子表来说是强制mandatory的,则外键不能为NULL)或1-MrelationshipbecomesatablewithaprimarykeyfromM-sideoftherelationship(也可转化成独立的关系,与该联系相连的各实体的码以及联系本身的属性组成关系的属性,关系的码为M端实体的码)【少采用,比较规则五】规则三、EachM-Nrelationshipbecomesanassociativetablewithacombinedprimaryke
4、y.(多对多联系转化成为一张独立的表,其主码由联系两端的实体的主码共同组成)规则四、Eachidentifyingrelationshipaddsacolumntoaprimarykey.(标识依赖在转化时,将父表的主码添加到弱实体中,弱实体的主码包括:1弱实体自己的主码2标识实体【也就是父表】的主码)规则五、Optional1-MRule(可选的一对多联系,所谓“可选”,指“1”端,也就是父表端不强制,最小基数可为0的情况)如:下图表示是一个可选的一对多联系,学生可以住宿舍,也可以不住宿舍(比如有回家住的学生),
5、这里,dorm对student来说是可选的,因此dormNo作为Student表的外码,可以为空(Null)为了避免这种空值,我们将live联系转化成关系表Optional该表的主码是子表(Student实体)的主码该表的外码是两端的实体的主码的组合该表的外码不允许空NULL注意:规则五可以避免NULL,但是多生成了一个表,增加了查询的复杂性,许多应用中,避免额外的表比避免NULL更重要规则六、转化泛化层次结构。RDBMS不直接支持泛化,各CASE工具的实现方法有别规则七、1:1relationship(转化一对一
6、联系)方法一:直接将1:1联系转化成两个外码(可能会产生NULL)方法二:如果联系的某一端实体是可选的(optional),则可以在另一个实体中取消外码,以消除NULL举例:方法一:冗余联系方法二:在PowerDesigner中可通过设置dominant关系来实现CREATETABLEOffice(…PRIMARYKEY(OfficeNo),FOREIGNKEY(EmpNo)REFERENCESEmployee,UNIQUE(EmpNo))逻辑模型的优化规范化分析数据依赖关系,消除部分依赖、传递依赖和多值依赖反规范
7、化涉及到多个关系的查询时,需进行关系的连接运算,产生很高的代价关系模式的分解80/20原则,大关系中,经常被使用的数据只占所有数据的20%,把这20%分解出来,形成独立的子关系水平分解和垂直分解注意保持无损连接性和函数依赖考虑查询某笔贷款的贷款人和担保人等情况在表Loan中存储LenderNo和LenderName是不符合BCNF范式的,但可以减少表Loan和Lender的连接仔细定夺,考虑是否要在Loan表中增加来自Guarantor、Lender和Institution表中的Name如果需要,则反规范化就是一个
8、好方法,因为Guarantor、Lender和Institution表是相对稳定的虽然不符合BCNF范式,如果只查询,不更新,则没有更新异常的问题视图(view)设计定义视图是一个虚拟表,其内容由查询定义同真实的表一样,视图包含一系列带有名称的列和行数据但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图
此文档下载收益归作者所有