第1章 数据库绪论 1
1.1 引言 1
1.2 数据库基础知识 2
1.2.1 数据与数据库 2
1.2.2 数据管理与数据库管理系统 3
1.3 数据库的起源与发展 4
1.3.1 手工管理阶段 4
1.3.2 文件系统阶段 5
1.3.3 数据库系统阶段 6
1.4 数据模型 8
1.4.1 数据模型概述 8
1.4.2 层次数据模型 10
1.4.3 网状数据模型 12
1.4.4 关系数据模型 13
1.4.5 面向对象数据模型 14
1.5 数据库系统 15
1.5.1 数据库系统的组成 15
1.5.2 数据库管理系统 16
1.5.3 数据库的体系结构 19
1.6 习题 21
第2章 关系数据库基础 24
2.1 关系模型 24
2.1.1 关系数据结构 24
2.1.2 关系的完整性约束 27
2.1.3 关系操作 30
2.2 关系代数 31
2.2.1 传统的集合运算 31
2.2.2 专门的关系运算 34
2.2.3 关系代数表达式优化 45
2.3 关系演算 48
2.3.1 元组关系演算 49
2.3.2 域关系演算 50
2.4 习题 52
第3章 关系数据库标准语言SQL 57
3.1 SQL概述 57
3.1.1 SQL简介 57
3.1.2 SQL基本知识 60
3.2 数据定义 65
3.2.1 模式定义 65
3.2.2 基本表定义 67
3.2.3 实现完整性约束 68
3.2.4 更新基本表 74
3.3 数据查询 76
3.3.1 简单查询 76
3.3.2 条件查询 81
3.3.3 聚集函数 86
3.3.4 模糊查询 88
3.3.5 对查询结果排序 91
3.3.6 分组查询 92
3.3.7 涉及空值的查询 94
3.3.8 连接查询 96
3.3.9 嵌套查询 100
3.3.10 集合查询 109
3.4 数据更新 110
3.4.1 插入数据 110
3.4.2 修改数据 112
3.4.3 删除数据 113
3.5 索引 114
3.5.1 创建索引 114
3.5.2 删除索引 115
3.6 视图 115
3.6.1 创建视图 116
3.6.2 删除视图 117
3.6.3 查询视图 118
3.6.4 更新视图 119
3.7 习题 120
第4章 关系数据理论 125
4.1 问题引入 125
4.1.1 规范化理论的主要内容 125
4.1.2 概念回顾 126
4.1.3 关系模式的存储异常问题 126
4.2 基本概念 129
4.2.1 函数依赖的定义及性质 129
4.2.2 码 132
4.3 范式 132
4.3.1 第一范式 133
4.3.2 第二范式 134
4.3.3 第三范式 135
4.3.4 BC范式 137
4.3.5 第四范式 138
4.4 关系模式的规范化小结 142
4.4.1 关系模式规范化的目的和原则 142
4.4.2 关系模式规范化的步骤 142
4.5 习题 143
第5章 数据库设计 147
5.1 数据库设计概述 147
5.1.1 数据库设计的特点 148
5.1.2 数据库设计方法概述 150
5.1.3 数据库设计的基本步骤 151
5.1.4 数据库设计过程中的各级模式 154
5.2 需求分析 154
5.2.1 需求分析的任务和方法 154
5.2.2 数据流图 157
5.2.3 数据字典 158
5.3 概念结构设计 160
5.3.1 概念模型 160
5.3.2 概念结构设计的方法与步骤 164
5.3.3 数据抽象和局部视图设计 166
5.3.4 视图的集成 170
5.4 逻辑结构设计 174
5.4.1 逻辑结构设计的任务 174
5.4.2 E-R图向关系模型的转换 175
5.4.3 数据模型的优化 177
5.4.4 设计用户子模式 178
5.5 数据库的物理设计 179
5.5.1 数据库物理设计的内容和方法 179
5.5.2 关系模式存取方法选择 180
5.5.3 确定数据库的存储结构 182
5.5.4 评价物理结构 183
5.6 数据库的实施和维护 184
5.6.1 数据的载入和应用程序的调试 184
5.6.2 数据库的试运行 184
5.6.3 数据库的运行和维护 185
5.7 习题 186
第6章 事务和并发控制 189
6.1 事务 189
6.1.1 事务概念 189
6.1.2 事务的特征 190
6.2 并发控制 191
6.2.1 并发执行 192
6.2.2 可串行化调度 194
6.2.3 冲突可串行化调度 195
6.3 基于锁的协议 196
6.3.1 封锁 197
6.3.2 封锁协议 198
6.3.3 两段锁协议 200
6.4 活锁和死锁 202
6.4.1 活锁 202
6.4.2 死锁 202
6.5 封锁的粒度 205
6.6 习题 208
第7章 数据库备份与恢复 210
7.1 故障的种类 210
7.2 备份策略 212
7.2.1 备份分类 212
7.2.2 日志(Logging) 213
7.2.3 备份策略 215
7.3 恢复技术 216
7.4 检查点恢复技术 218
7.5 习题 220
第8章 安全管理 222
8.1 安全性概述 222
8.2 应用系统安全性控制 229
8.2.1 安全控制模型 229
8.2.2 用户身份鉴定 230
8.2.3 权限的授予与收回 230
8.2.4 角色 235
8.3 数据加密技术 237
8.4 习题 238
第9章 数据库编程 240
9.1 变量及流程控制语句 240
9.1.1 PL/SQL块的基本结构 240
9.1.2 变量常量 241
9.1.3 流程控制语句 241
9.2 存储过程 243
9.2.1 存储过程的分类 243
9.2.2 存储过程的优点 243
9.2.3 创建存储过程 244
9.2.4 执行存储过程 246
9.2.5 查看和修改存储过程 247
9.2.6 删除存储过程 247
9.3 触发器 248
9.3.1 创建触发器 248
9.3.2 激活和执行触发器 250
9.3.3 查看和修改触发器 250
9.3.4 删除触发器 251
9.4 嵌入式SQL 251
9.4.1 嵌入式SQL基础知识 251
9.4.2 嵌入式SQL的使用 253
9.5 ODBC编程 255
9.5.1 ODBC工作原理 255
9.5.2 ODBC API基础 256
9.5.3 ODBC的工作流程 257
9.6 习题 258
第10章 数据库新技术 260
10.1 数据库发展概述 260
10.1.1 数据库发展的三个阶段 260
10.1.2 数据库技术发展的特点及趋势 261
10.2 分布式数据库 262
10.2.1 分布式数据库及其特点 263
10.2.2 分布式数据库系统的体系结构 264
10.3 对象关系数据库 265
10.3.1 面向对象的基本概念 266
10.3.2 对象关系数据模型 267
10.3.3 对象关系数据库 267
10.4 数据仓库与数据挖掘 268
10.4.1 数据仓库技术 268
10.4.2 数据挖掘技术 270
10.5 其他数据库系统简介 271
10.5.1 XML数据库 271
10.5.2 多媒体数据库 273
10.5.3 主动数据库 275
10.6 习题 276
第11章 案例分析——学生选课管理系统 277
11.1 数据库系统设计技术 277
11.1.1 数据库系统设计的六个阶段 277
11.1.2 关系数据库设计技术 279
11.2 系统设计 279
11.2.1 系统功能分析 279
11.2.2 系统功能模块设计 279
11.3 数据库的设计与实现 280
11.3.1 数据库需求分析 280
11.3.2 数据库概念结构设计 281
11.3.3 数据库逻辑结构设计 283
11.3.4 数据库物理设计 283
11.4 应用程序的设计与实现 285
11.4.1 登录界面 285
11.4.2 管理员主页 288
11.4.3 编辑学生信息 289
11.4.4 添加课程信息 291
11.4.5 编辑课程信息 293
11.4.6 学生选课 295
11.4.7 查看选课信息 298
第12章 实验 301
12.1 认识DBMS 301
12.1.1 实验目的 301
12.1.2 实验内容 301
12.2 数据库的创建与管理 304
12.2.1 实验目的 304
12.2.2 实验内容 304
12.3 数据表的建立与编辑 305
12.3.1 实验目的 305
12.3.2 实验内容 305
12.4 实现完整性约束 307
12.4.1 实验目的 307
12.4.2 实验内容 307
12.5 简单数据查询 308
12.5.1 实验目的 308
12.5.2 实验内容 308
12.6 复杂数据查询 309
12.6.1 实验目的 309
12.6.2 实验内容 309
12.7 视图和索引的定义与使用 309
12.7.1 实验目的 309
12.7.2 实验内容 309
12.8 事务与并发控制 310
12.8.1 实验目的 310
12.8.2 实验内容 310
12.9 数据库安全性控制 311
12.9.1 实验目的 311
12.9.2 实验内容 311
12.10 存储过程、触发器的创建与使用 312
12.10.1 实验目的 312
12.10.2 实验内容 313
附录A 部分习题答案 314
参考文献 317