您所在的位置: 首页 > 开发 > 架构&设计 >

利用UML进行实体关系建模(3)

http://developer.51cto.com  2008-07-25 16:15  Davor Gornik  IBM  我要评论(0)
  • 摘要:软件行业中最常被误解的一个术语实际上是我们非常熟悉的一个:实体关系(ER)。这是因为我们经常缺少一种能被开发团队的所有成员理解的共同定义。我们假定团队的每个成员都对与 ER 和 ER 建模相关的方法学、语法和机制(mechanics)有着同样清楚的理解。
  • 标签:UML  建模  实体关系建模  ER  ER 方法学

依赖关系

依赖关系指的如果在一个关系中指定的其中一个实体不存在,那么另一个实体也没有存在的意义。当依赖型实体(子类型)的各个实体依赖于超类型中对应父实体存在时,则一个实体类型依赖于另一个实体类型。

必须通过显式地定义一个下限不为 0 的基数,或者定义个一个不为 0 的固定基数,来指定一个强制的依赖关系。实体类型结婚证就是两个实体间依赖关系的一个例子,其中结婚证依赖于实体类型人。关系是结婚,并且结婚证和两个人之间具有固定的依赖关系。

比如,实体结婚证 352647003 与实体 Joe Ward 和 Melinda Bell 具有固定的依赖关系。这意味着如果 Melinda Bell 或 Joe Ward 脱离该关系,那么至少从数据的角度来说,结婚证352647003就已经失效。

建立在实体类型人之上的依赖性实体类型结婚证

图8   建立在实体类型人之上的依赖性实体类型结婚证
 特化和泛化

核心 ER 模型只定义了实体类型间的基本关系。虽然利用基本的实体和关系就可以很容易地表示商业机构中的大多数简单数据结构,但是技术应用要求基于实体类型间的相似点和不同点的更复杂的结构。

特化和泛化的目的在于重用与实体类型关联的属性和行为。

特化用于定义代表一个大型实体类型的一个特定部分的实体类型。特化后的实体类型从父实体类型继承了结构和行为,比如业务规则。然而,虽然特化后的实体类型扩展了父结构或类型,但是这决不是说它小于父类型。

比如,Employee 是实体类型 Person 的一个特化,它需要实体类型 Person 的所有属性和关系。另外还有一种叫做 Customer 的实体类型,它也是实体类型 Person 的一个特化。这两种实体类型都具有 Person 的属性,它们被看作 Employee 或 Customer 的属性。因此在我们看 Customer 时,看到的是在实体类型 Person 和实体类型 Customer 中指定的所有属性。

泛化是正好相反的工作流。泛化实体类型(或者父类型)代表所有子类型的共同结构和行为,并且包含了来自子实体类型的所有共同属性。子实体类型具有父属性的所有内容,并且还拥有自己的属性。

泛化过程找出共同结构并在父实体类型中抽象出来。父实体类型通常在比较实体类型和简化模型时的重构阶段被找到。

虽然泛化仅利用面向对象或者对象关系数据库就可以直接实现,但是泛化也可以通过使用外键的任何关系数据库直接实现。

实体类型

图9  Customer 和Employee 被泛化为人实体类型

分类(Categorization)

特化是在实体上完成的,而分类则定义了关系类型上的约束条件。大多数情况下,分类是排他性的,这意味着根据实体状态的不同,一个实体要么参与关系 A 要么参与关系 B。该状态可能是一个属性值(另一种关系的存在),或是某些外部状态。

分类不改变实体的属性。它需要数据访问和操纵,来考虑分类中指定的约束条件。

交通工具就是分类的一个好例子。根据交通工具种类的不同,我们需要构建不同的关系。对于卡车,我们需要货物信息,而对于公共汽车,我们需要乘客姓名。这些信息将被用于不同的关系中,以便为这些关系提供有意义的上下文。

根据范畴的不同,卡车和公共汽车中的分类与实体类型

图10  卡车和公共汽车中的分类与实体类型 Cargo 和 Person发生关系

ER 方法学的表示法

目前,ER 建模中使用了数种表示法,包括陈氏 ER、Barker ER Information Engineering (IE)和 IDEF1X,其中大部分还包含关系表示法。

对象角色建模(ORM)表示法也是 ER 方法学的一员。它能表达非常精确和完整的业务规则,并且可以用图形阐述约束条件。不幸的是,这种详细程度需要具有丰富细节的大量图表。与 ORM 相关的问题是我们是否需要 ER 模型级的表示法精确度。ORM 表示法还很复杂,并且与其他表示法完全不同,因而那些没有使用 ORM 的项目组成员很难理解它。

UML 是一种表示法语言,最初用于软件设计,目前软件设计已经扩展到业务和数据库设计。UML 包括从分析到实施再到部署指定任何事项所必需的元素和图表。通过使用几种图表和数十种元素,UML 还能表达不同程度的系统抽象。这是一项非常独特的功能。但是,我们不需要知道 UML 的所有细节或者成功利用 UML 进行 ER 建模所需的所有视图和表示。

为了更好理解 UML 在 ER 方法学中扮演的角色,我们将描述 UML 如何处理前面已经提到过的 ER 建模的核心元素。


共4页: 上一页 [1] [2] 3 [4] 下一页
【内容导航】
 第 1 页:实体关系建模  第 2 页:ER 建模中的简单约束
 第 3 页:依赖关系、特化和泛化  第 4 页:UML 中的实体类型和关系类型
走向银光 —— 一步一步学Silverlight2
Hyper-V 虚拟化技术专题
深入SQL Server 2008
WebSphere 实现SOA的利器
Windows Home Server 家用服务器专题
 
 验证码: (点击刷新验证码)   匿名发表
  • C#图解教程

  • 作者:苏林,朱晔
  • 本书是一本广受赞誉的C#教程。它以图文并茂的形式,用朴实简洁的文字,并辅之以大量表格和代码示例,精炼而全面地阐述了最新版C..
Copyright©2005-2008 51CTO.COM 版权所有