第1章 基础知识 1
1.1 数据库系统 2
1.1.1 信息与数据管理 2
1.1.2 数据库系统的组成 4
1.1.3 数据库系统的作用及优越性 5
1.2 数据模型 7
1.2.1 信息的三个世界 7
1.2.2 数据模型的特性及分类 8
1.2.3 层次数据模型 9
1.2.4 网状数据模型 10
1.2.5 关系数据模型 11
1.2.6 数据模型的相互转换和比较 12
1.3 数据库系统的构造 13
1.3.1 数据库系统结构 13
1.3.2 数据库概念模式 14
1.3.3 数据库外模式 15
1.3.4 数据库内模式 16
1.3.5 数据库管理员 16
1.3.6 数据库系统的体系结构 17
1.4 数据库管理系统 18
1.4.1 什么是数据库管理系统 18
1.4.2 数据描述语言 19
1.4.3 数据操作语言 21
1.4.4 数据库管理例行程序 21
1.4.5 数据库管理系统的工作过程 23
小结 24
习题1 24
第2章 关系数据模型 25
2.1 关系数据模型的基本概念与术语 25
2.1.1 关系、元组、属性和域 25
2.1.2 关键字 26
2.1.3 关系模型的数据操作 27
2.1.4 数据操作语言 28
2.1.5 完整性约束 28
2.2 关系代数 29
2.2.1 一般的集合运算 29
2.2.2 专门的关系运算 30
2.2.3 扩充的关系运算 33
2.2.4 五种基本操作的实现 34
2.3 关系演算 35
2.3.1 元组关系演算 35
2.3.2 域关系演算 37
2.4 关系运算的安全限制 37
2.5 关系代数表达式的优化 40
2.5.1 优化的一般策略 40
2.5.2 关系代数表达式的等价代换规则 41
2.5.3 关系代数表达式的优化算法 42
小结 44
习题2 45
第3章 关系数据库语言SQL 47
3.1 SQL组成 48
3.1.1 关系与表 48
3.1.2 SQL的数据类型 49
3.1.3 SQL的语句类型 51
3.2 SQL的数据定义 52
3.2.1 表的建立和删除 52
3.2.2 表的扩充与修改 54
3.2.3 视图(View) 55
3.2.4 索引 56
3.2.5 数据库模式的创建与删除 57
3.3 SQL的数据查询 58
3.3.1 单表查询 58
3.3.2 多表查询 61
3.3.3 表达式与函数的使用 64
3.3.4 相关子查询 68
3.3.5 关系代数运算 70
3.4 SQL的数据操纵 73
3.4.1 插入数据 73
3.4.2 修改数据 74
3.4.3 删除数据 75
3.5 SQL的数据控制 76
3.6 嵌入式SQL 77
3.6.1 概述 77
3.6.2 内嵌SQL语句的C程序组成 78
3.6.3 无游标的操作 80
3.6.4 带游标的查询操作 80
3.7 构造数据类型、域定义与动态SQL 83
3.7.1 构造数据类型 83
3.7.2 域定义 85
3.7.3 动态SQL 86
小结 88
习题3 88
第4章 数据库管理系统 90
4.1 数据库管理系统和操作系统的相互关系 90
4.1.1 三种可能的配置方案 90
4.1.2 DBMS对操作系统的要求 91
4.2 数据库管理系统的层次结构 91
4.3 数据的物理存储与管理 95
4.3.1 外存上的页面编址 95
4.3.2 系统缓冲区作为存储接口 97
4.3.3 页面替换策略 98
4.4 数据存取管理 98
4.4.1 记录在数据页面上的存储 98
4.4.2 记录编址 100
4.4.3 数据库文件结构 101
4.4.4 主关键字的存取路径结构 104
4.4.5 数据记录集合的存取路径结构 107
4.5 事务处理 110
4.5.1 事务 110
4.5.2 事务的状态 111
4.5.3 更新事务的执行与恢复 112
4.6 并发控制 113
4.6.1 并发控制的概念 113
4.6.2 可串行化的判断 116
4.6.3 封锁机制与两段式调度协议 118
4.7 关系运算的实现算法 122
4.8 关系数据库管理系统SQL Server 125
小结 129
习题4 130
第5章 关系数据库设计理论基础 132
5.1 关系模式及其评价 132
5.1.1 关系模式 132
5.1.2 关系模式的评价 133
5.2 函数依赖 134
5.2.1 函数依赖的定义 134
5.2.2 函数依赖的逻辑蕴涵 135
5.2.3 关键字 136
5.3 函数依赖公理体系 136
5.3.1 Armstrong公理 137
5.3.2 Armstrong公理的完备性 138
5.3.3 闭包的计算 139
5.3.4 函数依赖集的等价和最小集 140
5.4 关系模式的分解 142
5.4.1 分解的无损连接性 142
5.4.2 分解的函数依赖保持性 146
5.5 关系模式的规范化 146
5.5.1 第一范式(1NF) 147
5.5.2 第二范式(2NF) 147
5.5.3 第三范式(3NF) 148
5.5.4 BCNF 148
5.5.5 分解算法 150
5.6 多值依赖和第四范式 153
5.6.1 多值依赖的定义 153
5.6.2 多值依赖公理 155
5.6.3 第四范式(4NF) 156
5.7 连接依赖和第五范式 157
5.7.1 连接依赖 157
5.7.2 第五范式(5NF) 158
小结 159
习题5 160
第6章 非关系数据模型 163
6.1 实体—联系模型 163
6.1.1 基本概念 163
6.1.2 E-R图 164
6.1.3 实体间的依赖 169
6.1.4 组合关键字 170
6.1.5 扩充E-R模型 171
6.2 实体—联系模型转换为关系模式 172
6.3 面向对象数据模型 175
6.3.1 对象 175
6.3.2 类 175
6.3.3 继承 176
6.3.4 对象标识 177
6.4 基于逻辑的数据模型 178
6.4.1 基于一阶谓词的数据模型 178
6.4.2 逻辑数据库 179
小结 181
习题6 181
第7章 关系数据库设计 182
7.1 信息系统及其与数据库的关系 182
7.2 数据库设计的内容与数据库生命周期 183
7.2.1 数据库设计的含义 183
7.2.2 数据库设计的目标 184
7.2.3 数据库设计的一般过程 184
7.3 关系数据库设计方法 185
7.3.1 数据需求分析 185
7.3.2 概念结构设计 189
7.3.3 逻辑结构设计 195
7.3.4 物理结构设计 198
7.4 数据库设计评价 202
7.4.1 数据库设计评价准则 202
7.4.2 一个通用的分析方法 203
7.4.3 设计策略 204
7.5 用UML设计关系数据库模式 206
小结 207
习题7 207
第8章 数据库的完整性与安全性 209
8.1 概述 209
8.2 数据的完整性约束 210
8.2.1 完整性的语义约束和检查 211
8.2.2 SQL中的完整性约束 212
8.3 数据库的安全性 215
8.3.1 DBMS安全模型 215
8.3.2 视图与安全性 215
8.3.3 访问控制 216
8.3.4 数据密码 218
8.3.5 跟踪审计 220
8.3.6 统计数据库的安全性 221
8.4 数据库的故障与恢复 221
8.4.1 数据库的故障类型 222
8.4.2 恢复机制 222
8.4.3 事务级故障的恢复 225
8.4.4 系统级与介质级故障的恢复 226
8.4.5 SQL对恢复操作的支持 227
小结 229
习题8 230
第9章 网络数据库系统 231
9.1 基于客户机/服务器模式的数据库系统 231
9.1.1 客户机/服务器系统的组成 232
9.1.2 三层结构的客户机/服务器系统 233
9.2 服务器数据库的建立 234
9.2.1 数据库的建立 234
9.2.2 用户注册与授权 238
9.2.3 数据源的建立 242
9.2.4 数据库设计 242
9.3 服务器数据操纵 243
9.3.1 流程控制语言 243
9.3.2 触发器 245
9.3.3 存储过程 248
9.4 数据库访问接口 250
9.4.1 固有调用 250
9.4.2 ODBC 250
9.4.3 JDBC 252
9.5 SQL会话期与调用级接口CLI 253
9.5.1 SQL的会话期 253
9.5.2 调用级接口SQL/CLI 253
9.6 客户端应用系统 255
9.7 基于浏览器/服务器模式的数据库系统 255
9.7.1 浏览器/服务器模式 255
9.7.2 浏览器/服务器系统的工作原理和过程 257
9.7.3 浏览器/服务器系统的工作方式 257
9.7.4 浏览器/服务器系统的实施方案 258
9.7.5 Internet/Interanet信息系统多层体系结构 259
9.8 ASP的数据库访问技术 261
9.8.1 ASP文件 261
9.8.2 服务器组件 263
9.8.3 访问服务器数据库 264
9.8.4 ASP.NET中的数据库访问 265
9.9 JSP的数据库访问技术 268
9.10 XML与数据库 270
9.10.1 XML概述 270
9.10.2 XML存储 273
9.10.3 XML查询 275
9.10.4 XML与数据交换 276
小结 276
习题9 277
第10章 分布式数据库系统 279
10.1 概述 279
10.1.1 什么是分布式数据库系统 279
10.1.2 分布式数据库系统的目标与优点 281
10.2 分布式数据库的模式结构 282
10.2.1 数据分布 282
10.2.2 模式结构 283
10.3 分布式数据库管理系统 285
10.3.1 分布式数据库管理系统的功能与组成 285
10.3.2 分布式数据库管理系统的主要技术问题 286
10.4 分布式查询处理 287
10.4.1 分布式查询的处理过程与特点 287
10.4.2 基于半连接的分布式查询处理 288
10.5 分布式事务模型 289
10.6 并发控制 290
小结 291
习题10 292
第11章 面向对象数据库系统 293
11.1 概述 293
11.1.1 面向对象数据库系统的功能要求 294
11.1.2 面向对象数据库系统的实现途径 294
11.2 面向对象数据模型 294
11.2.1 对象结构 295
11.2.2 对象间的联系 295
11.2.3 对象标识 296
11.2.4 对象参照完整性约束 297
11.3 面向对象数据库语言 297
11.3.1 对象的持久性 298
11.3.2 ODMG-93 299
11.4 面向对象数据库管理系统 301
11.4.1 面向对象数据库管理系统的基本构造 301
11.4.2 存储结构 302
11.4.3 方法的实现 303
11.4.4 长事务 303
11.4.5 版本管理 304
11.5 对象—关系数据库系统 304
11.5.1 对象—关系数据库系统的特征 304
11.5.2 SQL3 307
小结 311
习题11 311
第12章 数据仓库 312
12.1 概述 312
12.1.1 数据仓库的产生 312
12.1.2 数据仓库的定义 313
12.1.3 数据仓库系统的主要特征 314
12.2 数据仓库构造 314
12.2.1 数据仓库系统结构 314
12.2.2 数据仓库模型 316
12.2.3 元数据 318
12.3 联机分析处理OLAP 319
12.3.1 OLAP数据模型 319
12.3.2 OLAP基本操作 320
12.3.3 OLAP实现技术 321
12.4 数据仓库的开发 323
12.4.1 数据仓库开发的流程 323
12.4.2 构造数据仓库的过程 324
12.4.3 执行信息系统 325
12.5 数据挖掘 326
12.5.1 什么是数据挖掘 326
12.5.2 数据挖掘的主要目标与特点 327
12.5.3 数据挖掘模型 328
小结 329
参考文献 330