Chapter-13-UML和数据库设计UML-and-Database-Design

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Chapter13UMLandDatabaseDesignUML和数据库设计可视化建模与UML2Chapter13UMLandDatabaseDesign1.数据库结构2.数据库设计5.关联的映射4.类的映射6.完整性约束(聚合、组合)7.铁路系统UML模型到数据库的转换实例3.数据库结构的映射可视化建模与UML313.1数据库结构数据库结构经历了各个阶段:网状数据库层次数据库关系数据库面向对象数据库由于面向对象数据库技术尚未成熟,目前使用的最普遍的仍是关系模型数据库可视化建模与UML413.2数据库设计传统的数据库设计是基于E-R模型,其设计方法是自底向上的,即先设计数据库,然后根据数据库设计对象及方法。需要设计者对E-R映射比较熟练,否则以后的可扩展性可能不好,或者虽然能扩展,但需要对结构做比较大的改动。可视化建模与UML5传统的数据库设计的优缺点优点:设计时可以把逻辑上的东西映射成表,以后数据库比较容易维护。缺点系统的可扩展性基本上在数据库设计时就已决定由于开发模型的不同,不利于开发人员之间的信息交流和共享可视化建模与UML6使用UML模型设计数据库UML对象模型在本质上是一个扩展的实体-关系(ER)模型。OO模型的主要优势在于编程和数据库的相同的模型工作,降低了设计的盲目性,同时有利于系统的扩展和测试。把数据库的建模与设计过程统一到软件的分析与设计过程中,提高了开发的效率。便于开发人员之间的交流和需求分析。可视化建模与UML713.3数据库结构的映射实现对象模型的第一步是处理标识。数据库中标识包括主键,外键,候选键。定义主键有两种基本的方法:1)基于存在的标识。为每个类表加一个对象标识符属性,并将它设为主键。每个关联表的主键包括一个或更多的相关类的标识符。基于存在的标识符有作为单独属性的优势,占位小且大小相同。唯一的劣势是基于存在的标识符在维护时没有固有的意义。2)基于值的标识。一些真实世界的属性的组合确定了每个对象,把真实的属性作为主键对于用户有固有的意义,容易进行调试和数据库维护。在另一面,基于值的主键很难改变。一个主键的改变需要传播到许多外键。一些对象没有自然的真实世界里的标识符。超过30个类的RDBMS应用里使用基于存在的标识。基于存在和基于值的标识都是所有RDBMS应用的可行选项。可视化建模与UML813.4类到表的映射在将UML模型中的类转换(也可称为映射)为关系数据库中的表时,类中的属性可以映射为数据库表中的0个或者多个属性列,但并非类中所有的属性都需要映射。如果类中的某个属性本身又是一个对象,则应将其映射为表中的若干列。除此之外,也可将若干个属性映射为表中的一个属性列。通常情况下,应当为数据库中的每个表都定义一个主键,而将所有的外键都设计为对主键的引用。可视化建模与UML913.4类到表的映射类图到E-R图的映射主要有类的属性映射和类之间关系的映射。类中属性的映射就是把属性映射成关系数据库中的0或多列(一般映射为1列)。对于一些在类中不能持久的属性,映射时可省去。对于那些本身就可以作为对象的属性,可映射为数据库中的几列,例如两个类,第一个类中有个属性指向第二个类,那么这个属性映射时就可以对应几个列(对应第二个类中的属性)。可视化建模与UML1013.4.1关系数据库中实现继承关系的不同方法将所有的类都映射为表将有属性的类都映射为表子类映射的表中包含超类的属性超类映射的表中包含子类的属性可视化建模与UML11将所有的类都映射为表父类和子类都分别映射为表,共享一个主键。可以最大程度的适合面向对象概念,但容易造成表的数量过多,降低运行速度。可视化建模与UML12将有属性的类都映射为表只把有属性的类映射为表可以适当减少表的数量,其他同方法1可视化建模与UML13子类映射的表中包含超类的属性超类不映射为表,只将子类映射为数据库表,同时包含超类中的属性。可减少表的数量,有利于报表的生成,但如果超类做出修改,则超类映射的每个表都需做相应修改。可视化建模与UML14超类映射的表中包含子类的属性只将超类映射为表,子类不做映射。大大减少表的数量,有利于报表的生成增加了类层次键的耦合可视化建模与UML1513.4.1关系数据库中实现继承关系的不同方法以上方法各有优缺点,应根据具体情况选择使用。可视化建模与UML1613.5关联关系的映射以上方法各有优缺点,应根据具体情况选择使用。可视化建模与UML1713.5关联关系的映射关系数据库中的关系是通过表的外键来维护的,通过外键,表与表的记录才可以关联起来。多对多关联的映射1对多关联的映射0或1对1关联的映射1对1关联的映射可视化建模与UML18多对多关联的映射类与类之间的多对多关系一般需映射成3个表,每个类映射到一个表,类与类之间的关系也映射到一个表(关联表),并将两个类的键映射为关联表中的属性。可视化建模与UML191对多关联的映射(1)将外部键放在“多”的一边,角色名成为外键属性名的一部分。可视化建模与UML201对多关联的映射(2)将关联映射为关联表(同多对多的映射)可视化建模与UML210或1对1关联的映射将两个类映射成两个表,外键放在“0或1”的表内。可视化建模与UML221对1关联的映射将两个类映射为两个表,外键放在任意一个表内即可不要两个表中都加入外键,这样不能改善数据库性能,同时造成数据冗余。可视化建模与UML2313.6完整性约束UML模型中类与类之间的关系是对现实世界商业规则的反映,在将类图模型映射为关系数据库时,应当定义数据库中数据上的约束规则。如果使用对象标识符的方法映射数据库表的主键,在更新数据库时就不会出现完整性问题,但是对对象之间的交互和满足商业规则来说,进行约束验证是有意义的可视化建模与UML24强制对可选的约束及映射Coach和Footballer之间具有强制对可选约束,该图演示了如何将它们映射成数据库表。CoachFootballer10..*CoachtableFootballertablecoachID...footballID...coachID(referencesCoach)可视化建模与UML25可选对可选约束及其映射Patiend表中doctorID作为FK,可以为空。可视化建模与UML26聚合关系的映射本例类似可选对强制的约束可视化建模与UML27组合关系的映射Order和OrderItem为强制对强制约束可视化建模与UML2813.7铁路系统UML模型到数据库模型的转换nameRailwayStationnameEmployeetrainNodateTraintrainRatingLocomanTrainAttendant10..*0..*0..*drivercodriver10..*Schedule0..*0..*AttendantAssignment

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功