第1章 简介 1
1.1 面向对象的目的 1
1.2 面向对象的软件工程 1
1.2.OO软件开发方法对于数据库应用的好处 3
1.3 OMT方法体系 4
1.3.1 OMT开发过程 4
1.3.2 基于实体的和基于属性的开发 5
1.3.3 三种OMT模型 6
1.4 本书的组织 7
1.5 字体说明 7
1.6 小结 7
文献注释 8
参考文献 9
第1部分 建模概念 11
第2章 基本对象模型的建立 11
2.1 对象和类的概念 11
2.1.1 对象 11
2.1.2 类 12
2.1.3 值和对象属性 14
2.1.4 操作和方法 14
2.2 链接和关联的概念 15
2.2.1 链接和关联 15
2.2.2 多重性 17
2.2.3 角色 18
2.2.4 链接属性 20
2.2.5 关联类 20
2.2.6 限制性关联 21
2.3 泛化的概念 23
2.3.1 泛化 23
2.3.2 继承 24
2.4 样本框图 24
2.4.1 类框图 24
2.4.2 实例框图 26
2.5 实用技巧 28
2.6 小结 29
文献注释 30
参考文献 31
练习 31
第3章 高级对象模型的建立 37
3.1 对象和类的概念 37
3.1.1 实例化 37
3.1.2 类属性和操作 37
3.1.3 属性多重性 38
3.1.4 类的候选关键字 38
3.1.5 域 39
3.1.6 辅助数据 40
3.2 链接和关联的概念 42
3.2.1 多重性 42
3.2.2 三元关联 42
3.2.3 关联的候选关键字 43
3.2.4 异或关联 43
3.2.5 限制关联 44
3.3 聚集 45
3.3.1 物理聚集和目录聚集 46
3.3.2 物理聚集的扩展语义 47
3.3.3 目录聚集的扩展语义 47
3.4 泛化 48
3.4.1 抽象类和具体类 48
3.4.2 泛化和其它的对象建模结构 49
3.5 多重继承 51
3.5.1 来自不同特征的多重继承 51
3.5.2 无共同祖先的多重继承 51
3.5.3 多重继承的替换物 52
3.6 包 53
3.6.1 逻辑范界 54
3.6.2 包的例子 54
3.7 导出数据和约束 58
3.8 高级实用技巧 59
3.9 小结 59
练习 60
第4章 对象元模型 64
4.1 元数据和元模型 64
4.1.1 通用类 65
4.1.2 具化 66
4.1.3 OMT对象元模型 67
4.2 框架 68
4.3 模式 69
4.3.1 树 69
4.3.2 有向图 70
4.3.3 无向图 72
4.3.4 项描述 72
4.3.5 Homomorphisms 73
4.4 小结 74
练习 74
第5章 功能模型 80
5.1 伪码 80
5.2 具有对象浏览表示方法的伪码 81
5.3 ONN结构 82
5.3.1 简单二元关联的搜索 82
5.3.2 限制性关联的搜索 83
5.3.3 泛化的搜索 84
5.3.4 从链接到对象的搜索 84
5.3.5 从对象到链接的搜索 85
5.3.6 过滤 86
5.3.7 从对象到值的搜索 86
5.3.8 从链接到值的搜索 87
5.3.9 小结 87
5.4 ONN结构组合 87
5.4.1 ONN表达式的例子 87
5.4.2 与伪码相结合的ONN的例子 88
5.5 其它的ONN特性 90
5.6 其它范例 92
5.6.1 数据流范例 92
5.6.2 决策表 92
5.6.3 数学方程式 94
5.7 实用技巧 94
5.8 小结 95
练习 95
第2部分 分析和设计过程 98
第6章 开发过程预览 98
参考文献 99
第7章 概念化 100
7.1 综述 100
7.2 资财管理器案例学习 101
7.3 小结 102
第8章 分析 103
8.1 综述 103
8.2 问题描述 103
8.3 对象模型 104
8.3.1 列出可能的类 105
8.3.2 排除错误的类 106
8.3.3 列出可能的关联 107
8.3.4 排除错误的关联 109
8.3.5 精化关联 109
8.3.6 列出对象和链接的可能的属性 110
8.3.7 排除错误的属性 112
8.3.8 使用泛化标注相似性和相异性 112
8.3.9 测试存取路径 114
8.3.10 模型重述和精化 115
8.3.11 提升抽象层次 115
8.3.12 第一次修正:引入交易概念 116
8.3.13 第二次重复:分析现有形式并精化交易 117
8.3.14 组织对象模型 118
8.4 数据字典 119
8.5 动态模型 121
8.6 功能模型 121
8.6.1 描述应用示例 122
8.6.2 选择功能模型的模式 123
8.6.3 描述对象模型的操作 124
8.6.4 描述动态模型的操作 128
8.6.5 验证整个分析模型 128
8.7 经验与教训 128
8.8 小结 129
练习 130
第9章 系统设计 138
9.1 概述 138
9.2 设计体系结构 139
9.2.1 体系结构的设计原则 139
9.2.2 产生候选体系结构 141
9.2.3 提出决策标准并为其赋权重 141
9.2.4 量化体系结构的符合度 142
9.2.5 比较分数 142
9.3 选择外部控制的实现方法 143
9.4 选择数据管理方法 144
9.4.1 存储器数据 146
9.4.2 文件 146
9.4.3 DBMS 147
9.4.4 混合型方法 148
9.5 选择数据库管理模式 148
9.5.1 层次和网络DBMS 148
9.5.2 关系型DBMS 148
9.5.3 面向对象的DBMS 150
9.5.4 其它DBMS 152
9.6 确定重用时机 153
9.7 选择数据交互策略 154
9.8 选择对象标识的一种方法 158
9.9 处理临时数据 159
9.10 处理辅助数据 159
9.11 规定详细设计的缺省方案 162
9.12 小结 163
文献注释 164
参考文献 165
练习 165
第10章 详细设计 173
10.1 概述 173
10.2 对象模型变换 173
10.2.1 变换的概念 173
10.2.2 OMT方法中变换的使用 175
10.2.3 基本变换的例子 175
10.2.4 对资财管理器使用变换 179
10.2.5 变换的数学性质 180
10.3 详细阐述对象模型 182
10.4 详细阐述功能模型 185
10.4.1 设计方法 186
10.4.2 方法的所有权 187
10.4.3 封装和查询优化 187
10.4.4 用户交互 188
10.4.5 其它的考虑 188
10.5 评估设计模型的品质 189
10.6 小结 189
文献注释 190
参考文献 191
练习 191
第11章 过程回顾 195
11.1 概念化 195
11.2 分析 195
11.3 系统设计 196
11.4 详细设计 196
11.5 实现概观 196
第3部分 实现 197
第12章 文件 197
12.1 文件概述 197
12.2 实现对象模型 198
12.3 将数据组织到文件 199
12.3.1 根据文件类型组织数据 199
12.3.2 指定数据到文件 200
12.4 选择文件实现类型 200
12.5 实现特性 202
12.6 实现域 203
12.7 实现类 204
12.8 实现属性 206
12.9 实现简单关联 207
12.10 实现高级关联 209
12.11 实现泛化 211
12.12 对象模型映射规则总结 212
12.13 实现动态模型 214
12.14 实现功能模型 214
12.14.1 保存文件 215
12.14.2 装载文件 215
12.15 其他实现问题 218
12.16 小结 218
文献注释 219
参考文献 219
练习 220
第13章 关系数据库:基础 223
13.1 关系数据库概述 223
13.1.1 元模型 224
13.1.2 SQL 226
13.1.3 范式 226
13.1.4 Microsoft Access2.0概述 227
13.2 实现对象模型 228
13.3 实现特性 229
13.3.1 基于实体的特性 229
13.3.2 基于值的特性 229
13.4 实现域 230
13.4.1 标识符域 231
13.4.2 枚举域 232
13.4.3 结构化域 233
13.4.4 多值域 233
13.5 实现类 234
13.6 实现简单关联 234
13.6.1 建议的映射 234
13.6.2 可选的映射 235
13.6.3 不建议的映射 236
13.7 实现高级关联 236
13.7.1 建议的映射 236
13.7.2 可选的映射 238
13.7.3 不建议的映射 238
13.8 实现单一继承 239
13.8.1 建议的映射 239
13.8.2 可选的映射 240
13.9 实现多重继承 242
13.10 对象模型映射规则总结 242
13.11 实现动态模型 245
13.12 实现功能模型 245
13.12.1 简单二元关联遍历 245
13.12.2 限制关联遍历 246
13.12.3 泛化遍历 247
13.12.4 从链接到对象的遍历 248
13.12.5 从对象到链接的遍历 248
13.12.6 过滤 249
13.12.7 从对象到值的遍历 249
13.12.8 从链接到值的遍历 250
13.12.9 ONN映射规则总结 250
13.13 小结 251
文献注释 252
参考文献 252
练习 253
第14章 关系数据库:提高 256
14.1 实现对象模型 256
14.2 定义表上的约束 256
14.2.1 参照完整性的SQL选项 256
14.2.2 实现参照完整性 257
14.3 定义索引 258
14.4 分配存储空间 259
14.5 创建一个模式 260
14.6 实现动态模型 262
14.6.1 实现用户界面 262
14.7 实现功能模型 265
14.7.1 资财管理器案例中的操作 266
14.7.2 使用MS-Access实现ONN 268
14.7.3 主要算法 269
14.8 其他功能建模问题 273
14.8.1 功能模型表 273
14.8.2 性能微调 273
14.8.3 静态SQL与动态SQL 274
14.8.4 SQL样式规则 275
14.9 物理实现问题 276
14.10 从资财管理器案例中学习到的经验 276
14.11 小结 277
文献注释 277
参考文献 278
练习 278
第15章 面向对象数据库:基础 280
15.1 ObjectStore概述 280
15.1.1 对象模型支持 280
15.1.2 永久对象和临时对象 281
15.1.3 集合类 282
15.1.4 数据库特性 282
15.2 实现对象模型 284
15.3 实现域 284
15.3.1 标识符域 285
15.3.2 枚举域 285
15.3.3 结构化域 286
15.3.4 多值域 286
15.4 实现类 286
15.4.1 类的声明 287
15.4.2 对象模型隐含的方法 287
15.5 实现泛化 288
15.6 实现简单关联 288
15.6.1 实现策略 289
15.6.2 关联的声明 290
15.6.3 对象模型隐含的方法 291
15.7 实现高级关联 292
15.8 对象模型映射规则总结 292
15.9 实现动态模型 293
15.10 实现功能模型 293
15.11 映射ONN结构 294
15.11.1 简单二元关联遍历 294
15.11.2 限制关联遍历 295
15.11.3 泛化遍历 295
15.11.4 从链接到对象的遍历 295
15.11.5 从对象到链接的遍历 296
15.11.6 过滤 296
15.11.7 从对象到值的遍历 296
15.11.8 从链接到值的遍历 297
15.11.9 组合ONN结构 298
15.11.10 ONN映射规则总结 299
15.12 创建方法和删除方法 299
15.12.1 创建对象 300
15.12.2 删除对象 300
15.12.3 创建链接 301
15.12.4 删除链接 302
15.13 小结 302
文献注释 303
参考文献 303
练习 304
第16章 面向对象数据库:提高 310
16.1 关键字 310
16.1.1 外关键字 310
16.1.2 候选关键字 310
16.1.3 主关键字 310
16.2 extent 310
16.2.1 声明 311
16.2.2 实现 311
16.2.3 内存分配和初始化 313
16.2.4 使用extent 313
16.3 将属性折叠到相关类 313
16.3.1 将属性折叠到类 314
16.3.2 将限制词折叠到类 314
16.4 提升关联 318
16.4.1 提升简单关联 318
16.4.2 提升链接属性和关联类 323
16.4.3 提升限制关联 326
16.5 使用ObjectStore查询 326
16.6 软件工程问题 327
16.6.1 相关性 328
16.6.2 性能 328
16.6.3 风格 329
16.6.4 存储管理 329
16.6.5 测试和调试 330
16.6.6 大系统问题 330
16.7 小结 330
参考文献 331
练习 331
第17章 实现总结 334
17.1 实现对象模型 334
17.1.1 文件 334
17.1.2 关系数据库 334
17.1.3 面向对象数据库 335
17.1.4 对象模型映射规则总结 335
17.2 实现功能模型 336
17.2.1 文件 336
17.2.2 关系数据库 336
17.2.3 面向对象数据库 336
17.2.4 对象导航表示法映射规则总结 336
17.3 大系统问题预览 337
第4部分 大系统问题 338
第18章 分布式数据库 338
18.1 分布式数据库入门 338
18.2 客户端-服务器计算 340
18.2.1 三层体系结构 340
18.2.2 CORBA 342
18.2.3 客户端-服务器SQL 342
18.2.4 CORBA和客户端-服务器SQL的比较 343
18.3 分布数据 344
18.3.1 将数据库分段 344
18.3.2 将分段分配到节点 347
18.3.3 复制数据 347
18.3.4 提供位置透明性 348
18.3.5 为本地数据库实现模式 349
18.4 小结 349
文献注释 349
参考文献 350
第19章 应用程序集成 351
19.1 概述 351
19.2 企业建模 352
19.2.1 选择一种开发途径 353
19.2.2 选择合并应用程序的顺序 354
19.2.3 比较应用程序模型 354
19.2.4 一个集成的例子 355
19.2.5 解决差异 356
19.2.6 验证企业模型 358
19.3 集成技术 358
19.3.1 主数据库 358
19.3.2 点对点接口 359
19.3.3 间接集成 361
19.4 集成体系结构 362
19.4.1 标识应用程序 362
19.4.2 分离有问题应用程序的影响 362
19.4.3 分布式应用程序的集成 363
19.4.4 遗留数据的转换 364
19.5 数据仓库 364
19.6 小结 365
文献注释 366
参考文献 366
第20章 逆向工程 368
20.1 概述 368
20.1.1 重建 368
20.1.2 数据库逆向工程的原因 368
20.1.3 逆向工程策略 369
20.2 层次数据库 370
20.2.1 概念 370
20.2.2 逆向工程过程 372
20.2.3 示例 373
20.3 网络数据库 375
20.3.1 概念 375
20.3.2 逆向工程过程 377
20.3.3 示例 378
20.4 关系数据库 379
20.4.1 概念 379
20.4.2 逆向工程过程 379
20.4.3 示例 383
20.5 小结 385
文献注释 385
参考文献 386
附录A 词汇表 387
附录B ONN的BNF语法 395