上篇 基础篇 3
第1章 数据库概论 3
1.1 引言 3
1.2 数据库的由来和发展 4
1.2.1 人工管理阶段 5
1.2.2 文件系统阶段 5
1.2.3 数据库阶段 7
1.2.4 高级数据库阶段 10
1.3 数据描述 11
1.3.1 概念设计中的数据描述 11
1.3.2 逻辑设计中的数据描述 12
1.3.3 物理设计中的数据描述 13
1.3.4 数据联系的描述 14
1.4 数据抽象的级别 16
1.4.1 数据抽象的过程 16
1.4.2 概念模型 17
1.4.3 逻辑模型 18
1.4.4 外部模型 23
1.4.5 内部模型 23
1.4.6 三层模式和两级映像 24
1.4.7 高度的数据独立性 25
1.5 数据库管理系统 26
1.5.1 DBMS的工作模式 26
1.5.2 DBMS的主要功能 27
1.6 数据库系统 28
1.6.1 DBS的组成 28
1.6.2 DBS的全局结构 30
1.6.3 DBS结构的分类 32
1.6.4 应用程序的演变 35
1.6.5 DBS的效益 35
1.7 小结 36
习题1 37
第2章 关系模型和关系运算理论 39
2.1 关系模型的基本概念 39
2.1.1 基本术语 39
2.1.2 关系的定义和性质 40
2.1.3 关系模型的3类完整性规则 41
2.1.4 关系模型的3层体系结构 42
2.1.5 关系模型的形式定义和优点 44
2.1.6 关系查询语言和关系运算 44
2.2 关系代数 45
2.2.1 关系代数的5个基本操作 45
2.2.2 关系代数的4个组合操作 47
2.2.3 关系代数运算的应用实例 49
2.2.4 关系代数的7个扩充操作 50
2.3 关系演算 53
2.3.1 元组关系演算 54
2.3.2 域关系演算 56
2.3.3 关系运算的安全约束和等价性 58
2.4 关系代数表达式的优化 59
2.4.1 关系代数表达式的优化问题 60
2.4.2 关系代数表达式的等价变换规则 60
2.4.3 关系代数表达式的启发式优化算法 62
2.5 关系逻辑 65
2.5.1 关系逻辑的成分 65
2.5.2 规则的安全性 66
2.5.3 从关系代数到关系逻辑的转换 67
2.5.4 递归过程 70
2.5.5 关系逻辑与关系代数的差异 70
2.6 小结 70
习题2 71
第3章 关系数据库语言SQL 74
3.1 SQL简介 74
3.1.1 SQL的产生和发展 74
3.1.2 SQL数据库的体系结构 75
3.1.3 SQL的组成 76
3.1.4 SQL的特点 76
3.2 SQL的数据定义 76
3.2.1 SQL模式的创建和撤销 76
3.2.2 基本数据类型 77
3.2.3 基本表的创建、修改和撤销 78
3.2.4 索引的创建和撤销 80
3.3 SQL的数据查询 81
3.3.1 SELECT查询语句的基本结构 81
3.3.2 SELECT语句的完整结构 87
3.3.3 数据查询中的限制和规定 89
3.3.4 条件表达式中的比较操作 90
3.3.5 嵌套查询的改进写法 94
3.3.6 基本表的连接操作 95
3.3.7 SQL3中的递归查询 96
3.4 SQL的数据更新 97
3.4.1 数据插入 97
3.4.2 数据删除 98
3.4.3 数据修改 99
3.5 视图 100
3.5.1 视图的创建和撤销 100
3.5.2 视图的更新 101
3.6 嵌入式SQL 102
3.6.1 嵌入式SQL的实现方式 102
3.6.2 嵌入式SQL的使用规定 102
3.6.3 嵌入式SQL的使用技术 104
3.6.4 动态SQL语句 107
3.7 存储过程与SQL/PSM 108
3.7.1 数据库存储过程与函数 108
3.7.2 SQL/PSM 110
3.8 小结 111
习题3 112
第4章 关系数据库的规范化设计 116
4.1 关系模式的设计问题 116
4.1.1 关系模式的外延和内涵 116
4.1.2 关系模式的冗余和异常问题 116
4.1.3 关系模式的非形式化设计准则 118
4.1.4 本章的符号规定 118
4.2 函数依赖 118
4.2.1 函数依赖的定义 119
4.2.2 FD的逻辑蕴涵 120
4.2.3 FD的推理规则 120
4.2.4 FD和关键码的联系 122
4.2.5 属性集的闭包 122
4.2.6 FD推理规则的完备性 123
4.2.7 FD集的最小依赖集 123
4.3 关系模式的分解特性 124
4.3.1 模式分解问题 124
4.3.2 无损分解 125
4.3.3 模式分解的优缺点 127
4.3.4 无损分解的测试方法 127
4.3.5 保持函数依赖的分解 129
4.3.6 模式分解与模式等价问题 130
4.4 关系模式的范式 130
4.4.1 第一范式 131
4.4.2 第二范式 131
4.4.3 第三范式 132
4.4.4 BCNF 133
4.4.5 分解成BCNF模式集的分解算法 134
4.4.6 分解成3NF模式集的合成算法 135
4.4.7 模式设计方法小结 135
4.5 模式的进一步规范化处理 135
4.5.1 多值依赖的定义 136
4.5.2 关于FD和MVD的推理规则集 137
4.5.3 第四范式 138
4.5.4 嵌入多值依赖 138
4.5.5 连接依赖和第五范式 139
4.6 小结 141
习题4 142
第5章 数据库设计与ER模型 147
5.1 数据库设计的全过程 147
5.1.1 规划阶段 148
5.1.2 需求分析阶段 148
5.1.3 概念设计阶段 149
5.1.4 逻辑设计阶段 150
5.1.5 物理设计阶段 151
5.1.6 数据库的实现 151
5.1.7 数据库的运行与维护 153
5.2 ER模型 154
5.2.1 ER模型的基本元素 154
5.2.2 属性的分类 156
5.2.3 联系的设计 158
5.2.4 ER模型的操作 161
5.2.5 采用ER模型的数据库概念设计 162
5.3 ER模型到关系模型的转换 168
5.3.1 ER图转换成关系模式集的算法 168
5.3.2 采用ER模型的逻辑设计步骤 171
5.4 ER模型实例分析 171
5.4.1 库存管理信息系统的ER模型及转换 171
5.4.2 公司车队信息系统的ER模型 173
5.4.3 人事管理信息系统的ER模型 174
5.4.4 旅游管理信息系统的ER模型 175
5.5 增强的ER模型 176
5.5.1 弱实体与强实体 176
5.5.2 子类实体与超类实体 177
5.6 小结 178
习题5 179
第6章 数据库的存储结构 182
6.1 文件组织 182
6.1.1 定长记录 182
6.1.2 变长记录 184
6.2 文件结构 187
6.2.1 4种文件结构 187
6.2.2 顺序文件 188
6.2.3 聚集文件 188
6.3 索引技术 189
6.3.1 索引机制 189
6.3.2 有序索引的分类 190
6.3.3 主索引 190
6.3.4 辅助索引 193
6.3.5 B+树索引文件 194
6.3.6 B树索引文件 200
6.4 散列技术 201
6.4.1 散列机制 201
6.4.2 散列索引 204
6.4.3 静态散列中的问题 205
6.4.4 可扩充散列结构 205
6.5 多键访问 210
6.5.1 单键查询的问题 210
6.5.2 网格文件 211
6.5.3 分区散列技术 212
6.6 小结 212
习题6 213
第7章 系统实现技术 216
7.1 事务 216
7.1.1 事务的定义 216
7.1.2 事务的ACID性质 217
7.1.3 事务的状态变迁图 218
7.2 数据库的恢复 219
7.2.1 存储器结构 219
7.2.2 恢复的基本原则和实现方法 221
7.2.3 故障类型和恢复方法 222
7.2.4 检查点技术 223
7.2.5 SQL对事务的支持 224
7.3 数据库的并发控制 224
7.3.1 并发操作带来的3个问题 224
7.3.2 封锁技术 226
7.3.3 封锁带来的问题 229
7.3.4 并发操作的调度 231
7.3.5 SQL对事务并发处理的支持 232
7.3.6 基于时标的并发控制 232
7.4 数据库的完整性 234
7.4.1 完整性子系统 234
7.4.2 SQL中的完整性约束 235
7.4.3 SQL3中的触发器 239
7.5 数据库的安全性 242
7.5.1 安全性问题 242
7.5.2 SQL中的安全性机制 243
7.5.3 常用的安全性措施 246
7.6 小结 249
习题7 250
下篇 发展篇 255
第8章 对象数据库系统 255
8.1 面向对象的数据类型系统 256
8.2 对象联系图 257
8.2.1 对象联系图的成分 257
8.2.2 数据的概化/特化 259
8.3 使用UML类图对概念对象建模 260
8.3.1 统一建模语言概述 260
8.3.2 用类图表达类和关联 260
8.3.3 用类图表达关联类 263
8.3.4 用类图表达概化/特化 264
8.3.5 用类图表达聚合 265
8.4 ORDB的定义语言 266
8.4.1 从关系模型到对象关系模型的演变 266
8.4.2 继承性的定义 268
8.4.3 引用类型的定义 270
8.5 ORDB的查询语言 272
8.5.1 对SELECT语句的新规定 273
8.5.2 嵌套与解除嵌套 274
8.5.3 复合值的创建和查询 275
8.5.4 Oracle中查询的两种技术 276
8.5.5 函数和过程 277
8.6 OODBS的基本概念 281
8.6.1 ODMG标准 282
8.6.2 OODBS的定义 283
8.6.3 OODB的基本概念 283
8.7 ODMG对象模型 285
8.7.1 对象和文字 286
8.7.2 接口、类和继承 287
8.7.3 类外延、关键码和工厂对象 288
8.7.4 ODMG ODL 289
8.8 ODMG OQL 290
8.8.1 OQL中的SELECT语句 291
8.8.2 OQL表达式的附加格式 293
8.8.3 OQL中对象的赋值和建立 295
8.8.4 C++语言的绑定 296
8.9 OODB与RDB、ORDB的比较 297
8.9.1 OODB与RDB在概念设计上的区别 297
8.9.2 OODB与ORDB的比较 298
8.10 小结 299
习题8 300
9.5.3 基于连接的优化方法 321
9.6 分布式数据库中的并发控制和恢复技术 322
9.6.1 DDB中的问题 322
9.6.2 基于数据项识别副本的分布式并发控制 322
9.6.3 基于投票方法的分布式并发控制 323
9.6.4 分布式恢复 324
9.7 小结 324
习题9 325
第9章 分布式数据库系统 303
9.1 DDBS的定义和特点 303
9.1.1 从集中式、分散式到分布式 303
9.1.2 DDBS的定义 304
9.1.3 DDBS的特点 305
9.1.4 DDBS的优缺点 306
9.1.5 DDBS的分类 308
9.2 分布式数据存储 308
9.2.1 数据分片 308
9.2.2 数据分配 309
9.3 DDB的体系结构 310
9.3.1 体系结构 311
9.3.2 分布透明性 313
9.4 DDBMS 314
9.4.1 DDBMS的组成 314
9.4.2 DDBMS的功能 315
9.4.3 DDBMS的组成 315
9.4.4 DDBMS的同构性程度和局部自治性程度 316
9.4.5 FDBS的异构性 317
9.4.6 FDBS的5层模式结构 318
9.5 分布式查询处理 318
9.5.1 查询代价的估算方法 318
9.5.2 基于半连接的优化策略 319
第10章 ODBC技术 327
10.1 中间件 327
10.1.1 中间件的定义 327
10.1.2 中间件的作用 328
10.2 ODBC简介 329
10.2.1 ODBC的概念 329
10.2.2 ODBC的体系结构 330
10.2.3 ODBC的特性 333
10.3 ODBC接口 334
10.3.1 ODBC应用程序的基本流程 334
10.3.2 ODBC句柄 335
10.3.3 数据源的连接与断开 337
10.3.4 SQL语句的执行 337
10.3.5 查询结果的获取 339
10.4 ODBC的符合性级别 340
10.4.1 API符合性的3个级别 340
10.4.2 SQL符合性的3个级别 341
10.4.3 ODBC API与SQL CLI之间的协调 342
10.4.4 SQL CLI与嵌入式SQL的比较 343
10.4.5 SQL CLI的应用 343
10.4.6 典型的数据库应用系统开发工具 347
10.5 小结 347
习题10 348
第11章 XML技术 349
11.1 XML的由来 349
11.1.1 从SGML、HTML到XML 349
11.1.2 XML和HTML的区别 350
11.1.3 XML在数据交换中的作用 352
11.2 XML文档的语法成分 352
11.2.1 XML声明 352
11.2.2 元素 353
11.2.3 属性 355
11.2.4 引用 355
11.2.5 注释 356
11.2.6 名字空间 356
11.3 文档类型定义 357
11.3.1 元素类型声明 357
11.3.2 属性声明 358
11.3.3 DTD的局限性 361
11.4 XML模式 361
11.4.1 XML模式的示例 361
11.4.2 XML模式的基本成分 363
11.4.3 XML模式的优点 366
11.5 XML查询和转换 366
11.5.1 XPath 367
11.5.2 XSLT 369
11.5.3 XQuery 371
11.5.4 XML API 372
11.6 XML数据的存储 373
11.6.1 关系数据库 373
11.6.2 非关系的数据存储 374
11.7 小结 375
习题11 375
第12章 现代信息集成技术 377
12.1 数据仓库 377
12.1.1 DW概述 377
12.1.2 DW的组织结构 380
12.1.3 DW存储的多维数据模型 381
12.1.4 数据处理 383
12.1.5 DW的设计和发展阶段 387
12.2 联机分析处理技术 391
12.2.1 OLAP概述 392
12.2.2 OLAP的数据组织 396
12.2.3 OLAP应用开发实例 398
12.3 数据挖掘 399
12.3.1 DM概述 400
12.3.2 DM与DW、OLAP的联系与区别 401
12.3.3 DM应用过程 402
12.3.4 DM的分析方法和用到的技术 404
12.3.5 DM的应用领域 405
12.4 新决策支持系统概述 406
12.4.1 DSS的发展历程 406
12.4.2 综合DSS的结构图 408
12.5 小结 410
习题12 411
参考文献 413