uml与数据库设计.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
uml与数据库设计

* 第12章 UML与数据库设计 在过去的几十年中,关系数据库模型征服了数据库软件市场,关系数据库技术为数据库行业作出了巨大贡献。尽管未来不再属于关系数据库模型,但是大型系统采用对象关系数据库技术或者对象数据库技术还需要若干年时间,还会有许多新的应用程序采用关系数据库技术。 随着面向对象技术的发展,许多建模人员都意识到了实体-关系模型的局限性;UML不仅可以完成实体-关系图可以做的所有建模工作,而且可以描述其不能表示的关系。本章将介绍UML模型到关系数据库的映射问题,主要涉及两个方面:模型结构的映射和模型功能的映射。 * 本章学习要点: 理解 UML模型与数据库设计之间的关系 将UML模型中的类映射为数据库表 UML模型中关联关系的转换 进行关系约束的验证 了解如何用SQL语句实现数据库功能 将UML模型映射为关系数据库 * 12.1 数据库结构 从数据库技术诞生到现在,经历了多种结构。从早期的网状数据库、层次数据库,一直到现在比较流行的关系型数据和面向对象的数据库。 在理想情况下,组织对象数据库的最好方式是直接存储对象及其属性、行为和关联。这种数据库称为面向对象数据库。面向对象型数据库管理系统(ODBMS)在理论是可用的,但还存在相对有限的有效性等问题。这就影响了这种系统的广泛应用。这里还有一个主要问题,传统型的数据库其理论已经相当成熟,其性能非常可靠并且已经被广泛应用,这导致了人们不愿意用他们非常有价值的资源来冒险。 * 12.2 数据库接口 数据库接口将实现从业务层对象中获取数据,保存到数据库。该接口必须调用DBMS所提供的性能来对对象及其关联进行操作,这些操作是独立于数据库结构的。 对于对象程及其关联而言,一个对象需要有四种操作,关联需要两种操作,这些操作是独立于数据库的组织。 12.3 数据库结构转换 在设计关系型数据库时,人们通常使用实体-关系模型来描述数据库的概念模型。与实体-关系模型相比,UML的类图模型具有更强的表达能力。本节将介绍从UML类图模型到关系数据库的结构转换问题。 * 12.3.1 类到表的转换 在将UML模型中的类转换(也可称为映射)为关系数据库中的表时,类中的属性可以映射为数据库表中的0个或者多个属性列,但并非类中所有的属性都需要映射。如果类中的某个属性本身又是一个对象,则应将其映射为表中的若干列。除此之外,也可将若干个属性映射为表中的一个属性列。 通常情况下,应当为数据库中的每个表都定义一个主键,而将所有的外键都设计为对主键的引用。在将UML模型中的类映射为关系数据库中的表时,可使用如下所示的方法为表定义主键。 * 12.3.2 关联关系的转换 在将UML模型向关系数据库转换时,不仅需要转换模型中的类,还需要转换类与类之间的关系,例如,关联关系、泛化关系等。聚合关系和组合关系是特殊的关联,本节将介绍类与类之间关联关系的转换,也包括聚合和组合关系的转换。 关系数据库中的关系是通过表的外部键来维护的,通过外部键,一个表中的记录可以与另一个表中的记录关联起来。 * 12.4 完整性与约束验证 UML模型中类与类之间的关系是对现实世界商业规则的反映,在将类图模型映射为关系数据库时,应当定义数据库中数据上的约束规则。如果使用对象标识符的方法映射数据库表的主键,在更新数据库时就不会出现完整性问题,但是对对象之间的交互和满足商业规则来说,进行约束验证是有意义的。本节将介绍如何进行关系约束的验证。 * 12.4.1 父表的约束 对于类图模型中的关联关系来说,如果比较松散,则通常不需要进行映射,也就是说,关联的双方只在方法上存在交互,而不必保存对方的引用;但是如果双方的数据存在耦合关系,则通常需要进行映射。 Coach和Footballer之间具有强制对可选约束,该图演示了如何将它们映射成数据库表。 * 12.4.2 子表的约束 有时,要删除或者修改子表中的记录,必须在该记录有兄弟存在的情况下才能进行。在可选对强制、强制对强制约束中,就不能删除或者更新子表中的最后一个记录。在这种情况下,可以及时更新父表记录或者禁止这种操作。通过向数据库中加入触发器可以实现子表约束,但是更好的办法是在业务层中实现对子表的约束。 * 12.5 关于存储过程和触发器 存储过程是需要在数据库服务器端执行的函数/过程。在执行存储过程时,通常都会执行一些SQL语句,最终返回数据处理的结果,或者出错信息。总之,存储过程是关系数据库中的一个功能很强大的工具。 在实现UML类模型到关系数据库的转换时,如果没有持久层并且出现如下两种情况,就应该使用存储过程: 需要快速建立一个粗略的、不久后将抛弃的

文档评论(0)

fengruiling + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档