没有合适的资源?快使用搜索试试~ 我知道了~
Enterprise_Architect_UML指南.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 47 浏览量
2022-06-19
13:58:29
上传
评论
收藏 655KB DOCX 举报
温馨提示
试读
64页
Enterprise_Architect_UML指南
资源推荐
资源详情
资源评论
Enterprise Architect UML 指南
http://www.sparxsystems.cn/resources/tutorial/uml-tutorial.html
1. 应用 UML 进行数据库建模
1.1 介绍
当需要为软件系统系统提供一种可靠,灵活而又高效的对象持久化方法时,当今的设
计师和架构师们面临着众多的选择。从技术的层面上,这个选择往往介于完全面向对象,
对象关系混合,完全关系化和建立在公开或专有文件格式上的常规解决方案之间(如:
XML,OLE 的结构化存储)。从提供者的层面上,Oracle, IBM, Microsoft, POET
和其它的公司提供了相似,但是彼此间往往不相容的解决方案。
本文仅论述这些选择中的一种,即在完全关系数据库上层面向对象的类模型进行分层。
这并不表明它是唯一、最好而又简单的解决方案,但是从实用的角度看,它是最常用的一
种类型,却也是最容易被用错的一种。
我们先快速浏览两个设计领域的模型,并试图把它们连接起来:第一,介绍用 UML 表
达面向对象的类模型;第二,关系数据库模型。
对每一个领域我们只涉及影响到我们任务的主要功能。然后我们将关注从类模型到数
据库模型映射的技术和问题,包括对象持久性,对象行为,对象和对象标识之间的关系。
我们将总结对 UML 数据 pro!le 的回顾(Rational Software 推荐)。一些面向对象设计,
UML 和关系数据库建模的相似性也会被提及。
类模型是 UML 用来表达软件系统逻辑结构的主要工件。 它用来记录数据需求和模型
领域内对象的行为。本文不讨论创建和详细描述该模型的技术,我们将假设已经存在一个
设计好的类模型,它需要映射到关系数据库上。
类模型
类在 UML 中是一个基本的逻辑实体。它定义了一个结构单元的数据和行为。一个类是
一个模板或运行时创建实例和对象的模型。当开发一个逻辑模型,如 UML 中的结构层次,
我们将明确地把它们当作类来处理。当面对动态图时,如顺序图和协作图,我们也要处理
类的实例和对象,以及它们运行时的内部动作。数据隐藏和封装原则是基于作用域效果。
类有它的内部数据元素。访问这些数据元素需要通过类对外的行为或接口。遵循这个原则
会生成更易于维护的代码。
行为
行为使用了类定义的操作,在类模型中被记录。操作是可以外部可见的(public),
对子类可见的(protected)和隐藏的(private)。通过结合隐藏数据和公共访问接口,
隐藏或保护数据的操作,类的设计人员可以建立极易维护的结构单元,这些结构单元是支
持而不是阻碍变化的。
关系和特性
关联是两个类之间的一种关系。关系一侧的类知道和在某种程度上使用或操控另一侧
的类。这种关联可以是功能上的(为我做某事)也可以是结构上的(是什么)。在本文中
更多的是侧重结构上的关系。如:一个“Address”类可以关联一个“Person”类,将这种关
系映射到数据空间需要多加注意。
聚合是关联的一种形式,表示一个类多个对象的集合在另一个类中。复合是一种更强
的聚合形式,说明一个对象实际上由其它对象构成。对于关联关系来说,它意味着一个复
杂的类属性,将该属性映射到关系模型时需要更详细的考虑。当一个类表示为生成许多对
象实例的模板或模型时,对象需要在运行时有识别自己的方式,这样被关联对象可以对正
确的对象实例施加作用。在编程语言中,如 C++,对象指针可能会传递,并使所指对象
可以访问一个独一无二的对象实例。通常尽管一个对象会被销毁,但是在需要时,又象上
一次有效实例期间那样被重建。所以,这些对象需要一个存储机制来保留它们的内部状态
和关联,并在需要时恢复所需状态。
继承给类模型提供一种方式,该方式提取通用行为到泛化的类中,使这个泛化类稍后
可以做为在一般主题上诸多变异的原形。继承是一种管理重用和复杂性程度的方式。如我
们将看到的,关系模型并没有与继承关系的直接对应项,这给数据模型建立者建立一个从
对象模型到关系框架造成了困难。从一个运行时的对象到另外一个对象的导航是建立在完
全引用的基础之上。一个对象有多种形式的连接(指针或唯一的对象标识),用这些连接
可以定位和重建所需的对象。
关系模型
关系数据模型已经使用多年,提供的性能和灵活性一直行之有效。它本质上是基于集
合的(set-based),并且用‘表’做为它的基本单元,表由一个或多个‘列’组成,每一个列
包含一个数据元素。
表和列:一个关系表是一个或多个列的集合,每个列在表结构中有一个唯一名称,并
且被定义成一个特定基本数据类型,如:数字、文本、二元数据。表定义是一个模板,表
的“行”从这个模板中被创建,行可能做为一个表实例的实例。关系模型仅仅提供一个公共
数据访问的模型。所有数据向外对任何一个过程开放,以便于被更新,查询和操控。信息
隐蔽(information hiding)是未知的。
行为
与表相关联的行为通常是基于所应用实体的业务或逻辑规则。约束以多个形式应用到
“列”,如:独特性需求、对应其它表和列的关系完整性约束,允许的值和数据类型。
触发器提供了关联到一个实体的许多附加行为。通常在数据被插入、删除和更新前后,
强制执行数据的完整性检查。数据库存储过程提供了一种通过专有语言扩展来延伸数据库
功能的方式,这些扩展通常用来构造功能性单元(脚本)。这些功能不会直接映射到这些
实体,也不会与它们有逻辑关系。通过关系数据集的导航是基于“行”遍历和表连接实现。
SQL 是用来从表集选择“行”和放置实例的一种主要的语言。
关系和识别
表的主键为识别行提供一个特定值。这里有两种我们关注的主键:首先是意义键
(meaning key),它由数据列构成,这些数据列在业务领域有意义。其次是一个抽象的
唯一标识符,如计数器值,它没有商业意义,但是可以唯一地标识一个行。我们将先讨论
抽象唯一标识符,然后再阐述意义键。一个表可以包含映射到另一个表主键的“列”。表间
的关系定义了一个外键,说明了在这两个表之间的结构关系或关联。
小节
从以上的概述,我们可以看出对象模型是建立在离散实体基础上,这些实体既有状态
(属性和数据),也有行为,一般仅通过类的公共接口来访问封装数据。关系模型同等地
显露所有数据,有限支持利用触发器从行为到数据元素的关联。依靠使用唯一对象标识符
可以从一个对象移动到另一个对象,这使得我们可以在对象模型中导航,并建立对象关系
(类似于网络数据模型)。在关系模型中,通过使用检索标准,SQL 合并和过滤结果集,
你可以查找找所需的行。标识符在对象模型中既可以是实时引用,也可以是持久的唯一标
识符(称作 OID)。在关系领域里,主键定义了数据集在整个数据空间中的唯一性。
对象模型中有丰富的关系集合:继承,聚合,关联,复合,依赖,以及其它。在关系
模型中,可以仅使用外键来指明一种关系。我们已经对感兴趣的两个领域进行了介绍并比
较了每一个领域的几个重要功能,然后将简单了解 UML 中关系数据模型的标注。
1.2 UML 数据模型 Prole(特性描述)
数据模型 Pro!le 是 Enterprise Architect 的 UML 扩展来支持关系数据库建模。它包
括一些定制扩展,如:表,数据库图表,表键,触发器和约束。它是一种在 UML 中对关系
数据库建模的技术。
表和列 表在 UML 数据 Pro!le 中是带《Table》构造型的类,它在右上角显示一个表
的符号。数据库中的列用《Table》类的属性来建模。
例如:上面图型显示与客户表关联的属性。在此示例中,对象 ID 被定义为表的主键,
还有两个列:“Name”和“Address”。注意上图例子中列的数据类型是按照原 DBMS 的数
据类型定义的。
行为 到目前为止,我们仅定义了表的逻辑(静态)结构。此外,我们将描述与列关联
的行为,包括:索引,键,触发器,过程等等。行为表示为带构造型的操作。
下图显示我们讨论的表,它有一个主键约束和索引,均被定义为带构造型的操作。
注 意 : “ OID” 列 上 的 PK 标 签 定 义 了 逻 辑 主 键 , 而 构 造 型 操 作 “ «PK»
idx_customer00”定义了与主键实现相关联的约束和行为(即主键的行为)。
对上例进行增加,我们现在可以定义附加行为,如:触发器,约束,存储过程。见下
图:
剩余63页未读,继续阅读
资源评论
老帽爬新坡
- 粉丝: 83
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenshot_2024-05-28-11-40-58-177_com.tencent.mm.jpg
- 基于Dart的Flutter小提琴调音器APP设计源码 - violinhelper
- 基于JavaScript和CSS的随寻订购网页设计源码 - web-order
- 基于MATLAB的声纹识别系统设计源码 - VoiceprintRecognition
- 基于Java的微服务插件集合设计源码 - wsy-plugins
- 基于Vue和微信小程序的监理日志系统设计源码 - supervisionLog
- 基于Java和LCN分布式事务框架的设计源码 - tx-lcn
- 基于Java和JavaScript的茶叶评级管理系统设计源码 - tea
- IMG_5680.JPG
- IMG_0437.jpg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功