第一部分 基础知识 3
第1章 数据库基本概念 3
1.1 什么是数据库 3
1.2 什么是数据库管理系统 5
1.2.1 数据依赖 6
1.2.2 DBMS的其他功能 7
1.3 什么是关系型DBMS 8
1.4 数据库系统与程序系统 10
1.5 练习 13
1.6 答案 14
第2章 关系和关系变量 17
2.1 关系 17
2.1.1 属性 18
2.1.2 元组 20
2.1.3 关系的特点 20
2.2 关系变量 22
2.3 练习 24
2.4 答案 24
第3章 码、外码和相关概念 27
3.1 完整性约束 27
3.2 码 28
3.3 外码 31
3.4 关系变量定义 32
3.5 导入数据库 34
3.6 数据库系统和程序系统对比 35
3.7 练习 36
3.8 答案 36
第4章 关系运算符Ⅰ 39
4.1 Codd的原始代数 39
4.2 限制 42
4.3 投影 43
4.4 练习Ⅰ 46
4.5 答案Ⅰ 46
4.6 并、交、差 47
4.6.1 并 47
4.6.2 交 48
4.6.3 差 49
4.6.4 一些公式化的特性 50
4.7 改名 50
4.8 练习Ⅱ 52
4.9 答案Ⅱ 52
4.10 联接 54
4.10.1 笛卡儿乘积 56
4.10.2 再论交运算 57
4.10.3 原始运算符 58
4.11 关系比较 58
4.12 修改运算符的扩充 59
4.13 练习Ⅲ 61
4.14 答案Ⅲ 61
第5章 关系运算符Ⅱ 63
5.1 匹配和非匹配 63
5.2 扩展 65
5.3 映像关系 67
5.4 聚集和分类汇总 70
5.4.1 分类汇总 71
5.4.2 明确的分类汇总 73
5.4.3 广义约束 74
5.5 练习 74
5.6 答案 75
第6章 约束和断言 77
6.1 数据库约束 77
6.2 关系变量断言 81
6.3 断言与约束 84
6.4 练习 85
6.5 答案 87
第7章 关系模型 89
7.1 关系模型定义 89
7.2 类型 91
7.3 关系类型产生器 93
7.4 关系变量 95
7.5 关系赋值 96
7.6 关系运算符 96
7.6.1 安全性 98
7.6.2 视图 98
7.7 结论 100
第二部分 事务和数据库设计 103
第8章 事务 103
8.1 什么是事务 103
8.2 恢复 104
8.2.1 恢复日志 106
8.2.2 ACID特性 106
8.3 并发性 107
8.4 锁 108
8.5 SQL的讨论 110
8.6 练习 111
8.7 答案 112
第9章 数据库设计 113
9.1 无损分解 114
9.2 函数依赖 116
9.3 第二范式 117
9.4 第三范式 119
9.5 BC范式 120
9.6 结论 121
9.7 练习 122
9.8 答案 123
第三部分 SQL 129
第10章 SQL基本表 129
10.1 发展历史 129
10.2 基本概念 131
10.3 表的特性 131
10.4 修改表 133
10.5 等值比较 134
10.6 定义表 135
10.7 SQL系统与程序系统 137
10.8 练习 137
10.9 答案 138
第11章 SQL操作符Ⅰ 141
11.1 限制 141
11.2 投影 142
11.3 并、交、差 143
11.4 更名 145
11.5 练习Ⅰ 145
11.6 答案Ⅰ 146
11.7 联接 148
11.7.1 另一种格式 149
11.7.2 规范特性 149
11.7.3 笛卡儿乘积 150
11.8 基本表表达式的求值 150
11.9 表的比较 151
11.10 练习Ⅱ 154
11.12 答案Ⅱ 154
第12章 SQL运算符Ⅱ 157
12.1 MATCHING与NOT MATCHING 157
12.2 EXTEND 159
12.3 映像关系 161
12.4 聚集和归纳 161
12.4.1 归纳 162
12.4.2 “通用的限制” 165
12.5 练习 167
12.6 答案 167
第13章 SQL约束 169
13.1 数据库约束 169
13.2 类型约束 172
13.3 练习 173
13.4 答案 174
第14章 SQL与关系模型 177
14.1 概述 177
14.2 SQL与关系模型的不同点 179
14.3 练习 182
14.4 答案 182
附录A Tutorial D语法 185
附录B TABLE_DUM和TABLE_DEE 189
附录C 集合论 195
附录D 关系演算 205
附录E 进阶阅读指南 215