第1章 数据库系统概述 1
1.1 引言 1
1.1.1 数据管理技术的发展 1
1.1.2 数据库技术的基本概念 4
1.2 数据描述 5
1.2.1 数据与信息 5
1.2.2 现实世界的数据描述 6
1.2.3 数据之间的联系 7
1.3 实体-联系模型 8
1.3.1 实体-联系模型的基本要素 8
1.3.2 实体-联系图 10
1.3.3 实体和属性的确定准则 11
1.3.4 实体-联系模型设计中的一些特殊情况 12
1.4 数据模型 17
1.4.1 层次模型 17
1.4.2 网状模型 18
1.5 关系模型 20
1.5.1 关系模型的基本概念 20
1.5.2 关系的定义 22
1.5.3 关系的键 23
1.5.4 实体-联系模型向关系模型的转换 23
1.6 数据库的结构 25
1.6.1 数据库的三级模式结构 25
1.6.2 概念模式 26
1.6.3 外模式 27
1.6.4 内模式 28
1.6.5 数据库的体系结构 28
1.7 数据语言 30
1.7.1 数据描述语言 30
1.7.2 数据操作语言 30
1.7.3 宿主系统 30
1.7.4 应用程序 31
习题1 31
第2章 关系运算 33
2.1 关系代数 33
2.1.1 关系代数的五种基本运算 33
2.1.2 可以用五种基本运算表示的其它代数运算 35
2.1.3 扩充的关系代数运算 39
2.1.4 关系代数运算在关系数据库查询操作中的应用 41
2.2 关系演算 43
2.2.1 元组关系演算 43
2.2.2 域关系演算 48
2.3 三种关系运算表达能力的等价性 50
2.3.1 关系代数表达式与元组演算表达式的等价性 50
2.3.2 元组演算表达式与域演算表达式的等价性 53
2.3.3 域演算表达式与关系代数表达式的等价性 53
2.4 基于关系运算的关系数据库语言简介 57
2.4.1 基于关系代数的语言ISBL 57
2.4.2 基于域演算的语言QBE 58
2.4.3 SQL语言 60
习题2 60
第3章 关系数据库语言SQL 63
3.1 表的基本操作 63
3.1.1 表的定义、修改与撤消 63
3.1.2 数据的插入、修改、删除、提交与撤消 68
3.2 SQL的数据查询 71
3.2.1 简单查询 71
3.2.2 SQL语言中的常用函数及其使用方式 76
3.2.3 SQL高级查询技术 80
3.3 SQL的视图操作 86
3.3.1 视图的概念 86
3.3.2 视图的定义 87
3.3.3 在视图上进行查询操作 88
3.3.4 在视图上进行数据更新 88
3.3.5 视图的撤消 88
3.3.6 用户视图对数据库系统设计和系统性能带来的影响 89
3.4 SQL的数据更新 89
3.4.1 数据插入操作 89
3.4.2 数据更新操作 90
3.5 嵌入式SQL 91
3.5.1 嵌入式SQL的概念 91
3.5.2 嵌式SQL遇到的问题 91
3.5.3 嵌入式SQL的实现 92
3.5.4 SQL语句的嵌入形式 92
3.5.5 宿主程序的组成与结构 92
3.5.6 数据更新及其嵌入式SQL应用程序设计 97
3.5.7 数据查询及其嵌入式SQL应用程序设计 99
3.5.8 动态嵌入式SQL技术 102
习题3 107
第4章 改善数据库的查询性能 109
4.1 改善数据库查询性能的途径 109
4.2 索引技术 110
4.2.1 索引的概念 110
4.2.2 线性索引 111
4.2.3 B-树 112
4.2.4 B+树 114
4.2.5 SQL语言中的索引及其操作 118
4.3 查询优化 120
4.3.1 查询优化问题的提出 120
4.3.2 优化的一般策略 122
4.3.3 关系代数表达式的等价变换规则 122
4.3.4 关系表达式的优化算法 124
习题4 128
第5章 关系数据库设计理论 129
5.1 关系模式设计中的问题 129
5.1.1 泛关系与数据库模式 129
5.1.2 关系模式的操作异常 130
5.2 函数依赖 131
5.2.1 函数依赖的定义 131
5.2.2 函数依赖的逻辑蕴涵 132
5.2.3 键 133
5.2.4 关系的约束与关系的表示 134
5.3 函数依赖的公理体系 134
5.3.1 Armstrong公理 134
5.3.2 公理的推论 135
5.3.3 公理的完备性 136
5.3.4 闭包的计算 137
5.3.5 函数依赖集的等价与覆盖 139
5.3.6 最小函数依赖集 139
5.4 关系模式的分解 141
5.4.1 关系模式分解的概念 141
5.4.2 无损联接分解 142
5.4.3 保持依赖的分解 148
5.5 关系模式的规范化 149
5.5.1 第一范式(1NF) 149
5.5.2 第二范式(2NF) 150
5.5.3 第三范式(3NF) 151
5.5.4 鲍依斯-柯德范式(BCNF) 152
5.5.5 向3NF的模式分解算法 153
5.5.6 向BCNF的模式分解算法 156
5.6 多值依赖与第四范式 158
5.6.1 多值依赖的定义 158
5.6.2 多值依赖的公理体系 160
5.6.3 多值依赖公理的推论 160
5.6.4 依赖基 161
5.6.5 无损联接 162
5.6.6 第四范式 162
5.7 联接依赖与第五范式 163
习题5 165
第6章 数据库管理系统 168
6.1 数据库系统的视图级别与数据库管理员 168
6.2 DBMS的功能 170
6.2.1 DBMS的基本功能 170
6.2.2 数据字典与数据字典系统 170
6.3 DBMS的组成 173
6.3.1 DBMS的组成模块 173
6.3.2 DBMS的层次结构 175
6.4 DBMS与OS的关系 177
6.4.1 DBMS的存取控制及其与OS的关系 177
6.4.2 DBMS的进程结构 178
6.5 访问数据库数据的过程 179
6.6 关系型DBMS的十二条准则 180
6.6.1 RDBMS的十二条准则 180
6.6.2 RDBMS产品的发展 181
习题6 182
第7章 数据库的保护、控制与实现技术 183
7.1 事务 183
7.1.1 事务的概念及其特性 183
7.1.2 事务的提交与回退 184
7.2 数据库的安全性 185
7.2.1 对数据库安全的威胁 186
7.2.2 DBMS的安全性级别与评估标准 187
7.2.3 数据库安全控制 189
7.2.4 视图机制 194
7.2.5 审计 195
7.2.6 数据加密 196
7.3 数据库的完整性 196
7.3.1 完整性约束条件 197
7.3.2 完整性控制 200
7.3.3 ORACLE完整性控制 202
7.4 数据库恢复 206
7.4.1 数据库的故障分类 206
7.4.2 数据库的基本恢复方式 207
7.4.3 恢复策略 209
7.4.4 具有检查点的恢复技术 210
7.4.5 数据库镜像 212
7.5 并发控制 213
7.5.1 数据库并发操作带来的数据不一致性问题 213
7.5.2 锁 215
7.5.3 锁协议 216
7.5.4 活锁和死锁 217
7.5.5 并发调度的可串行性 218
7.5.6 两段锁协议 219
7.5.7 锁的粒度 220
习题7 222
第8章 数据库应用系统设计 224
8.1 数据库应用系统设计概述 224
8.2 数据库设计规划 226
8.3 用户需求分析 227
8.3.1 用户需求分析过程 227
8.3.2 数据流图 229
8.3.3 数据字典 229
8.4 概念结构设计 231
8.4.1 概念结构设计的步骤和方法 231
8.4.2 E-R模型的操作 233
8.5 逻辑结构设计 235
8.5.1 E-R图向关系模型的转换 236
8.5.2 关系数据模型的规范化设计 237
8.5.3 关系数据模型的优化 238
8.6 物理结构设计 238
8.6.1 ORACLE数据库的存储结构 238
8.6.2 ORACLE数据库的组织方式 241
8.6.3 ORACLE数据库的存储空间管理 243
8.6.4 数据库物理存储结构的设计 245
8.7 数据库物理存储模式创建 247
8.8 数据库应用行为设计 247
8.9 数据库的运行与系统维护 249
习题8 249
第9章 高等数据库体系结构与访问技术 251
9.1 数据库体系结构的发展 251
9.1.1 主机-终端结构的数据库系统 251
9.1.2 客户机/服务器结构的数据库系统 251
9.1.3 浏览器/服务器结构的数据库系统 253
9.2 客户机/服务器结构的数据库系统 253
9.2.1 客户机/服务器结构的组成 253
9.2.2 客户机/服务器结构中的服务器类型 253
9.2.3 客户机/服务器结构数据库系统的组成与实现思想 254
9.2.4 客户机与数据库服务器的连接与内部结构 255
9.2.5 两层客户机/服务器结构数据库系统的优点及存在的问题 255
9.2.6 三层客户机/服务器结构的数据库系统 257
9.3 浏览器/服务器结构的数据库系统 258
9.3.1 三层浏览器/服务器结构的数据库系统 258
9.3.2 多层浏览器/服务器结构的数据库系统 259
9.3.3 浏览器/服务器结构数据库系统的优点 259
9.4 数据库访问接口 260
9.4.1 问题的提出 260
9.4.2 ODBC的组成与结构 260
9.4.3 ODBC的接口函数 262
9.4.4 ODBC的基本工作流程 263
习题9 263
第10章 分布式数据库系统 265
10.1 分布式数据库系统概述 265
10.1.1 分布式数据库系统的定义及其理论基础 265
10.1.2 分布式数据库系统的特点 266
10.1.3 分布式数据库系统得以发展的技术和应用背景 267
10.1.4 分布式数据库系统的分类 268
10.1.5 分布式数据库系统的目标 268
10.1.6 分布式数据库管理系统的组成 269
10.1.7 分布式数据库系统的参考体系结构 270
10.2 分布式查询及优化 272
10.2.1 数据分片 272
10.2.2 数据分配 273
10.2.3 全局查询到片段查询的转换 274
10.2.4 分布式查询策略的重要性及分布查询处理步骤 278
10.2.5 基于半联接的分布式查询优化策略 279
10.3 分布式并发控制、恢复及安全性 280
10.3.1 分布式事务与两阶段提交协议 280
10.3.2 分布式并发控制的主要技术 283
10.4 分布式数据库系统应用程序设计 287
10.4.1 分布式数据库系统的体系结构 287
10.4.2 分布式数据库系统的设计方法 288
10.4.3 分布式数据库系统与Client/Server体系结构 289
10.4.4 客户/服务器结构分布式数据库应用程序开发策略 290
10.4.5 多层分布式结构技术 290
10.5 分布式数据库系统存在的问题及发展展望 292
习题10 293
第11章 数据库技术的新发展 295
11.1 数据库新技术的研究与发展 295
11.1.1 新应用领域对数据库技术的需求 295
11.1.2 关系数据库系统的局限性 296
11.1.3 数据库技术的新发展 297
11.2 面向对象数据库系统 298
11.2.1 对象的逻辑结构 298
11.2.2 对象间的限制和联系 298
11.2.3 面向对象数据库管理系统的基本要求 299
11.2.4 面向对象数据库管理系统的组成 300
11.2.5 面向对象数据库系统的实现途径 301
11.2.6 面向对象数据库系统的优越性 302
11.3 多媒体数据库 302
11.3.1 多媒体数据处理和数据管理的新技术要求 302
11.3.2 多媒体数据库管理系统的组织结构 303
11.3.3 多媒体数据库的研究现状和有待进一步研究的技术问题 304
11.4 主动数据库 305
11.4.1 主动数据库的知识模型 305
11.4.2 主动数据库系统的组成 306
11.4.3 主动数据库管理系统的功能 307
11.4.4 主动数据库的实现 307
11.4.5 事件知识库的实现 308
11.4.6 事件监视器的实现 308
11.4.7 主动数据库系统的现状和有待进一步研究的问题 308
11.5 数据仓库技术 309
11.5.1 数据仓库技术的基本思想 309
11.5.2 数据仓库的数据组织 309
11.5.3 数据仓库的体系结构 310
11.5.4 数据仓库的基本特征 313
习题11 314
参考文献 315