UML与数据库设计.pptVIP

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UML与数据库设计 一、关系数据库的结构 在关系数据库中,关系就是一张二维表格,表格的行代表了现实世界中的事物和概念(对象),列表示这些事物或概念的属性。表中事物之间的关联由附加列或附加表来表示。 二、类图到数据库的转换 1、类到表的转换 (1)转换原则 在将UML模型中的类转换(映射)为关系数据库中的表时,类中属性可以映射为数据库表中的0个或多个属性列(并非类中所有属性都需要映射)。如果类中的某个属性本身又是一个对象,则应将其映射为表中的若干列。当然也可将类中若干个属性映射为表中的一个属性列。 通常情况下,应当为数据库中的每个表都定义一个主键,而将所有的外键都设计为对主键的引用。 主键定义方法:一是将对象标识符映射为表的主键(在表中添加一个对象标识列,并定义为主键);二是将类的某属性映射为表的主键。 (2)转换方法(包括继承关系的处理) 方法一:将所有类都映射为表(类的属性映射为表的属性列)。此时,一般类和特殊类都映射为表,它们共享一个主键。 方法三:特殊类映射的表中包含一般类的属性。只将特殊类映射为表,一般类并不映射为表。在特殊类映射而来的表中,属性列既有从特殊类属性映射而来的,也有从一般类继承的属性映射而来的。 2、关联关系的转换 在UML中,聚合关系、组合关系被认为是特殊的关联关系。 (1)多对多关联关系的映射 要映射多对多关联关系,通常使用关联表。关联表是独立的表,它可以维护若干个表之间的关联。通常情况下,将参与关联关系的表的键映射为关联表中的属性。一般将关联表所关联的两个表的名字的组合作为关联表的名字,或是将关联表所实现的关联的名字作为关联表的名字。 (2)一对多关联关系的映射 在映射一对多关联关系时,有两种方法:一是将外键放置在“多”的一边,而将角色名作为外键属性名的一部分;二是将一对多关联映射为关联表。 (3)一对一关联关系的映射 在映射一对一关联关系时,则可将外键放置在任意一边。 注意事项: ---不能将多个类与相应的关联合并成一张数据库表,这样违背了关系数据库的第三范式()。 ---实现一对一关联关系时不能将外键放在两个数据库表中。 三、完整性与约束验证 对于类图模型的关联关系来说,如果比较松散(关联的双方只在方法上存在交互,而不必保存对方的引用),则通常不需要进行映射。如果双方的数据存在耦合关系,则通常需要进行映射。 UML模型中类与类之间的关系是对现实世界商业规则的反映,在将类图模型映射为关系数据库时,应当定义数据库中数据上的约束规则。 1、父表的约束 (1)强制对可选约束 父表上操作的约束主要有: --插入操作:由于强制对可选约束的父亲可以没有子女,故父表中的记录可以不受限制地添加到表中。 --修改键值操作:要修改父表的键值,必须首先修改子表中其所有子女的对应值,通常采用如下的步骤: (1)向父表中插入新记录,更新子表中原对应记录的外部键,然后删除父表中的原记录; (2)使用级联更新方法更新数据库。 --删除操作:要删除父表记录,必须首先删除或者重新分配其所有子女。在Coach-Footballer关系中,所有的footballer都可以重新分配,可采用如下步骤: (1)首先删除子记录,再删除父记录; (2)先修改子记录的外键,再删除父记录; (3)采用级联删除方法更新数据库。 (2)可选对可选约束 可选对可选约束的关联及其映射的数据库表如上图所示,其中Patient表中的doctorID为外键,并且该外键的值可以为空。此时, Doctor表和Patient表中的记录可根据需要进行修改,处理方法同下面的聚合关系的处理方法相同。 (3)可选对强制约束(聚合关系) 父表上操作的约束主要有: --插入操作:在可选对强制约束中,必须在至少有一个子女被加入或至少已存在一个合法子女的情况下,父亲才可以加入。具体采用如下的步骤: (1)首先向父表中添加记录,再修改子表中的外键; (2)以无序的形式同时加入父表和子表记录,然后再修改子表的外键。 --修改键值操作:执行这种操作的前提是,必须至少有一个子女被创建或者至少已经有一个子女存在,具体采用如下的步骤: (1)在修改父表键值的同时将子表中的外键置空; (2)将子表按照从父亲到儿子再到孙子的次序进行级联修改。 --删除操作:通常情况下,不使用级联删除子表的方法删除父表记录,而是将子表的外键置空。 (4)组合关系(强制对强制约束) 2、子表的约束 * 收集整理 方法二:将有属性的类映射为表 方

文档评论(0)

max + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档