应用应用UML进行数据库建模进行数据库建模
介绍
当需要为软件系统系统提供一种可靠,灵活而又高效的对象持久化方法时,当今的设计师和架构师们面临着众多的选择。从技
术的层面上,这个选择往往介于完全面 向对象,对象关系混合,完全关系化和建立在公开或专有文件格式上的常规解决方案
之间(如:XML,OLE的结构化存储)。从提供者的层面 上,Oracle, IBM, Microsoft, POET 和其它的公司提供了相似,
但是彼此间往往不相容的解决方案。
这并不表明它是唯一、最好而又简单的解决方案,但是从实用的角度看,它是最常用的一种类型,却也是最容易被用错的一
种。
我们先快速浏览两个设计领域的模型,并试图把它们连接起来:第一,介绍用UML表达面向对象的类模型;第二,关系数据
库模型。
对每一个领域我们只涉及影响到我们任务的主要功能。然后我们将关注从类模型到数据库模型映射的技术和问题,包括对象持
久性,对象行为,对象和对象标识之间 的关系。我们将总结对UML数据profile的回顾(Rational Software 推荐)。一些面向
对象设计,UML和关系数据库建模的相似性也会被提及。
类模型是UML用来表达软件系统逻辑结构的主要工件。 它用来记录数据需求和模型领域内对象的行为。本文不讨论创建和详
细描述该模型的技术,我们将假设已经存在一个设计好的类模型,它需要映射到关系数据库上。
类模型
类在UML中是一个基本的逻辑实体。它定义了一个结构单元的数据和行为。一个类是一个模板或运行时创建实例和对象的模
型。当开发一个逻辑模型,如UML中 的结构层次,我们将明确地把它们当作类来处理。当面对动态图时,如顺序图和协作
图,我们也要处理类的实例和对象,以及它们运行时的内部动作。数据隐藏和封 装原则是基于作用域效果。类有它的内部数
据元素。访问这些数据元素需要通过类对外的行为或接口。遵循这个原则会生成更易于维护的代码。
行为
行为使用了类定义的操作,在类模型中被记录。操作是可以外部可见的(public),对子类可见的(protected)和隐藏的
(private)。通 过结合隐藏数据和公共访问接口,隐藏或保护数据的操作,类的设计人员可以建立极易维护的结构单元,这
些结构单元是支持而不是阻碍变化的。
关系和特性
关联是两个类之间的一种关系。关系一侧的类知道和在某种程度上使用或操控另一侧的类。这种关联可以是功能上的(为我做
某事)也可以是结构上的(是什么)。 在本文中更多的是侧重结构上的关系。如:一个“Address”类可以关联一
个“Person”类,将这种关系映射到数据空间需要多加注意。