1 数据库技术概论 1
1.1 引言 1
1.2 数据库的由来和发展 2
1.2.1 人工管理阶段 2
1.2.2 文件系统阶段 2
1.2.3 数据库系统阶段 4
1.2.4 高级数据库技术阶段 8
1.3 数据描述 10
1.3.1 概念设计中的数据描述 10
1.3.2 逻辑设计中的数据描述 10
1.3.3 物理数据描述 11
1.3.4 数据联系的描述 12
1.4 数据模型 14
1.4.1 数据模型的定义、种类和三要素 14
1.4.2 概念数据模型:实体联系模型 14
1.4.3 四种主要的结构数据模型 16
1.5 数据库的三级模式结构 21
1.5.1 三级模式结构的形成 21
1.5.2 三级结构中的五个要素 22
1.5.3 两级数据独立性 23
1.5.4 用户及用户界面 24
1.6 数据库系统结构 24
1.6.1 DBMS 的工作模式 24
1.6.2 DBMS 的主要功能 25
1.6.3 DBS 的组成 27
1.6.4 DBS 的全局结构 29
1.6.5 DBS 的效益 30
1.7 数据库技术的应用 30
小结 31
习题1 32
2 关系运算理论 34
2.1 关系模型 34
2.1.1 关系模型的形式定义 34
2.1.2 关系模型的基本术语 34
2.1.3 关系模型的三类完整性规则 36
2.2 关系代数 37
2.2.1 关系运算和关系查询语言 37
2.2.2 关系代数的五个基本操作 38
2.2.3 关系代数的四个组合操作 39
2.2.4 关系代数表达式及其应用实例 42
2.2.5 关系代数的七个扩充操作 43
2.3 关系演算 46
2.3.1 元组关系演算 46
2.3.2 域关系演算 49
2.3.3 关系运算的安全性和等价性 50
2.4 关系代数表达式的优化 51
2.4.1 关系代数表达式的等价变换规则 52
2.4.2 启发式优化算法 53
2.5 关系逻辑 57
2.5.1 谓词和原子 57
2.5.2 规则和查询 58
2.5.3 规则的安全性 58
2.5.4 从关系代数到关系逻辑 59
2.5.5 递归过程 61
2.5.6 关系逻辑与关系代数的差异 63
小结 63
习题2 64
3 关系数据库语言 SQL 68
3.1 SQL 概况 68
3.1.1 SQL 的发展历程 68
3.1.2 SQL 数据库的体系结构 69
3.1.3 SQL 的特点 70
3.1.4 SQL 的组成 70
3.2 数据查询 71
3.2.1 SELECT 语句的基本句法 71
3.2.2 SELECT 语句完整的句法 76
3.2.3 SELECT 语句中的限定 77
3.2.4 基本表的联接操作 82
3.2.5 SQL3中的递归查询 84
3.3 数据更新 85
3.3.1 数据插入 85
3.3.2 数据删除 86
3.3.3 数据修改 87
3.4 数据定义 88
3.4.1 SQL 模式的管理 88
3.4.2 基本数据类型 89
3.4.3 基本表的管理 89
3.4.4 索引的管理 91
3.4.5 视图的管理 92
3.5 嵌入式 SQL 94
3.5.1 SQL 的运行环境 94
3.5.2 嵌入式 SQL 的使用规定 95
3.5.3 嵌入式 SQL 的使用技术 96
3.5.4 动态 SQL 语句 99
小结 100
习题3 101
4 模式设计理论 105
4.1 关系模式的冗余和异常问题 105
4.2 函数依赖 106
4.2.1 函数依赖的定义 106
4.2.2 FD 和关键码的联系 108
4.2.3 FD 集的闭包 108
4.2.4 FD 的推理规则 108
4.2.5 属性集的闭包 110
4.2.6 FD 集的等价性 110
4.3 模式分解特性 111
4.3.1 关系模式的分解 111
4.3.2 无损分解 112
4.3.3 无损分解的测试方法 113
4.3.4 保持函数依赖的分解 115
4.3.5 模式分解与模式等价问题 116
4.4 范式和规范化方法 116
4.4.1 第一范式(1NF) 117
4.4.2 第二范式(2NF) 117
4.4.3 第三范式(3NF) 118
4.4.4 BCNF(Boyce-Codd NF) 119
4.4.5 分解成 BCNF 模式集的算法 120
4.4.6 分解成3NF 模式集的算法 120
4.4.7 模式设计方法的原则 121
4.5 其他数据依赖和范式 121
4.5.1 多值依赖 121
4.5.2 关于 FD 和 MVD 的推理规则集 122
4.5.3 第四范式 123
4.5.4 嵌入多值依赖 124
4.5.5 联接依赖和第五范式 124
小结 126
习题4 126
5 数据库设计与 ER 模型 130
5.1 数据库设计的过程 130
5.1.1 数据库设计概述 130
5.1.2 规划阶段 131
5.1.3 需求分析阶段 133
5.1.4 概念设计阶段 133
5.1.5 逻辑设计阶段 135
5.1.6 物理设计阶段 137
5.1.7 数据库的实现 137
5.1.8 数据库的运行与维护 139
5.2 ER 模型 140
5.2.1 ER 模型的基本元素 140
5.2.2 属性的分类 142
5.2.3 联系的设计 144
5.2.4 ER 模型的扩充 147
5.2.5 ER 模型的操作 148
5.2.6 采用 ER 方法的概念设计步骤 149
5.3 ER 模型到关系模型的转换 149
5.3.1 ER 图转换成关系模式集的规则 149
5.3.2 转换实例 150
5.3.3 采用 ER 模型的逻辑设计步骤 151
5.4 ER 模型实例分析 152
5.4.1 图书发行系统的 ER 模型及转换 152
5.4.2 证券业务系统的 ER 模型 154
5.4.3 库存管理系统的 ER 模型 154
5.4.4 公司车队信息系统的 ER 模型 155
小结 156
习题5 157
6 系统实现技术 158
6.1 事务 158
6.1.1 事务的定义 158
6.1.2 事务的 ACID 性质 158
6.1.3 事务的状态变迁图 160
6.2 数据库的恢复 161
6.2.1 存储器结构 161
6.2.2 恢复的基本原则和方法 163
6.2.3 故障类型和恢复方法 164
6.2.4 检查点技术 164
6.2.5 SQL 对事务的支持 166
6.3 数据库的并发控制 166
6.3.1 并发操作带来的三个问题 166
6.3.2 封锁技术 169
6.3.3 封锁带来的问题 171
6.3.4 并发操作的调度 173
6.3.5 SQL 中事务的存取模式和隔离级别 174
6.4 数据库的完整性 175
6.4.1 完整性子系统和完整性规则 175
6.4.2 SQL 中的完整性约束 175
6.4.3 SQL3中的触发器 179
6.5 数据库的安全性 182
6.5.1 安全性问题 182
6.5.2 SQL 中的安全性机制 183
6.5.3 常用的安全性措施 185
小结 188
习题6 188
7 对象数据库系统 190
7.1 对象联系图 190
7.1.1 关系模型的发展 190
7.1.2 引用类型 192
7.1.3 对象联系图的成分 193
7.1.4 继承性 194
7.2 面向对象的类型系统 195
7.3 ORDB 的定义语言 196
7.3.1 ORDBS 的定义 197
7.3.2 数据类型的定义 197
7.3.3 继承性的定义 198
7.3.4 引用类型的定义 199
7.3.5 SQL3中的定义语言 200
7.4 ORDB 的查询语言 201
7.4.1 以关系为值的属性 201
7.4.2 路径表达式 202
7.4.3 Oracle 中查询的两种技术 203
7.4.4 嵌套与解除嵌套 204
7.4.5 函数的定义和使用 205
7.4.6 复合值的创建和查询 206
7.5 OODBS 的基本概念 206
7.5.1 ODMG 组织和标准 206
7.5.2 OODBS 的定义 207
7.5.3 面向对象数据模型的概念 207
7.6 ODMG93和持久化 C++系统 211
7.6.1 持久化程序设计语言 211
7.6.2 ODMG C++对象定义语言 213
7.6.3 ODMG C++对象操作语言 214
7.7 ODMG97和对象语言 215
7.7.1 ODMG 数据模型 215
7.7.2 ODMG ODL 216
7.7.3 ODMG OQL 217
7.8 OODB 与 ORDB 的比较 222
小结 223
习题7 224
8 分布计算 226
8.1 “分布计算”概念 226
8.2 客户机/服务器系统的计算模式 228
8.2.1 C/S 结构的工作模式 228
8.2.2 C/S 环境下应用成分的分布 228
8.2.3 C/S 主要技术特征 229
8.3 客户机/服务器系统的结构 229
8.3.1 C/S 系统的体系结构 229
8.3.2 C/S 结构的演变 231
8.3.3 网络服务器的类型 233
8.3.4 C/S 系统的管理问题 234
8.4 分布式数据库系统的基本概念 235
8.4.1 集中式系统与分布式系统 236
8.4.2 DDBS 的定义 236
8.4.3 DDBS 的特点和优缺点 237
8.4.4 DDBS 的分类 240
8.4.5 分布式数据存储 240
8.5 分布式数据库系统的体系结构 242
8.5.1 六层模式 242
8.5.2 六层模式的特征 244
8.5.3 分布透明性 245
8.6 分布式数据库管理系统 246
8.6.1 DDBS 的组成 246
8.6.2 DDBMS 的功能 246
8.6.3 DDBMS 的组成 247
8.7 分布式查询处理 248
8.7.1 查询代价的估算方法 248
8.7.2 基于半联接的优化策略 249
8.7.3 基于联接的优化策略 251
小结 252
习题8 253
9 ODBC 和 JDBC 254
9.1 中间件 254
9.2 ODBC 结构 255
9.2.1 ODBC 概念 255
9.2.2 ODBC 的体系结构 256
9.3 ODBC 接口 260
9.3.1 ODBC 应用程序的基本流程 260
9.3.2 ODBC 句柄 260
9.3.3 ODBC 连接 263
9.3.4 SQL 语句的执行 263
9.3.5 查询结果的获取 265
9.4 ODBC 的符合性级别 266
9.4.1 API 符合性的三个级别 266
9.4.2 SQL 符合性的三个级别 267
9.4.3 ODBC API 与 SQL CLI 268
9.4.4 典型的数据库应用系统开发工具 269
9.5 JDBC 概念 271
9.5.1 JDBC 的基本功能 272
9.5.2 JDBC 与 CGI 的比较 273
9.6 JDBC 的结构 274
9.6.1 JDBC 数据库设计方法 274
9.6.2 保持一致性的措施 275
9.6.3 JDBC 驱动程序 276
9.7 JDBC API 277
9.7.1 JDBC API 的目标 277
9.7.2 JDBC API 接口概貌 278
9.7.3 JDBC 数据库应用程序的编写 279
小结 282
习题9 282
10 数据库与 WWW 284
10.1 网络基本概念 284
10.1.1 Internet 284
10.1.2 WWW 285
10.1.3 网络协议模型 286
10.2 WWW 与数据库 288
10.2.1 WWW 与数据库的结合 288
10.2.2 WWW 与数据库交互的方法 289
10.2.3 CGI、JDBC 和 API 的比较 291
10.3 公共网关接口 292
10.3.1 CGI 程序 292
10.3.2 CGI 特点 294
10.4 安全性问题 295
10.4.1 Web 安全性问题 296
10.4.2 安全的 HTTP——S-HTTP 298
10.4.3 安全接插层 300
10.4.4 CGI 的安全性 302
10.4.5 Java 的安全性 303
小结 303
习题10 304
11 Oracle Web 数据库的开发 305
11.1 Oracle WebServer 体系结构 305
11.1.1 基本的 WebServer 体系结构 305
11.1.2 三种版本的 WebServer 体系结构 306
11.1.3 WebServer 的基本成分解释 308
11.2 WebServer 的 htp 和 OWA 实用工具 309
11.3 WebServer 的 PL/SQL 和存储过程 311
11.3.1 PL/SQL 的语法结构 311
11.3.2 PL/SQL 和存储过程 313
11.4 WebServer 和 Java 之间的联系 316
11.5 WebServer 和 LiveHTML 之间的联系 319
11.6 WebServer 的并发管理 322
11.6.1 WebServer 更新和并发性 322
11.6.2 Oracle 数据库封锁 323
11.6.3 为 WebServer 选择完整性 325
11.7 安全性问题 327
11.7.1 WebServer 的安全性 327
11.7.2 Oracle 的安全性 328
11.8 使用 Net8进行 WebServer 通信 334
11.8.1 Oracle 部件的层次 334
11.8.2 与数据库的连接 339
11.8.3 Oracle Net8的部件 340
小结 341
习题11 341
12 多媒体数据库 342
12.1 多媒体数据管理技术 342
12.1.1 媒体和多媒体 342
12.1.2 多媒体数据的特征 343
12.1.3 数据管理准备 343
12.2 多媒体数据库技术 345
12.2.1 多媒体数据库的特征 345
12.2.2 媒体独立性概念 347
12.3 多媒体数据模型 347
12.4 多媒体数据库管理体系 349
12.4.1 多媒体数据库管理系统的基本功能 349
12.4.2 多媒体数据库管理系统的体系结构 351
12.5 多媒体数据库查询 353
12.5.1 多媒体数据库查询例子 354
12.5.2 多媒体数据库查询类型 354
12.5.3 查询过程的选择 355
12.5.4 查询管理 356
12.6 多媒体数据库查询语言 356
12.6.1 SQL/MM 查询语言 357
12.6.2 PICQUERY+查询语言 359
12.6.3 VIDEO SQL 360
小结 361
习题12 361
主要参考文献 362