本书结合实际案例,详细介绍了UML在数据库设计过程的应用。\r\n\r\n 全书共9章。从需求分析、业务建模、需求定义、分析和初步设计到构建模型、物理实现,内容由浅入深,循序渐进。最后,作者对案例研究工程中的UML的应用进行了分析和回顾。附录部分是一个完整案例。\r\n\r\n 本书适合UML的应用研究人员和数据库系统设计人员阅读,对于学习数据库设计与实现的学生,也有很好的参考价值。\r\n
\r\n
第1章 概述 1 \r\n\r\n 1.1 为什么要阅读本书 1 \r\n\r\n 1.1.1 系统开发是一个团队活动 1 \r\n\r\n 1.1.2 统一建模语言 1 \r\n\r\n 1.2 谁应该阅读本书 2 \r\n\r\n 1.3 怎样阅读本书 2 \r\n\r\n 1.3.1 章节的组织 2 \r\n\r\n 1.3.2 数据库设计者的插图编号盒 3 \r\n\r\n 1.3.3 处理流程概观 3 \r\n\r\n 1.3.4 附录 4 \r\n\r\n 第2章 数据库设计-从需求到实现 5 \r\n\r\n 2.1 数据库建模与数据库设计 5 \r\n\r\n 2.1.1 数据库建模 5 \r\n\r\n 2.1.2 数据库设计 5 \r\n\r\n 2.2 数据库建模的现状 5 \r\n\r\n 2.2.1 最优方案与完整生命周期方案 6 \r\n\r\n 2.2.2 良好的折衷 7 \r\n\r\n 2.3 在数据库设计中的UML图 7 \r\n\r\n 2.3.1 为什么要使用不同的UML图 8 \r\n\r\n 2.4 UML与传统数据库建模的不同 8 \r\n\r\n 2.5 案例分析 9 \r\n\r\n 2.5.1 显示 10 \r\n\r\n 2.5.2 一个典型方案 10 \r\n\r\n 2.5.3 项目目标 10 \r\n\r\n 2.5.4 我们的重点 11 \r\n\r\n 第3章 数据库设计与业务建模 12 \r\n\r\n 3.1 工作流程 12 \r\n\r\n 3.1.1 业务建模 12 \r\n\r\n 3.1.2 现在的业务 15 \r\n\r\n 3.1.3 当前的系统 16 \r\n\r\n 3.1.4 工作中的系统 17 \r\n\r\n 3.2 案例分析 17 \r\n\r\n 3.3 概念 17 \r\n\r\n 3.4 方法 18 \r\n\r\n 3.4.1 数据库团队的工作 18 \r\n\r\n 3.4.2 得出业务需求 19 \r\n\r\n 3.5 设计 19 \r\n\r\n 3.5.1 业务用例模型 19 \r\n\r\n 3.5.2 业务对象模型 25 \r\n\r\n 3.6 小结 35 \r\n\r\n 第4章 需求定义 36 \r\n\r\n 4.1 工作流程 36 \r\n\r\n 4.2 案例分析 37 \r\n\r\n 4.3 概念 38 \r\n\r\n 4.4 方法 38 \r\n\r\n 4.5 设计 40 \r\n\r\n 4.5.1 从业务模型到系统模型的转换 40 \r\n\r\n 4.5.2 进入系统用例组内部 47 \r\n\r\n 4.6 小结 50 \r\n\r\n 第5章 分析和初步设计 51 \r\n\r\n 5.1 工作流程 51 \r\n\r\n 5.1.1 类图 52 \r\n\r\n 5.1.2 支持图和活动 52 \r\n\r\n 5.2 案例分析 53 \r\n\r\n 5.3 概念 53 \r\n\r\n 5.4 方法 53 \r\n\r\n 5.5 设计 54 \r\n\r\n 5.5.1 你想做什么 54 \r\n\r\n 5.5.2 现在回到我们的程序 58 \r\n\r\n 5.5.3 建立MDS系统用例 60 \r\n\r\n 5.5.4 维护MDS系统用例 63 \r\n\r\n 5.5.5 传送MDS系统用例 68 \r\n\r\n 5.5.6 综合 71 \r\n\r\n 5.6 小结 72 \r\n\r\n \r\n\r\n \r\n\r\n 第6章 为转向数据库设计模型做准备 74 \r\n\r\n 6.1 工作流程 74 \r\n\r\n 6.1.1 映射模型 74 \r\n\r\n 6.1.2 将类映射到表格 74 \r\n\r\n 6.1.3 将属性映射到列 76 \r\n\r\n 6.2 案例分析 77 \r\n\r\n 6.3 概念 78 \r\n\r\n 6.4 方法 78 \r\n\r\n 6.5 设计 79 \r\n\r\n 6.5.1 使实体持久 80 \r\n\r\n 6.5.2 属性的转化 80 \r\n\r\n 6.6 小结 82 \r\n\r\n 第7章 数据库设计模型 -专用于数据库设计的UML规范 84 \r\n\r\n 7.1 工作流程 84 \r\n\r\n 7.1.1 作为一个团队工作 85 \r\n\r\n 7.1.2 UML模型包 85 \r\n\r\n 7.1.3 UML模型图 86 \r\n\r\n 7.1.4 数据库设计 86 \r\n\r\n 7.2 案例分析 87 \r\n\r\n 7.3 概念 87 \r\n\r\n 7.3.1 用于数据库设计的UML规范 87 \r\n\r\n 7.3.2 模型图元素 88 \r\n\r\n 7.3.3 表和列元素 91 \r\n\r\n 7.4 方法 94 \r\n\r\n 7.5 设计 94 \r\n\r\n 7.5.1 从类中创建表 95 \r\n\r\n 7.5.2 背景信息 95 \r\n\r\n 7.5.3 基本评估跟踪 95 \r\n\r\n 7.5.4 完整评估数据 96 \r\n\r\n 7.5.5 数据库视图 102 \r\n\r\n 7.6 小结 104 \r\n\r\n 第8章 数据库的物理实现 105 \r\n\r\n 8.1 工作流程 105 \r\n\r\n 8.1.1 使用先前创建的建模要素 106 \r\n\r\n 8.1.2 整合 107 \r\n\r\n 8.2 案例分析 108 \r\n\r\n 8.3 概念 108 \r\n\r\n 8.4 方法 110 \r\n\r\n 8.4.1 划分数据库表 111 \r\n\r\n 8.4.2 模式建模 111 \r\n\r\n 8.4.3 数据库建模 111 \r\n\r\n 8.5 设计 112 \r\n\r\n 8.5.1 创建表空间 112 \r\n\r\n 8.5.2 决定模式和数据库 119 \r\n\r\n 8.5.3 设计所需硬件 120 \r\n\r\n 8.6 小结 120 \r\n\r\n 第9章 使用UML设计数据库综述 121 \r\n\r\n 9.1 工作流程 121 \r\n\r\n 9.2 案例分析 123 \r\n\r\n 9.3 方法 123 \r\n\r\n 9.4 设计 124 \r\n\r\n 9.4.1 积极面 124 \r\n\r\n 9.4.2 消极面 125 \r\n\r\n 9.5 小结 126 \r\n\r\n 附录A EAB保健公司的UML模型 127 \r\n\r\n A.1 本附录的组织 127 \r\n\r\n A.2 模型与图示 130 \r\n\r\n 附录B 用例描述 186 \r\n\r\n 术语表 202 \r\n
\r\n
如果不被数据淹没, 我的生活就简单多了.
我的PDA上充满了列表. 电子表格. 日程表和文档, 我的整个生活就这样排列出来, 编成表格, 量化和描述出来(当我意识到自己的生活竞在如此大的程度上可以放到衬衫衣袋里, 我感觉自己真是很渺小). 接着, PDA还会与我的便携式电脑同步数据, 后者的16GB硬盘上不只是应用程序, 更多的是列表. 电子表格. 日程表和文档. 我的便携式电脑只不过是局域网中的一个节点而已, 该局域网中包括了很多计算机, 运行在我的办公室和家里. 在其中的每台计算机上, 您会毫无疑问地发现更多的列表. 电子表格. 日程表和文档. 其中一些数据是非结构化的——我还没有那么大的精神动力来维护一个食品列表的XML表示(至少目前还没有)一但大部分数据是结构化的, 有深层次的语义, 而且是相互交织的:如交税记录. 代码和相关的人工制品. 书籍和杂志的编目. 正在进行中的手稿和演示文稿的参考资料. CD的目录以及相关联的播放列表等等.
超越这个目前我尚能在某种程度上加以控制的局域网, 想象一下人们和各种组织所维护的本人的所有相关数据:在网站上发出的订单, 本人的大学学习. 参军和职业记录, 政府的纳税记录等, 真是一件令人恐怖的事情. 保守地说, 我的数字化生活可能只需压缩到几千兆字节内存即可容纳. 将本人的数据乘以世界上的人日数目——几十亿, 再加上除了个人信息之外的所有其他数据, 显而易见, 某些系统必须处理万亿字节乃至千万亿字节的数据. 考虑复杂性的另一个极端, 即使嵌入设备通常也必须管理具有丰富语义的数据:举例来说, 如果了解到像起搏器这样的嵌入式设备所必须操纵的结构化数据的数量, 您可能会大吃一惊.
简而言之, 在我们感兴趣的几乎每个软件密集型系统中, 都有需要操纵一组持久性数据.
但是其中有一些难题需要解决:如何设计一种数据密集型系统, 使得我能够围绕它开发出高质量的软件?如何设计系统的架构, 使得它能够良好地适应系统的变化?我们需要意识到, 在许多领域中, 数据种类的变化相对迟缓, 但信息的特定实例和操纵信息的应用程序的变化会频繁得多. 此外, 在开发队伍中, 一些人员更擅长于设计系统的数据密集部分, 而另一些人则擅长于设计操纵数据的应用程序, 如何对团队进行组织, 使不同的风险承担者可以协同工作?
Eric和Robert对建立数据密集型系统都有着丰富的经验, 他们的作品显然是这种经验的体现. 他们写的这本书对于解决上述问题是完全实用的, 而且还涉及到了其他许多有争议问题. 提起争议, 在一个开发队伍中, 传统的数据库设计者和应用程序设计者之间通常有这种令人遗憾的冲突, 但按照两位作者在书中的示范, 可以利用UML使这两个完全不同的设计组彼此进行交流. 开发工作实际上是一种团队活动, 在系统中, 数据密集部分与应用程序密集部分的集成是非常关键的.
如果有(或缺乏)设计良好的软件体系结构以及有计划的开发过程, 那么显然可以预期许多复杂系统开发工作的成功(或失败). Eric和Robert将本书按照软件生命周期流程的顺序组织起来, 引导您从概念数据库设计到逻辑数据库设计, 再到物理数据库设计. 通过将内容集中于单个内涵非常丰富的案例研究中, 并从侧面重点对数据库开发组进行严密的观察, 两位作者提供了帮助您的软件开发小组走向成功的指南.
Grady Booch
Rational软件公司首席科学家
2001年4月
对于职业数据库开发者来说, 本书提供了利用统一建模语言(Unified Modeling Language, UML)进行数据库设计的实用指南. 本书的目标是针对那些必须与现实世界打交道的设计人员:他们必须交付实际系统, 以满足实际的业务需要. 简而言之, 本书是为那些进行实际的数据库设计工作的人员而写的, 他们需要把事情做好.
《UML数据库设计应用》这本书解决了全球数据库开发者向我们提出的最频繁的问题:
如何在数据库设计的实际工作中使用UML?
如何使UML适用于当前的开发过程?
数据库设计组应该如何采用这些方法?
数据库和应用程序组如何使用UML协同工作?
方法
我们努力确保:本书不迷失于理论. 不拘泥于形式, 也不使用不切实际的. 凭空杜撰的例子. 这样, 本书可能会与其他书的写法背道而驰, 但我们认为这并没有什么问题. 我们所采用的方法就是:以一种渐进的方式, 按照系统开发周期的每个阶段, 将UML的使用引入到数据库设计工作中. 我们从生命周期最初的业务模型开始, 最后到达数据库设计. 我们会示范如何将UML应用于开发过程, 以及在各个阶段它对于数据库设计者的价值. 我们使用了一个健壮的. 实际的案例研究(在第2章描述), 来协助示范如何使用UML以及如何处理在实际工程中遇到的难题.
各章摘要
第1章:介绍
本章指出:谁应该阅读本书以及为什么. 它描述了后续章节的基本结构以及本书的整体流程.
第2章:数据库设计——从需求到实现
本章讨论了数据库建模与数据库设计的比较, 阐明了当前使用的数据建模技术, 描述了UML与传统技术的区别, 并介绍了在本书其余部分使用的案例.
第3章:数据库设计——业务建模
本章介绍了业务建模, 以及如何将它和UML用于数据库设计. 概念模型就是在本章建立的.
第4章:需求定义
本章说明了如何将前一阶段的业务建模所得到的工作成果, 用于建立系统需求.
第5章:分析与初步设计
本章从业务需求领域转移到系统及其数据库的逻辑设计.
第6章:为转向数据库设计模型做准备
本章的内容从逻辑分析模型转移到数据库设计模型. 此外, 本章还指出了将对象模型映射到数据模型时出现的问题.
第7章:数据库设计模型——专用于数据库设计的UML规范
本章介绍了由Rational软件公司开发的用于数据库设计的UML规范.
第8章:数据库的物理实现
本章内容集中在数据库设计的物理方面.
第9章:使用UML设计数据库综述
本章对案例研究工程中UML的使用方式进行了分析和回顾.
附录A:EAB保健公司的UML模型
本附录包含了案例研究工程的UML模型.
附录B:用例描述
本附录包含了案例研究工程中用例的描述.