UML类图-关系数据库之间的映射.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UML类图与关系数据库之间的映射策略 摘要:UML是目前面向对象程序设计中的一种标准的建模技术。在关系数据库系统的设计过程中,我们可先利用UML建立商业模型,然后将其映射成表。本文主要讨论如何将UML类图中的类映射成表的策略。 关键词:UML 类 表 关系 建模 映射 ????? 概论 在关系数据库设计中,用来创建数据库逻辑模型的标准方法是使用实体关系模型(ER模型)。ER模型的中心思想是:可以仅通过实体和它们之间的关系合理地体现一个组织的数据模型。但这样做似乎对描述一个组织的信息过于简单化,并且词汇量也远远不足。所以,迫切需要使用更加灵活、健壮的模型来代替ER模型。 标准建模语言UML是由世界著名的面向对象技术专家发起的,在综合了著名的Booch方法、OMT方法和OOSE方法的基础上而形成的一种建模技术,它通过用例图、类图、交互图、活动图等模型来描述复杂系统的全貌及其相关部件之间的联系。UML可以完成ER模型的所有建模工作,而且可以描述ER模型所不能表示的关系。 在UML中,类图主要用于描述系统中各种类及其对象之间的静态结构。在关系数据库领域中,类与表相对应。本文主要讨论将UML类图中的类及其对象映射成关系型数据库中的表的策略。 二.UML类图中的类映射成表的策略 UML中的类图主要由类及其关系组成,而类之间的关系又可以细分为: (1)泛化:在UML类图中,如果子类型的接口包括超类型的接口中的每个元素。则超类与子类之间构成泛化关系。泛化通常可以用继承或授权的方式实现。 (2)关联:在UML类图中,关联表示类的实例之间存在的某种关系。它通常可以有1对1、1对多和多对多等情形。 (3)聚集:在UML类图中,聚集描述了部分与整体之间的关系。 (4)组成:在UML类图中,组成由聚集演变而成,它表示一个部分对象仅属于一个整体,并且部分对象通常与整体对象共存亡。 下面结合例子,分别讨论在将类映射成表的过程中这些关系的实现技术。 假设,有一个电脑公司专门从事软件开发,其项目主要由项目开发部门承担,它们之间构成多对多的关联(即一个项目可由多个部门承担,而一个部门又可以承担多个项目的开发工作);项目开发部门由经理及一般职员组成,项目开发部门和组成人员之间构成聚集关系,而人(抽象类)又可以进一步和一般职员及经理两个子类之间构成继承关系;每个项目具有一定的属性,它们之间构成组成关系。 综上所述,其主要关系的UML类图如图1所示。 项目开发部门部门名称 项目开发部门 部门名称 项目 项目 开始时间 结束时间 * * 经理职位补贴? 经理 职位补贴 ? ? 人Abstract姓名 人Abstract 姓名 ? 项目属性 规模属性 ? ? ? ? ? 职员工作类别 职员 工作类别 ? 图1 1.将类图中的属性类型映射成表的域 域的使用提高了设计的一致性,且优化了应用的移植性。简单的域是非常容易实现的,在映射时仅需替换相对应的数据类型和数据尺寸。但要注意:有时可能要求在域的约束中加入SQL的Check串(如限定域的取值范围等)。 2.将类的属性映射成表的字段 一般地,可将类的属性直接映射成表的一个字段,但要注意以下两种特殊情况: (1)并不是类中的所有属性均是永久的。例如,发票中的“合计”属性可由计算所得而不需保存在数据库中,此时,该类属性(称为派生属性)映射成个0个字段。 (2)一般地,类中的属性是单值的,但如果在类中存在多值属性,则该属性映射成多个字段。 3.将类直接或间接地映射成表。 将UML类图中的类映射成表时,可针对类间的不同关系,采用下面介绍的各种策略。 首先,在关系数据库中,一个关键问题是表主键的唯一性策略的选取。适当的方案能优化继承、组成等类之间的关系的实现。为此,可以在处理数据库关系时嵌入对象标识符(OID)的概念,即采用对象标识符OID(对象唯一的标识符)作为相应的数据库中所有表的主键,从而简化了关系数据库的主键方案,使数据库发生更新时,不会出现完整性问题,并且还可以避免在数据库操作时的诸多限制。但要注意的是,OID不应包含有商业内涵(这一点可能和传统的关系理论相悖),因为任何具有商业意义的字段不在控制范围之内,从而设计者面临值和规划改变的危险。 (1)继承的实现 策略一:将整个类层次映射为单个数据库表。 类层次中的所有类映射为单个的数据库表,表中保存所有类(基类、子类)的属性。例如,图1中人、职员及经理之间的关系的实现如图2所示。

文档评论(0)

133****6472 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档