ORACLE8 UML 对象建模设计12.pdf

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

下载 第12章 循 环 结 构 类形成闭环的情况是很常见的。当经过一系列的关系后回到初始类时就存在一个循环结 构。必须仔细考察循环结构以分清这些结构代表了什么含义,以及如何对它们形式化地建模。 最简单的循环关系是递归结构,即一个类与自己挂接在一起。循环关系这种特殊类型的规范 在第1 0章已有更详细的讨论。在这里将讨论几种常见的循环结构。 有些建模者努力避免采用循环结构。 I D E F建模认为循环结构是非法的。然而,还是不能 轻易忽略循环结构。实际上,在数据模型中不采用循环结构排除了很多为与数据相关的业务 规则建模的可能。 因为本书提倡一般方法,以及第 1 6章中更完整的介绍,因而本书中有很多循环结构的例 子。本章将讨论循环结构带来的问题以及如何有效地处理这些问题。 12.1 循环结构举例 图1 2 - 1展示了大学或学院系里有关课程设置的经典例子。指定日期和时间的特定课程分配 给特定的教授(P r o f e s s o r ),该教授被一个或者多个系(D e p a r t m e n t )聘用。该模型本身没有任 何错误,但需要注意它隐含的业务规则,即该模型结构隐含地认为任何一个教授都可以为任何 系的任何课程授课。这是现实情况吗?该业务规则是否适合源于模型的循环结构?注意 D e p a r t m e n t和O ff e r i n g之间为什么存在两个依赖—一个通过C o u r s e ,另一个通过E m p l o y m e n t 。 这种结构上的冗余将导致我们怀疑D e p a r t m e n t和Course Off e r i n g之间关系的本质。像前面提到的 一样,模型隐含地认为这两个关系是完全独立的,因此,任何一个教授都可以教授任何一门课。 图12-1 简单的循环结构 为了实现更加严格的业务规则,如“教授只能教授目前聘用他的系里的课程”,这就需要 书写一个触发器。 164计计第三部分 基 本 建 模 下载 图12-2 教授/课程模型 这种触发器可以放在 Course Of f e r i n g 表中,以实现该业务规则。在 O r a c l e 中, 有很多实现这种业务规则的方法。如果把 模型改成图 1 2 - 2 中的样子,则D e p a r t m e n t 表中的主码D e p t N o将通过两条路径进入表 Course Of f e r i n g 。这就要增加一个简单的 约束,保证两个系号相等。 该模型也可以通过在两个约束中共享 Course Of f e r i n g表中的系号(列)实现。 然而,这样就不能通过传统的参照完整性 而需用触发器来实现业务规则了。 一旦选择了循环结构来使自己发现问 题,最终结果可能是改变模型。大学可能 会采用这样的业务规则,教授要么只在本 系授课,要么经过某种特殊的许可在外系 授课。如果真的采用这种业务规则,则把 模型改成图 1 2 - 3的样子。 采用这种结构,教授要么通过他在系 里的聘用关系显式地安排某一门课程,要 么通过某个教学许可安排某门课程。这里 还是需要触发器来解决循环结构的问题 (以保证教授某门课程的授权是正确的)。 如果授权由系里进行,必须保证是正确的 系进行的授权。采用这个结构确实使有效 地表达业务规则成为了可能。实际上, U M L 就有表达这种复杂约束的语法,大部 图12-3 修改后的教授/课程模型 第12章 循 环 结 构计计165 下载 分是通过用点线连接到类上的文本框表示的。当前还没有哪个产品能真正把这些约束生成代 码,而且将来大概也不可能有产品这样做。如果有 U M L产品支持这种语法,那么在数据模型 中包括这种约束是有用的。否则,数据模型只能表示与数据相关的业务规则的一个子集。 12.2 使用对象I D 对象I D提供了比外码更加清晰的实现,如图 1 2 - 4所示。 该模型中有General Agents和In

文档评论(0)

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

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

1亿VIP精品文档

相关文档