第Ⅰ部分 关系数据库建模初步 3
第1章 数据库建模的过去与现在 3
1.1 掌握数据库的概念 4
1.2 数据库模型 4
1.3 数据库建模的发展 6
1.3.1 文件系统 6
1.3.2 层次结构数据库模型 7
1.3.3 网络数据库模型 7
1.3.4 关系数据库模型 8
1.3.5 关系数据库管理系统 9
1.3.6 关系数据库模型的历史 10
1.3.7 对象数据库模型 11
1.4.1 事务数据库 12
1.4 分析数据库的类型 12
1.3.8 对象-关系数据库模型 12
1.4.2 决策支持数据库 13
1.4.3 混合数据库 14
1.5 理解数据库模型设计 14
1.5.1 定义目标 15
1.5.2 数据库设计的方法 17
1.6 小结 19
第2章 工作场所中的数据库建模 20
2.1 业务规则和目标 21
2.1.1 业务规则的含义 22
2.1.2 业务规则的重要性 22
2.2 结合人的因素 23
2.2.1 作为资源的人 23
2.2.2 与合适的人交谈 25
2.2.3 获得正确的信息 26
2.3 处理不利的情况 27
2.3.1 将一沓纸计算机化 28
2.3.2 转换传统的数据库 28
2.3.3 异类数据库的同类集成 29
2.3.4 从电子表格转换 29
2.3.5 整理混乱的数据库 29
2.4 小结 30
第3章 数据库建模构件块 31
3.1 信息、数据和数据完整性 32
3.2 表的基本概念 33
3.2.1 记录、行和元组 34
3.2.2 字段、列和属性 35
3.3 数据类型 36
3.3.1 简单数据类型 36
3.3.2 复杂数据类型 40
3.3.3 专门的数据类型 41
3.3.4 约束和有效性 41
3.4 关于规范化 42
3.4.1 规范化的优点 42
3.4.2 潜在的规范化危险 42
3.5 用ERD表示关系 43
3.5.1 鸟足结构 44
3.5.2 一对一 44
3.5.3 一对多 45
3.5.4 多对多 46
3.5.5 零、一或多 48
3.5.6 标识和非标识关系 49
3.6 键 50
3.6.1 主键 50
3.6.2 唯一键 51
3.6.3 外键 52
3.6.4 参照完整性 54
3.7 索引 55
3.7.1 索引的基本概念 56
3.7.2 辅助索引 56
3.7.3 外键索引 56
3.7.4 索引的类型 57
3.7.5 构建索引的不同方法 59
3.8 视图和其他专门对象简介 59
3.9 小结 60
3.10 练习题 61
第Ⅱ部分 设计关系数据库模型 65
第4章 规范化 65
4.1 规范化定义 65
4.1.1 异常的概念 66
4.1.2 依赖、决定因子和其他术语 67
4.2 定义范式 70
4.2.1 通过学术方式定义范式 70
4.2.2 通过容易的方式定义范式 71
4.3 第一范式(1NF) 72
4.3.1 学术方法的1NF 72
4.3.2 容易方法的1NF 72
4.4 第二范式(2NF) 77
4.4.1 学术方法的2NF 77
4.4.2 容易方法的2NF 77
4.5 第三范式(3NF) 82
4.5.1 学术方法的3NF 82
4.5.2 容易方法的3NF 83
4.6.2 容易方法的第三范式以后上范式 88
4.6 第三范式(3NF)以上的范式 88
4.6.1 使用第三范式以上范式的原因 88
4.6.3 学术方法的第三范式以上的范式 90
4.7 小结 101
4.8 练习题 101
第5章 用SQL读写数据 102
5.1 定义SQL 102
5.1.1 SQL的起源 103
5.1.2 不同数据库中的SQL 104
5.2 SQL的基础 104
5.2.1 使用SELECT查询数据库 105
5.2.2 修改数据库中的数据 122
5.2.3 事务 123
5.2.4 修改数据库元数据 123
5.3 小结 126
5.4 练习题 127
第6章 高级关系数据库建模 128
6.1 非规范化 128
6.1.1 范式逆转 129
6.1.2 使用特化数据库对象的非规范化 138
6.1.3 非规范化的技巧 138
6.2 对象模型 140
6.3 数据仓库数据库模型 142
6.4 小结 144
6.5 练习题 144
第7章 数据仓库数据库建模 145
7.1 数据仓库的起源 145
7.1.1 关系数据库模型与数据仓库 146
7.1.3 数据仓库中的参照完整性 147
7.2 维度数据库模型 147
7.1.2 数据仓库中的代理键 147
7.2.1 星型模式 148
7.2.2 雪花模式 149
7.3 数据仓库数据库模型的建立 153
7.3.1 数据仓库建模步骤 153
7.3.2 数据在数据仓库中的保存时限 154
7.3.3 维度表类型 154
7.3.4 事实表 159
7.4 小结 160
7.5 练习题 160
第8章 构建快速执行的数据库模型 161
8.1 不同数据库模型的要求 161
8.1.1 影响OLTP数据库模型调整的因素 162
8.1.2 影响客户机-服务器数据库模型调整的因素 162
8.1.3 影响数据仓库数据库模型调整的因素 163
8.1.4 数据库模型调整 165
8.2 编写高效查询 165
8.3 SELECT命令 167
8.3.1 用WHERE子句筛选 169
8.3.2 HAVING子句与WHERE子句 171
8.3.3 连接 171
8.3.4 自动计数器 173
8.4 提高性能的高效索引 173
8.4.1 索引类型 173
8.4.2 实际情况中的索引 174
8.4.3 不使用索引的情况 175
8.5 使用视图 176
8.6 应用程序缓存 177
8.7 小结 178
8.8 练习题 179
第Ⅲ部分 关系数据库建模中的案例分析 183
第9章 通过分析进行规划与准备 183
9.1 创建数据库模型的步骤 184
9.1.1 步骤1:分析 185
9.1.2 步骤2:设计 185
9.1.3 步骤3:构造 186
9.1.4 步骤4:实现 186
9.2 分析 186
9.2.1 分析中的考虑因素 188
9.2.2 潜在问题和误解 189
9.3 理论应用于实践 191
9.3.1 将分析应用于实践 191
9.3.2 公司目标 191
9.3.3 案例分析:OLTP数据库模型 193
9.3.4 案例分析:数据仓库模型 205
9.4 项目管理 212
9.4.1 项目规划和时间表 213
9.4.2 预算 214
9.5 小结 215
9.6 练习题 216
第10章 在设计阶段创建与细化表 217
10.1 设计初步 217
10.2 案例分析:创建表 219
10.2.1 OLTP数据库模型 219
10.2.2 数据仓库数据库模型 223
10.3 案例分析:加强表之间的关系 226
10.3.1 参照完整性 226
10.3.2 主键和外键 227
10.3.3 使用代理键 227
10.3.4 标识关系与非标识关系 228
10.3.5 没有子记录的父记录 229
10.3.6 具有可选父记录的子记录 230
10.3.7 符合参照完整性的OLTP数据库 230
10.3.8 符合参照完整性的数据仓库数据库模型 236
10.4 规范化和非规范化 238
10.4.1 案例分析:对OLTP数据库模型执行规范化 239
10.4.2 案例分析:回溯并细化OLTP数据库模型 249
10.4.3 案例分析:细化数据仓库数据库模型 259
10.5 小结 266
10.6 练习题 266
第11章 用细化设计填充细节 267
11.1 案例分析:细化字段结构 267
11.1.1 OLTP数据库模型 268
11.1.2 数据仓库数据库模型 271
11.2.2 ANSI(American National Standards Institute,美国国家标准化组织)数据类型 276
11.2 理解数据类型 276
11.2.1 简单数据类型 276
11.2.3 Microsoft Access数据类型 277
11.2.4 特殊的数据类型 278
11.2.5 案例分析:定义数据类型 279
11.3 理解键和索引 284
11.3.1 索引的类型 285
11.3.2 添加索引的内容、时间和方法 287
11.3.3 无需使用索引的时机 288
11.3.4 案例分析:辅助索引 289
11.4 小结 296
11.5 练习题 297
第12章 业务规则与字段设定 298
12.1 再次定义业务规则 298
12.2.1 规范化、范式和关系 299
12.2 数据库模型中的业务规则分类 299
12.2.2 划分关系类型 300
12.2.3 显式声明的字段设定 301
12.2.4 在数据库中存储代码 304
12.3 案例分析:在数据库模型中实现字段级业务规则 308
12.3.1 表和关系级业务规则 308
12.3.2 个别字段业务规则 308
12.3.3 编码业务规则 316
12.4 小结 322
第Ⅳ部分 高级主题 327
第13章 高级数据库结构和硬件资源 327
13.1 高级数据库结构 328
13.1.1 对象和场合 328
13.1.2 视图 329
13.1.3 物化视图 331
13.1.4 索引类型 334
13.1.5 自动计数器 336
13.1.6 分区和并行处理 336
13.2 硬件资源 338
13.2.1 您能买得起多贵的硬件 339
13.2.2 您需要多少钱 339
13.3 专门硬件体系结构 339
13.3.1 RAID阵列 339
13.3.2 备用数据库 340
13.3.3 复制 341
13.3.4 网格和计算机聚类(clustering) 343
13.4 小结 343
附录A 练习题答案 345
附录B 示例数据库 359
术语表 363