第1章 基础知识 1
1.1 数据库系统 2
1.1.1 信息世界 2
1.1.2 数据管理 3
1.1.3 数据库系统的组成 5
1.1.4 数据库系统的作用与优越性 6
1.2 数据模型 7
1.2.1 信息的3个世界 7
1.2.2 数据模型的特性及分类 8
1.2.3 层次模型 10
1.2.4 网状模型 11
1.2.5 关系模型 12
1.2.6 数据模型的相互转换和比较 13
1.3 数据库系统的构造 14
1.3.1 数据库系统结构 14
1.3.2 数据库概念模式 15
1.3.3 数据库外模式 16
1.3.5 数据库管理员 17
1.3.4 数据库内模式 17
1.3.6 数据库系统的体系结构 18
1.4 数据库管理系统 19
1.4.1 什么是数据库管理系统 19
1.4.2 数据描述语言 20
1.4.3 数据操作语言 21
1.4.4 数据库管理例行程序 22
1.4.5 数据库管理系统的工作过程 23
习题 25
小结 25
第2章 关系数据模型 26
2.1 关系数据模型的基本概念与术语 26
2.1.1 关系、元组、属性和域 27
2.1.2 关键字 28
2.1.3 关系模型的数据操作 29
2.1.4 数据操作语言 29
2.1.5 完整性约束 29
2.2 关系代数 30
2.2.1 一般的集合运算 31
2.2.2 专门的关系运算 33
2.2.3 5种基本操作的实现 35
2.3 关系演算 36
2.3.1 元组关系演算 36
2.3.2 域关系演算 38
2.4 关系运算的安全限制 38
2.5 关系代数表达式的优化 41
2.5.1 优化的一般策略 41
2.5.2 关系代数表达式的等价代换规则 42
2.5.3 关系代数表达式的优化算法 43
小结 46
习题 47
第3章 关系数据库语言SQL 49
3.1 SQL语言组成 50
3.1.1 关系与表 50
3.1.2 SQL的数据类型 51
3.1.3 SQL的语句类型 53
3.2.1 表的建立和删除 54
3.2 SQL的数据定义 54
3.2.2 表的扩充与修改 56
3.2.3 视图(View) 58
3.2.4 索引 59
3.2.5 数据库模式的创建与删除 59
3.3 SQL的数据查询 60
3.3.1 单表查询 61
3.3.2 多表查询 63
3.3.3 表达式与函数的使用 66
3.3.4 相关子查询 71
3.3.5 关系代数运算 73
3.4 SQL的数据操纵 76
3.4.1 插入数据 76
3.4.2 修改数据 77
3.4.3 删除数据 78
3.5 SQL的数据控制 78
3.6 嵌入式SQL 79
3.6.1 概述 79
3.6.2 内嵌SQL语句的C程序组成 80
3.6.3 游标的操作 82
3.6.4 带游标的查询操作 83
3.7 构造数据类型、域定义与动态SQL 86
3.7.1 构造数据类型 86
3.7.2 域定义 87
3.7.3 动态SQL 89
小结 90
习题 91
4.1.1 三种可能的配置方案 93
第4章 数据库管理系统 93
4.1 数据库管理系统和操作系统的相互关系 93
4.1.2 DBMS对操作系统的要求 94
4.2 数据库管理系统的层次结构 95
4.3 数据的物理存储与管理 99
4.3.1 外存上的页面编址 99
4.3.2 系统缓冲区作为存储接口 101
4.4.1 录在数据页面上的存储 102
4.4 数据存取管理 102
4.3.3 页面替换策略 102
4.4.2 记录编址 103
4.4.3 数据库文件结构 105
4.4.4 主关键字的存取路径结构 108
4.4.5 数据记录集合的存取路径结构 110
4.5 事务处理 114
4.5.1 事务 114
4.5.2 事务的状态 115
4.5.3 更新事务的执行与恢复 116
4.6 并发控制 117
4.6.1 并发控制的概念 117
4.6.2 可串行化的判断 120
4.6.3 封锁机制与两段式调度协议 122
4.7 关系运算的实现算法 127
4.8 关系数据库管理系统SQL Server 130
小结 134
习题 135
5.1.1 关系模式 137
5.1 关系模式及其评价 137
第5章 关系数据库设计理论基础 137
5.1.2 关系模式的评价 138
5.2 函数依赖 139
5.2.1 函数依赖的定义 139
5.2.2 数依赖的逻辑蕴涵 141
5.2.3 关键字 141
5.3 函数依赖公理体系 142
5.3.1 Armstrong公理 142
5.3.2 Armstrong公理的完备性 143
5.3.3 闭包计算 145
5.3.4 函数依赖集的等价和最小集 146
5.4 关系模式的分解 147
5.4.1 分解的无损连接性 148
5.4.2 分解的函数依赖保持性 152
5.5 关系模式的规范化 153
5.5.1 第一范式(1NF) 153
5.5.2 第二范式(2NF) 153
5.5.3 第三范式(3NF) 154
5.5.4 BCNF 155
5.5.5 分解算法 157
5.6 多值依赖和第四范式 159
5.6.1 多值依赖的定义 160
5.6.2 多值依赖公理 161
5.6.3 第四范式(4NF) 162
5.7 连接依赖和第五范式 164
5.7.1 连接依赖 164
5.7.2 第五范式(5NF) 165
习题 166
小结 166
第6章 非关系数据模型 169
6.1 实体-联系模型 170
6.1.1 基本概念 170
6.1.2 ER图 171
6.1.3 实体间的依赖 175
6.1.4 组合关键字 177
6.1.5 扩充ER模型 178
6.2 实体-联系模型转换为关系模式 179
6.3.1 对象 182
6.3 面向对象数据模型 182
6.3.2 类 183
6.3.3 继承 184
6.3.4 对象标识 185
6.4 基于逻辑的数据模型 185
6.4.1 基于一阶谓词的数据模型 185
6.4.2 逻辑数据库 186
习题 188
小结 188
第7章 关系数据库设计 190
7.1 信息系统及其与数据库的关系 190
7.2 数据库设计与数据库生命周期 191
7.2.1 数据库设计的含义 191
7.2.2 数据库设计的目标 192
7.2.3 数据库设计的一般过程 193
7.3 数据库设计方法 194
7.3.1 数据库设计方法概述 194
7.3.2 基于3NF的数据库设计方法 195
7.3.3 LRA方法 196
7.3.4 DBMS的选择和全关系DBMS的评价准则 199
7.4 关系数据库的设计方法 202
7.4.1 数据需求分析 202
7.4.2 概念模型设计 205
7.4.3 逻辑设计 212
7.4.4 物理设计 215
7.5 数据库设计评价 219
7.5.1 数据库设计评价准则 219
7.5.2 一个通用的分析方法 220
7.5.3 设计策略 221
7.6 用UML设计关系数据库模式 223
小结 224
习题 225
第8章 数据库的完整性与安全性 226
8.1 概述 226
8.2 数据的完整性约束 227
8.2.1 完整性的语义约束和检查 228
8.2.2 SQL中的完整性约束 229
8.3.1 DBMS安全模型 232
8.3 数据库的安全性 232
8.3.2 视图与安全性 233
8.3.3 访问控制 234
8.3.4 数据密码 236
8.3.5 踪审计 237
8.3.6 统计数据库的安全性 238
8.4 数据库的故障与恢复 239
8.4.1 数据库的故障类型 239
8.4.2 恢复机制 240
8.4.3 事务级故障的恢复 243
8.4.4 系统与介质故障的恢复 244
8.4.5 SQL对恢复操作的支持 245
小结 247
习题 247
第9章 网络数据库系统 249
9.1 基于客户机/服务器模式的数据库系统 250
9.1.1 客户机/服务器系统的组成 250
9.1.2 三层结构的客户机/服务器系统 251
9.2.1 数据库的建立 253
9.2 服务器数据库的建立 253
9.2.2 用户注册与授权 257
9.2.3 数据源的建立 261
9.2.4 数据库设计 261
9.3 服务器数据操纵 262
9.3.1 流程控制语言 262
9.3.2 触发器 265
9.3.3 存储过程 267
9.4.2 ODBC 269
9.4.1 固有调用 269
9.4 数据库访问接口 269
9.4.3 JDBC 271
9.5 SQL会话期与调用级接口CLI 273
9.5.1 SQL的会话期 273
9.5.2 调用级接口SQL/CLI 273
9.6 客户端应用系统 274
9.7 基于浏览器/服务器模式的数据库系统 275
9.7.1 浏览器/服务器模式 275
9.7.2 浏览器/服务器的工作原理和过程 276
9.7.3 览器/服务器系统的工作方式 277
9.7.4 浏览器/服务器系统的实施方案 278
9.8 ASP的数据库访问技术 279
9.8.1 ASP文件 280
9.8.2 服务器组件 281
9.8.3 访问服务器数据库 282
9.9 JSP的数据库访问技术 284
9.10.1 多层应用软件的体系结构 286
9.10 Internet/Intranet信息系统多层体系结构 286
9.10.2 多层应用软件体系的实现技术 287
小结 289
习题 289
第10章 分布式数据库系统 291
10.1 概述 291
10.1.1 什么是分布式数据库系统 291
10.1.2 分布式数据库系统的目标与优点 293
10.2 分布式数据库的模式结构 294
10.2.1 数据分布 294
10.2.2 分布式数据库的模式结构 295
10.3 分布式数据库管理系统 298
10.3.1 分布式数据库管理系统的功能与组成 298
10.3.2 分布式数据库管理系统的主要技术问题 299
10.4 分布式查询处理 300
10.4.1 分布式查询的处理过程与特点 300
10.4.2 基于半连接的分布式查询处理 301
10.5 分布式事务模型 302
10.6 并发控制 303
小结 304
习题 305
第11章 面向对象数据库系统 306
11.1 概述 306
11.1.1 面向对象数据库系统的功能要求 307
11.1.2 面向对象数据库系统的实现途径 307
11.2 面向对象数据模型 308
11.2.1 对象结构 308
11.2.2 对象间的联系 309
11.3 面向对象数据库语言 310
11.2.4 对象参照完整性约束 310
11.2.3 对象标识 310
11.3.1 对象的持久性 311
11.3.2 ODMG-93 312
11.4 面向对象数据库管理系统 315
11.4.1 面向对象数据库管理系统的基本构造 315
11.4.2 存储结构 315
11.4.3 方法的实现 316
11.4.4 长事务 316
11.4.5 版本管理 317
11.5.1 对象-关系数据库系统的特征 318
11.5 对象-关系数据库系统 318
11.5.2 SQL 3 320
小结 324
习题 324
第12章 数据仓库 325
12.1 概述 325
12.1.1 数据仓库的产生 325
12.2.1 数据仓库系统结构 327
12.2 数据仓库构造 327
12.1.3 数据仓库系统的主要特征 327
12.1.2 数据仓库定义 327
12.2.2 数据仓库模型 329
12.2.3 元数据 331
12.3 联机分析处OLAP 332
12.3.1 OLAP数据模型 332
12.3.2 OLAP基本操作 334
12.3.3 OLAP实现技术 334
12.4.1 数据仓库开发的流程 337
12.4 数据仓库的开发 337
12.4.2 构造数据仓库的过程 338
12.4.3 执行信息系统 339
12.5 数据挖掘 340
12.5.1 什么是数据挖掘 340
12.5.2 数据挖掘的主要目标与特点 340
12.5.3 数据挖掘模型 341
小结 343
参考文献 344