第1章 数据库技术基础 1
1.1 数据库基本概念 1
1.1.1 信息、数据与数据处理 1
1.1.2 数据管理技术的发展与数据库技术的产生 2
1.1.3 数据库系统 6
1.1.4 数据库管理系统 8
1.1.5 数据库系统的分级结构 9
1.2 数据模型 12
1.2.1 信息的抽象过程 12
1.2.2 三类数据模型 13
1.2.3 概念模型 14
1.2.4 概念模型的表示方法——实体-联系模型 16
1.2.5 数据模型 25
1.2.6 数据模型的分类 26
1.3 数据库技术的发展与应用 29
本章小结 30
习题1 31
第2章 关系数据库系统 34
2.1 关系数据库系统概述 34
2.1.1 关系数据结构 34
2.1.2 基本关系的性质 36
2.1.3 关系模式的定义 37
2.1.4 关系数据库 37
2.2 实体-联系模型转换为关系模型 37
2.3 关系模型的完整性约束 41
2.3.1 实体完整性规则 41
2.3.2 参照完整性规则 41
2.3.3 用户定义的完整性 42
2.3.4 完整性规则检查 42
2.4 关系代数 43
2.4.1 关系数据语言的类型 43
2.4.2 传统的集合运算 44
2.4.3 专门的关系运算 46
2.4.4 关系代数运算的应用实例 51
2.5 关系演算 52
2.5.1 元组关系演算语言ALPHA 52
2.5.2 域关系演算语言QBE 56
本章小结 59
习题2 59
第3章 关系数据库标准语言SQL 62
3.1 SQL的基本概念及特点 62
3.1.1 SQL的基本概念 62
3.1.2 SQL的特点 63
3.1.3 SQL数据库的体系结构 64
3.2 SQL的数据定义 65
3.2.1 定义模式 65
3.2.2 定义基本表 66
3.2.3 定义索引 73
3.3 SQL的数据查询 75
3.3.1 简单查询 78
3.3.2 联合查询 87
3.3.3 连接查询 88
3.3.4 嵌套查询 92
3.4 SQL的数据操纵 95
3.4.1 插入记录 96
3.4.2 删除记录 98
3.4.3 更新记录 99
3.5 视图 100
3.5.1 视图的概念 100
3.5.2 视图的作用 101
3.5.3 创建视图 102
3.5.4 删除视图 105
3.5.5 修改视图 105
本章小结 105
习题3 106
第4章 查询优化 109
4.1 查询优化概述 109
4.2 基于索引的优化技术 109
4.2.1 聚集索引和非聚集索引 110
4.2.2 合理使用索引 112
4.3 SQL中常用的优化规则 116
本章小结 123
习题4 123
第5章 关系模式设计 125
5.1 关系模式的设计问题 125
5.2 函数依赖 127
5.2.1 函数依赖的定义 127
5.2.2 完全函数依赖和部分函数依赖 128
5.2.3 传递函数依赖 128
5.3 关系模式的范式与规范化 128
5.3.1 第一范式 129
5.3.2 第二范式 129
5.3.3 第三范式 131
5.3.4 BC范式 131
5.3.5 多值依赖 132
5.3.6 第四范式 134
5.4 关系模式的分解原则 135
5.5 函数依赖的公理 136
本章小结 138
习题5 139
第6章 数据库对象 141
6.1 Transact-SQL语言 141
6.1.1 Transact-SQL程序的结构与批处理 141
6.1.2 变量 142
6.1.3 常用命令 144
6.1.4 流程控制命令 147
6.2 存储过程 151
6.2.1 存储过程的基本概念 151
6.2.2 创建和执行存储过程 152
6.2.3 修改存储过程 155
6.2.4 删除存储过程 155
6.2.5 执行存储过程 156
6.3 触发器 157
6.3.1 触发器基本概念 157
6.3.2 创建触发器 158
6.3.3 修改触发器 160
6.3.4 删除触发器 161
本章小结 161
习题6 161
第7章 数据库设计 164
7.1 数据库设计概述 164
7.2 需求分析 166
7.2.1 需求分析的基本内容 166
7.2.2 需求分析的主要工作 168
7.3 概念结构设计 170
7.4 逻辑结构设计 170
7.5 物理结构设计 171
7.6 数据库实施 173
7.7 数据库的运行和维护 174
7.7.1 数据库的备份和恢复 174
7.7.2 数据库的安全性控制 182
7.7.3 数据库性能的监控分析 189
7.7.4 数据库的重组与重构 189
本章小结 190
习题7 191
第8章 数据库系统的并发控制 194
8.1 事务与事务调度 194
8.1.1 事务的概念 194
8.1.2 事务的特性 195
8.1.3 事务模式 196
8.2 事务并发操作与数据的不一致性 197
8.2.1 丢失或覆盖更新 197
8.2.2 脏读 197
8.2.3 不可重复读 198
8.2.4 幻影读 199
8.3 事务管理 199
8.3.1 启动和结束事务 199
8.3.2 事务回滚 201
8.3.3 事务嵌套 203
8.4 基于锁的并发控制技术 204
8.4.1 锁的概念 204
8.4.2 封锁协议 204
8.4.3 两阶段封锁协议 205
8.4.4 锁粒度 206
8.4.5 锁升级 209
8.4.6 使用系统存储过程sp_lock查看和终止锁 210
8.5 死锁的处理 210
8.5.1 死锁的预防 211
8.5.2 死锁的检测与恢复 212
8.6 活锁的处理 212
本章小结 213
习题8 213
第9章 应用程序接口 217
9.1 嵌入式SQL 217
9.1.1 嵌入式SQL的处理过程 217
9.1.2 嵌入式SQL与宿主语言的接口 217
9.1.3 嵌入式SQL的使用 218
9.2 ODBC 223
9.2.1 ODBC体系结构 223
9.2.2 建立ODBC数据源 224
9.3 OLE DB 228
9.3.1 OLE DB概述 228
9.3.2 使用OLE DB客户模板开发应用程序 230
9.4 ADO 232
9.4.1 ADO概述 232
9.4.2 使用ADO对象模型访问数据库 232
9.5 JDBC 239
9.5.1 JDBC概述 239
9.5.2 JDBC连接数据库 241
本章小结 244
习题9 245
参考文献 247