前言 1
第一部分 设置环境 7
第1章 篇首语 7
1.1从文献摘录的一些引用 8
1.2关于术语的说明 9
1.3正在运行的示例 11
1.4键 12
1.5设计理论的地位 13
1.6本书的目的 16
1.7结束语 17
习题 18
第2章 预备知识 20
2.1概览 20
2.2关系及关系变量 21
2.3谓词和命题 23
2.4更多的供应商和零件 26
习题 28
第二部分 函数依赖、BOYCE/CODD范式及相关事宜 33
第3章 规范化:一些通则 33
3.1规范化用于两个目的 35
3.2更新异常 38
3.3范式层次结构 38
3.4规范化和约束 40
3.5结束语 41
习题 42
第4章 函数依赖和BCNF(非正式的) 44
4.1第一范式 44
4.2函数依赖 48
4.3键的重新审视 49
4.4第二范式 51
4.5第三范式 53
4.6 Boyce/Codd范式 53
习题 55
第5章 函数依赖和BCNF(正式的) 58
5.1初步定义 58
5.2函数依赖 60
5.3 Boyce/Codd范式 61
5.4希思定理 64
习题 67
第6章 保持函数依赖 68
6.1遗憾的冲突 70
6.2第二个例子 72
6.3第三个例子 74
6.4第四个例子 75
6.5一个能够工作的过程 77
6.6恒等分解 81
6.7关于冲突的更多内容 82
6.8独立投影 83
习题 84
第7章 FD公理化 85
7.1阿姆斯特朗公理 85
7.2附加规则 87
7.3证明附加规则 89
7.4另一种闭包 89
习题 91
第8章 反规范化 93
8.1“反规范化是为了性能”吗 93
8.2反规范化是什么意思 94
8.3什么不是反规范化(Ⅰ) 96
8.4什么不是反规范化(Ⅱ) 98
8.5反规范化是有害的(Ⅰ) 100
8.6反规范化是有害的(Ⅱ) 102
8.7结束语 103
习题 103
第三部分 连接依赖、第五范式及其他相关项 107
第9章 连接依赖及5NF(非正式的) 107
9.1连接依赖的基本思路 108
9.2一个属于BCNF但不属于5NF的关系变量 111
9.3循环规则 114
9.4结束语 115
习题 116
第10章 连接依赖及5NF(正式的) 117
10.1连接依赖 117
10.2第五范式 119
10.3被键蕴含的JD 121
10.4一个有用的定理 124
10.5 F D不是JD 125
10.6更新异常再探 125
习题 127
第11章隐式依赖关系 128
11.1无关的分量 128
11.2结合分量 129
11.3不可约的J D 130
11.4小结 133
11.5追逐算法 135
11.6结束语 139
习题 139
第12章 多值依赖和4NF 141
12.1一个介绍性的例子 141
12.2多值依赖(非正式的) 143
12.3多值依赖(正式的) 144
12.4第四范式 145
12.5公理化 147
12.6嵌入式依赖 148
习题 149
第13章 额外的范式 151
13.1相等依赖 152
13.2第六范式 153
13.3超键范式 156
13.4无冗余范式 157
13.5域一键范式 163
13.6结束语 164
习题 166
第四部分 正交 171
第14章 正交设计原则 171
14.1规范化的两个欢呼声 171
14.2一个启发性的例子 173
14.3一个更简单的例子 174
14.4元组与命题 177
14.5第一个例子再探 181
14.6第二个例子再探 183
14.7最终版本 183
14.8澄清 184
14.9结束语 185
习题 186
第五部分 冗余 189
第15章 我们需要更多的科学 189
15.1一点历史 191
15.2数据库设计是谓词设计 193
15.3例1 194
15.4例2 195
15.5例3 196
15.6例4 196
15.7例5 197
15.8例6 197
15.9例7 200
15.10例8 202
15.11例9 202
15.12例10 204
15.13例11 204
15.14例12 205
15.15管理冗余 206
15.16改善定义 208
15.17结束语 215
习题 216
第六部分 附录 219
附录A 主键是良好的,但不是必需的 219
附录B 冗余回顾 232
附录C 重要论文回顾 237
附录D 习题答案 241