第一篇 基础篇 3
第一章 绪论 3
1.1 数据库系统概述 3
1.1.1 数据、数据库、数据库管理系统、数据库系统 3
1.1.2 数据管理技术的产生和发展 6
1.1.3 数据库系统的特点 8
1.2 数据模型 12
1.2.1 两大类数据模型 12
1.2.2 数据模型的组成要素 13
1.2.3 概念模型 14
1.2.4 最常用的数据模型 18
1.2.5 层次模型 20
1.2.6 网状模型 25
1.2.7 关系模型 28
1.3 数据库系统结构 31
1.3.1 数据库系统模式的概念 31
1.3.2 数据库系统的三级模式结构 31
1.3.3 数据库的二级映像功能与数据独立性 33
1.4 数据库系统的组成 34
1.5 小结 37
习题 37
本章参考文献 39
第二章 关系数据库 41
2.1 关系数据结构及形式化定义 41
2.1.1 关系 42
2.1.2 关系模式 46
2.1.3 关系数据库 47
2.2 关系操作 47
2.2.1 基本的关系操作 47
2.2.2 关系数据语言的分类 48
2.3 关系的完整性 48
2.3.1 关系的三类完整性约束 49
2.3.2 实体完整性(Entity Integrity) 49
2.3.3 参照完整性(Referential Integrity) 49
2.3.4 用户定义的完整性(User-defined Integrity) 51
2.4 关系代数 52
2.4.1 传统的集合运算 53
2.4.2 专门的关系运算 53
2.5 关系演算 60
2.5.1 元组关系演算语言ALPHA 60
2.5.2 元组关系演算 65
2.5.3 域关系演算语言QBE 68
2.6 小结 74
习题 74
实验1 认识DBMS 76
本章参考文献 76
第三章 关系数据库标准语言SQL 78
3.1 SQL概述 78
3.1.1 SQL的产生与发展 78
3.1.2 SQL的特点 79
3.1.3 SQL的基本概念 81
3.2 学生-课程数据库 82
3.3 数据定义 83
3.3.1 模式的定义与删除 83
3.3.2 基本表的定义、删除与修改 84
3.3.3 索引的建立与删除 89
3.4 数据查询 91
3.4.1 单表查询 91
3.4.2 连接查询 100
3.4.3 嵌套查询 104
3.4.4 集合查询 112
3.4.5 SELECT语句的一般格式 114
3.5 数据更新 115
3.5.1 插入数据 115
3.5.2 修改数据 117
3.5.3 删除数据 117
3.6 视图 118
3.6.1 定义视图 119
3.6.2 查询视图 121
3.6.3 更新视图 123
3.6.4 视图的作用 125
3.7 小结 127
习题 127
实验2 交互式SQL 128
本章参考文献 128
第四章 数据库安全性 130
4.1 计算机安全性概述 130
4.1.1 计算机系统的三类安全性问题 130
4.1.2 安全标准简介 131
4.2 数据库安全性控制 135
4.2.1 用户标识与鉴别(Identification&Authentication) 135
4.2.2 存取控制 136
4.2.3 自主存取控制(DAC)方法 136
4.2.4 授权(Authorization)与回收 137
4.2.5 数据库角色 142
4.2.6 强制存取控制(MAC)方法 143
4.3 视图机制 144
4.4 审计(Audit) 145
4.5 数据加密 146
4.6 统计数据库安全性 147
4.7 小结 147
习题 148
实验3 数据控制(安全性部分) 149
本章参考文献 149
第五章 数据库完整性 151
5.1 实体完整性 152
5.1.1 实体完整性定义 152
5.1.2 实体完整性检查和违约处理 153
5.2 参照完整性 154
5.2.1 参照完整性定义 154
5.2.2 参照完整性检查和违约处理 154
5.3 用户定义的完整性 156
5.3.1 属性上的约束条件的定义 156
5.3.2 属性上的约束条件检查和违约处理 157
5.3.3 元组上的约束条件的定义 158
5.3.4 元组上的约束条件检查和违约处理 158
5.4 完整性约束命名子句 158
5.5 域中的完整性限制 160
5.6 触发器 160
5.6.1 定义触发器 160
5.6.2 激活触发器 162
5.6.3 删除触发器 163
5.7 小结 163
习题 164
实验4 数据控制(完整性部分) 164
本章参考文献 165
第二篇 设计与应用开发篇 169
第六章 关系数据理论 169
6.1 问题的提出 169
6.2 规范化 172
6.2.1 函数依赖 172
6.2.2 码 173
6.2.3 范式 174
6.2.4 2NF 175
6.2.5 3NF 176
6.2.6 BCNF 176
6.2.7 多值依赖 178
6.2.8 4NF 181
6.2.9 规范化小结 182
6.3 数据依赖的公理系统 182
6.4 模式的分解 187
6.4.1 模式分解的3个定义 187
6.4.2 分解的无损连接性和保持函数依赖性 188
6.4.3 模式分解的算法 191
6.5 小结 194
习题 195
本章参考文献 197
第七章 数据库设计 198
7.1 数据库设计概述 198
7.1.1 数据库设计的特点 199
7.1.2 数据库设计方法 200
7.1.3 数据库设计的基本步骤 201
7.1.4 数据库设计过程中的各级模式 203
7.2 需求分析 205
7.2.1 需求分析的任务 205
7.2.2 需求分析的方法 206
7.2.3 数据字典 207
7.3 概念结构设计 209
7.3.1 概念结构 209
7.3.2 概念结构设计的方法与步骤 209
7.3.3 数据抽象与局部视图设计 212
7.3.4 视图的集成 219
7.4 逻辑结构设计 224
7.4.1 E-R图向关系模型的转换 224
7.4.2 数据模型的优化 226
7.4.3 设计用户子模式 227
7.5 数据库的物理设计 227
7.5.1 数据库的物理设计的内容和方法 228
7.5.2 关系模式存取方法选择 228
7.5.3 确定数据库的存储结构 230
7.5.4 评价物理结构 231
7.6 数据库的实施和维护 231
7.6.1 数据的载入和应用程序的调试 231
7.6.2 数据库的试运行 232
7.6.3 数据库的运行和维护 233
7.7 小结 234
习题 234
课程大作业《数据库设计与应用开发》 234
本章参考文献 235
第八章 数据库编程 237
8.1 嵌入式SQL 237
8.1.1 嵌入式SQL的处理过程 237
8.1.2 嵌入式SQL语句与主语言之间的通信 238
8.1.3 不用游标的SQL语句 241
8.1.4 使用游标的SQL语句 243
8.1.5 动态SQL 244
8.1.6 小结 245
8.2 存储过程 245
8.2.1 PL/SQL的块结构 245
8.2.2 变量常量的定义 245
8.2.3 控制结构 246
8.2.4 存储过程 247
8.2.5 小结 249
8.3 ODBC编程 249
8.3.1 数据库互连概述 249
8.3.2 ODBC工作原理概述 250
8.3.3 ODBC API基础 252
8.3.4 ODBC的工作流程 253
8.3.5 小结 258
实验5 通过嵌入式SQL访问数据库 258
实验6 使用PL/SQL编写存储过程访问数据库 258
实验7 通过ODBC访问数据库 259
实验8 通过JDBC访问数据库 259
本章参考文献 260
第三篇 系统篇 263
第九章 关系查询处理和查询优化 263
9.1 关系数据库系统的查询处理 263
9.1.1 查询处理步骤 263
9.1.2 实现查询操作的算法示例 264
9.2 关系数据库系统的查询优化 266
9.2.1 查询优化概述 266
9.2.2 一个实例 267
9.3 代数优化 269
9.3.1 关系代数表达式等价变换规则 269
9.3.2 查询树的启发式优化 271
9.4 物理优化 272
9.4.1 基于启发式规则的存取路径选择优化 273
9.4.2 基于代价的优化 274
9.5 小结 275
习题 275
实验9 查询优化 276
本章参考文献 276
第十章 数据库恢复技术 278
10.1 事务的基本概念 278
10.2 数据库恢复概述 279
10.3 故障的种类 280
10.4 恢复的实现技术 282
10.4.1 数据转储 282
10.4.2 登记日志文件(Logging) 283
10.5 恢复策略 285
10.5.1 事务故障的恢复 285
10.5.2 系统故障的恢复 285
10.5.3 介质故障的恢复 286
10.6 具有检查点的恢复技术 286
10.7 数据库镜像 288
10.8 小结 289
习题 289
本章参考文献 290
第十一章 并发控制 292
11.1 并发控制概述 293
11.2 封锁 294
11.3 活锁和死锁 296
11.3.1 活锁 296
11.3.2 死锁 297
11.4 并发调度的可串行性 299
11.4.1 可串行化调度 299
11.4.2 冲突可串行化调度 300
11.5 两段锁协议 301
11.6 封锁的粒度 302
11.6.1 多粒度封锁 303
11.6.2 意向锁 304
11.7 小结 305
习题 305
本章参考文献 306
第十二章 数据库管理系统 308
12.1 DBMS的基本功能 308
12.2 DBMS的进程结构和多线索机制 309
12.2.1 N方案:DBMS与应用程序相融合的方案 309
12.2.2 2N方案:一个DBMS进程对应一个用户进程 310
12.2.3 N+1方案:一个DBMS进程对应所有用户进程 311
12.2.4 N+M方案:M个DBMS进程对应N个用户进程 312
12.2.5 多线索(Multi_Threaded)DBMS的概念 313
12.3 DBMS系统结构 316
12.3.1 DBMS的层次结构 316
12.3.2 RDBMS的运行过程示例 317
12.4 语言处理 318
12.4.1 语言处理层的任务和工作步骤 318
12.4.2 解释方法 320
12.4.3 预编译方法 321
12.5 数据存取层 322
12.5.1 数据存取层的系统结构 323
12.5.2 数据存取层的功能子系统 324
12.6 缓冲区管理 326
12.7 数据库物理组织 328
12.8 小结 329
习题 330
本章参考文献 330
第四篇 新技术篇 335
第十三章 数据库技术新发展 335
13.1 数据库技术发展概述 335
13.2 数据库发展的3个阶段 336
13.2.1 第一代数据库系统 336
13.2.2 第二代数据库系统 337
13.2.3 新一代数据库系统 338
13.3 数据库系统发展的特点 339
13.3.1 数据模型的发展 340
13.3.2 数据库技术与其他相关技术相结合 341
13.3.3 面向应用领域的数据库新技术 343
13.4 数据库技术发展趋势 346
13.5 小结 349
习题 350
本章参考文献 350
第十四章 分布式数据库系统 352
14.1 概述 352
14.1.1 分布式数据库系统 352
14.1.2 分布式数据库系统的特点 354
14.2 分布式数据库系统的体系结构 356
14.2.1 分布式数据库系统的模式结构 356
14.2.2 数据分片 357
14.2.3 分布透明性 359
14.2.4 分布式数据库管理系统 360
14.3 查询处理和优化 362
14.3.1 一个实例 362
14.3.2 查询处理和优化要解决的问题 364
14.3.3 查询优化的目标 365
14.3.4 连接查询的优化 366
14.4 分布事务管理 368
14.4.1 分布事务的恢复 368
14.4.2 并发控制 369
14.5 小结 370
习题 371
本章参考文献 372
第十五章 对象关系数据库系统 374
15.1 面向对象数据模型 375
15.1.1 OO模型的核心概念 375
15.1.2 类层次(结构) 376
15.1.3 继承 377
15.1.4 对象的嵌套 377
15.2 对象-关系数据库 379
15.2.1 对象关系数据库系统中扩展的关系数据类型 379
15.2.2 对象关系数据库系统中扩展的对象类型及其定义 381
15.2.3 参照类型(Reference Type) 383
15.2.4 继承性 385
15.2.5 子表和超表 385
15.3 小结 387
习题 388
本章参考文献 388
第十六章 XML数据库 391
16.1 概述 391
16.2 XML简介 392
16.3 XML数据模型 394
16.3.1 XML DTD 396
16.3.2 XML Schema 397
16.4 SQL/XML 398
16.4.1 XML数据类型 399
16.4.2 XML发布函数 400
16.4.3 XML提取函数 405
16.5 小结 406
习题 407
本章参考文献 407
第十七章 数据仓库与联机分析处理技术 408
17.1 数据仓库技术 408
17.2 联机分析处理技术 412
17.3 数据挖掘技术 414
17.4 小结 416
习题 417
本章参考文献 417