第一部分 相关知识介绍 1
第1章 引言 1
1.1 数据库系统使用示例 1
1.2 数据库概述 2
1.2.1 数据库 2
1.2.2 数据库管理系统 3
1.2.3 视图 3
1.2.4 DBMS环境的组成 4
1.2.5 DBMS架构 4
l.3 DBMS的功能 6
1.4 数据库设计 9
1.5 DBMS的优缺点 9
1.6 本章小结 10
第2章 关系模型 12
2.1 数据模型 12
2.2 术语 12
2.2.1 关系数据结构 13
2.2.2 关系表的属性 14
2.2.3 关系键 15
2.2.4 关系数据库的表示 16
2.3 关系完整性 18
2.3.1 空值 18
2.3.2 实体完整性 19
2.3.3 参照完整性 19
2.3.4 业务规则 19
2.4 关系语言 19
2.5 本章小结 21
3.1 软件危机 22
第3章 数据库应用程序生命周期 22
3.2 信息系统生命周期 23
3.3 数据库应用程序生命周期 23
3.4 数据库规划 23
3.5 系统定义 23
3.6 需求的收集与分析 26
3.7 数据库设计 28
3.8 选择DBMS 28
3.9 应用程序设计 28
3.9.1 事务设计 29
3.9.2 用户界面设计 29
3.12 数据转换与加载 30
3.10 构建原型 30
3.11 实现 30
3.13 测试 31
3.14 操作性维护 31
3.15 本章小结 31
第二部分 数据库分析与设计技术 33
第4章 事实发现 33
4.1 什么时候使用事实发现技术 33
4.2 收集哪些事实 33
4.3 事实发现技术 34
4.3.1 检查文档 35
4.3.2 面谈 35
4.3.4 研究 36
4.3.5 问卷调查 36
4.3.3 观察业务的运转 36
4.4 StayHome案例研究 37
4.4.1 StayHome案例研究——概览 37
4.4.2 StayHome案例研究——数据库规划 40
4.4.3 StayHome案例研究——系统定义 40
4.4.4 StayHome案例研究——需求收集和分析 46
4.4.5 StayHome案例研究——数据库设计 51
4.5 本章小结 51
第5章 实体关系建模 52
5.1 实体 52
5.2 关系 53
5.3 属性 54
5.2.2 递归关系 54
5.2.1 关系的度 54
5.3.1 简单属性和复合属性 55
5.3.2 单值属性和多值属性 55
5.3.3 派生属性 55
5.3.4 键 56
5.4 强实体和弱实体 57
5.5 关系的多样性约束 57
5.5.1 一对一关系 58
5.5.2 一对多关系 59
5.5.3 多对多关系 59
5.5.4 非二元关系的多样性约束 60
5.5.5 基数约束与参与约束 62
5.6 关系上的属性 62
5.7.1 扇形陷阱 63
5.7 ER模型中的设计问题 63
5.7.2 深坑陷阱 64
5.8 本章小结 66
第6章 规范化 67
6.1 简介 67
6.2 数据冗余和更新异常 67
6.2.1 插入异常 68
6.2.2 删除异常 69
6.2.3 更新异常 69
6.3 第一范式 69
6.4 第二范式 71
6.5 第三范式 74
6.6 本章小结 75
7.1 数据库设计方法学简介 77
7.1.1 什么是数据库设计方法学 77
第三部分 逻辑数据库设计 77
第7章 方法学概述 77
7.1.2 数据库设计方法学的目标 78
7.1.3 为什么构建数据模型 78
7.1.4 数据库设计中的关键成功因素 80
7.2 数据库设计方法学概述 80
7.3 本章小结 82
第8章 逻辑数据库设计——步骤1 84
8.1 为每个视图构建逻辑数据库模型 84
8.1.1 步骤1.1:标识实体 85
8.1.2 步骤1.2:标识关系 86
8.1.3 步骤1.3:标识实体或关系的有关属性 89
8.1.5 步骤1.5:确定候选键和主键属性 92
8.1.4 步骤1.4:确定属性域 92
8.1.7 步骤1.7:删除与关系模型不相容的特性 94
8.1.6 步骤1.6:特化,泛化实体 94
8.1.8 步骤1.8:检查模型是否支持用户事务 100
8.2 本章小结 101
第9章 逻辑数据库设计——步骤2 102
9.1 步骤2:为每个局部逻辑数据模型创建并检查表 102
9.1.1 步骤2.1:为局部逻辑数据模型创建表 102
9.1.2 步骤2.2:用规范化方法检查表结构 110
9.1.3 步骤2.3:检查表是否支持用户事务 110
9.1.4 步骤2.4:定义完整性约束 112
9.1.5 步骤2.5:与用户讨论局部逻辑数据模型 115
9.2 本章小结 115
10.1.1 用户的需求说明 116
第10章 逻辑数据库设计——步骤3 116
10.1 StayHome的业务视图 116
10.1.2 局部逻辑数据模型 117
10.2 步骤3:构建并检查全局逻辑数据模型 118
10.2.1 步骤3.1:合并局部逻辑数据模型为全局模型 119
10.2.2 步骤3.2:检查全局逻辑数据模型 124
10.2.3 步骤3.3:检查未来的可变性 124
10.2.4 步骤3.4:与用户讨论全局逻辑数据模型 124
10.3 本章小结 124
第11章 高级建模技术 125
11.1 特化/泛化 125
11.1.1 超类和子类 125
11.1.2 超类/子类关系 125
11.1.3 属性继承 126
11.1.4 特化过程 127
11.1.5 泛化过程 127
11.1.6 超类/子类关系的约束 129
11.2 创建表达特化/泛化的表 130
11.3 本章小结 131
第四部分 物理数据库设计 133
第12章 物理数据库设计——步骤4 133
12.1 逻辑与物理数据库设计的比较 134
12.2 物理数据库设计方法学概述 134
12.3 步骤4:为目标DBMS转换全局逻辑数据模型 135
12.3.1 步骤4.1:为目标DBMS设计基本表 135
12.3.2 步骤4.2:为目标DBMS设计业务规则 140
12.4 本章小结 143
第13章 物理数据设计——步骤5 144
13.1 理解系统资源 144
13.2 步骤5:设计物理表示 145
13.2.1 步骤5.1:分析事务 146
13.2.2 步骤5.2:选择文件组织方式 150
13.2.3 步骤5.3:选择索引 151
13.3 使用Microsoft Access97的StayHome文件的组织与索引 154
13.3.1 选择索引指南 154
13.3.2 StayHome的索引 155
13.4 本章小结 156
第14章 物理数据库设计——步骤6 157
14.1 步骤6:受控冗余的考虑 157
14.1.1 步骤6.1:考虑派生的数据 158
14.1.2 步骤6.2:同时考虑重复列或连接表 159
14.2 本章小结 167
第15章 物理数据库设计——步骤7 169
15.1 步骤7:设计安全机制 169
15.1.1 步骤7.1:设计用户视图 169
15.1.2 步骤7.2:设计访问规则 170
15.2 本章小结 174
第16章 物理数据库设计——步骤8 175
16.1 步骤8:监视并调整操作系统 175
16.2 本章小结 176
第17章 使用SQL和QBE查询 177
StayHome示例 177
17.1 Microsoft SQL和QBE介绍 177
17.1.1 SQL 177
17.2 StayHome查询示例 178
17.1.2 QBE 178
17.3 本章小结 184
第五部分 第二个实例 185
第18章 Perfect Pets——逻辑数据库设计 185
18.1 Perfect Pets实例 185
18.1.1 数据需求 185
18.1.2 事务需求 187
18.2 使用逻辑数据库设计方法 187
18.2.1 步骤1.1:标识实体 188
18.2.2 步骤1.2:标识关系 188
18.2.3 步骤1.3:标识实体或关系的有关属性 189
18.2.4 步骤1.4:确定属性域 191
18.2.7 步骤1.7:删除与关系模型不相容的特性 192
18.2.5 步骤1.5:确定候选键和主键属性 192
18.2.6 步骤1.6:特化和泛化实体 192
18.2.8 步骤1.8:检查模型是否支持用户事务 194
18.2.9 步骤2.1:为局部逻辑数据模型创建表 194
18.2.10 步骤2.2:用规范化方法检查表 194
18.2.1l 步骤2.3:检查模型是否支持用户事务 194
18.2.12 步骤2.4:定义完整性约束 197
18.2.13 步骤2.5:与用户一起讨论局部逻辑数据模型 198
第19章 Perfect Pets——物理数据库设计 199
19.1 使用物理数据库设计方法学 199
19.1.1 步骤4.1:为目标DBMS设计基本表 199
19.1.2 步骤4.2:为目标DBMS设计业务规则 202
19.1.4 步骤5.2:选择文件组织方式 204
19.1.3 步骤5.1:分析事务 204
19.1.5 步骤5.3:选择索引 211
19.1.6 步骤6.1:考虑派生的数据 212
19.1.7 步骤6.2:同时考虑重复列或连接表 212
19.1.8 步骤7.1:设计用户视图 212
19.1.9 步骤7.2:设计访问规则 213
19.2 后续内容介绍 216
第六部分 附录 217
附录A 可选的数据建模表示法 217
附录B 数据库设计方法学总结 222
附录C 文件组织和索引 227
附录D 常用数据模型 234
术语表 256
参考文献 262