书籍详情
数据库系统基础
作者:(美)Ramez Elmasri,(美)Shamkant B.Navathe著;邵佩英,张坤龙等译
出版社:人民邮电出版社
出版时间:2002-01-01
ISBN:9787115103536
定价:¥70.00
购买这本书可以去
内容简介
本书包括6部分内容和4个附录。第一部分介绍数据库设计技术两极(概念建模原理和物理文件存储技术) 的基本概念。第二到第五部分对数据库系统基本原理最重要的方面进行了深入的讨论。第二部分描述关系数据模型和关系数据库管理系统,第三部分全面介绍对象数据库和对象-关系系统,第四部分包括与数据库设计相关的若干主题,第五部分讨论用于实现数据库管理系统的技术。第六部分介绍有影响的新数据库模型以及新兴的技术和应用。附录A给出许多可选用的显示ER或EER模式的图形记号,附录B给出磁盘的一些重要物理参数,附录C和D介绍基于网状数据库模型和层次数据库模型的传统数据库系统。本书可以作为一个学期的课程,第5、6、16、17、26和27章可指定为阅读材料。本书也可以用于两个学期的课程:第一个学期的课程,“数据库设计/系统导论”,在大学二、三或四年级讲授,可包括第1章到第15章的大部分内容;第二个学期的课程,“数据库设计和实现技术”,在四年级或研究生一年级讲授,可包括书中第四部分到第六部分。对于高级的数据库课程,第六部分也可和其他指定阅读材料一起,用作导论性的材料。本书也是从事数据库技术研究和应用开发人员难得的一本系统而全面的参考书。
作者简介
Ramez A.Elmasri是阿灵顿Texas大学计算机科学与工程系的教授。Elmasri教授以前在Honeywell公司和Houston大学工作。他曾是《Journal of Parallel and Distributed Databases》的编辑,并且是概念模型国际会议的指导委员会成员。他是1993年实体联系方法国际会议的程序主席。在过去的20年中,他从事的研究由NSF、NASA、ARRI、Texas Instruments、Honeywell公司、DEC公司和Texas州所资助,这些研究包括了数据库系统的许多领域,以及系统和软件集成领域。Elmasri教授曾获得阿耿顿Texas大学工程学院的Robtrt Q.Lee教学奖。他在Standford大学获得博士学位。并且在杂志和会议刊物上发表了70多篇文章。SHamkant Navathe是教授,并且Georgia理工学院计算学院的数据库研究组的负责人。Navathe教授以前工作于IBM和西门子公司的研究部门,同时是包括DEC公司、HP公司和Ewquifax公司在内的许多公司的顾问。他曾是《ACM COMputeing Survey》和《IEEE Transactions on Knowledge and Data Engineering》杂与的助理编辑,当前是《Information Systems》和《Distributed and Parallel Databases》的编委。他和Carlo Batini,Stefano Ceri是《Conceptural Design:An Entity Relationship Approach》一书的作著。Navathe教授在Michigan大学获得博士学位,并且在杂志和会议刊物上发表了100多篇文章。
目录
第一部分 基本概念
第1章 数据库与数据库用户 3
1.1 引言 3
1.2 一个例子 5
1.3 数据库方法的特征 7
1.3.1 数据库系统自描述特性 7
1.3.2 程序与数据分离以及数据抽象 7
1.3.3 支持数据的多视图 9
1.3.4 数据共享和多用户事务处理 9
1.4 数据库舞台上的角色 9
1.4.1 数据库管理员 10
1.4.2 数据库设计者 10
1.4.3 最终用户 10
1.4.4 系统分析员和应用程序员(软件工程师) 11
1.5 幕后人员 11
1.6 使用数据库的优势 11
1.6.1 控制冗余 12
1.6.2 限制未授权的访问 13
1.6.3 为程序对象和数据结构提供持久性存储 13
1.6.4 允许推理和使用规则的动作 13
1.6.5 提供多用户接口 14
1.6.6 表示数据间复杂联系 14
1.6.7 执行完整性约束 14
1.6.8 提供备份和恢复功能 14
1.7 数据库方法的潜在意义 15
1.8 什么时候不应该使用DBMS 15
1.9 本章小结 16
第2章 数据库系统的概念和体系结构 18
2.1 数据模型. 模式和实例 18
2.1.1 数据模型的分类 19
2.1.2 模式. 实例和数据库状态 19
2.2 DBMS体系结构和数据独立性 21
2.2.1 三层模式体系结构 21
2.2.2 数据独立性 22
2.3 数据库语言和接口 23
2.3.1 DBMS的语言 23
2.3.2 DBMS接口 24
2.4 数据库系统的环境 24
2.4.1 DBMS的组成模块 25
2.4.2 数据库系统工具 26
2.4.3 工具. 应用环境和通讯软件 26
2.5 数据库管理系统的分类 27
2.6 本章小结 28
第3章 使用实体-联系模型的数据建模 31
3.1 使用高级概念模型进行数据库设计 31
3.2 一个数据库应用实例 33
3.3 实体类型. 实体集. 属性和码 34
3.3.1 实体和属性 34
3.3.2 实体类型. 实体集. 码和值集 36
3.3.3 COMPANY数据库的初步概念设计 38
3.4 联系. 联系类型. 角色和结构约束 39
3.4.1 联系类型. 联系集和联系实例 39
3.4.2 联系度. 角色名称和递归联系 40
3.4.3 联系类型的约束 42
3.4.4 联系类型的属性 43
3.5 弱实体类型 44
3.6 COMPANY数据库E-R设计的改进 45
3.7 ER图. 命名规则及设计问题 46
3.7.1 ER图表示法的小结 46
3.7.2 模式结构的正确命名 46
3.7.3 E-R概念设计的设计选择 47
3.7.4 ER图的其他表示法 48
3.8 本章小结 49
第4章 增强的实体-联系和对象建模 54
4.1 子类. 超类和继承 55
4.2 特化和泛化 56
4.3 特化和泛化的约束和特性 59
4.4 采用范畴的UNION类型建模 63
4.5 实例UNIVERSITY的EER模式和EER模型的规范定义 66
4.6 采用UML类图的概念对象建模 68
4.7 高于2度的联系类型 70
4.8 数据抽象和知识表示的概念 73
4.8.1 分类和实例化 74
4.8.2 标识 74
4.8.3 特化和泛化 75
4.8.4 聚合和关联 75
4.9 本章小结 76
第5章 记录存储和主文件组织 82
5.1 概述 82
5.1.1 存储层次和存储设备 83
5.1.2 数据库的存储 84
5.2 二级存储设备 84
5.2.1 磁盘设备的硬件性质 85
5.2.2 磁带存储设备 88
5.3 使用RAID技术的并行磁盘访问 89
5.3.1 用RAID增强可靠性 90
5.3.2 用RAID改善性能 91
5.3.3 RAID组织体系和级别 91
5.4 块缓冲 92
5.5 把文件记录保存在磁盘上 94
5.5.1 记录和记录类型 94
5.5.2 文件. 定长记录和变长记录 94
5.5.3 块. 跨块记录与非跨块记录 96
5.5.4 在磁盘上分配文件块 97
5.5.5 文件头部 97
5.6 文件操作 97
5.7 无序记录文件(堆文件) 99
5.8 有序记录文件(排序文件) 100
5.9 散列技术 102
5.9.1 内部散列 102
5.9.2 磁盘文件的外部散列法 104
5.9.3 允许文件动态扩展的散列技术 106
5.10 其他主文件组织 108
5.10.1 混合记录文件 108
5.10.2 B-树和其他数据结构 109
5.11 本章小结 109
第6章 文件索引结构 114
6.1 单级有序索引的类型 114
6.1.1 主索引 115
6.1.2 聚簇索引 117
6.1.3 辅助索引 117
6.1.4 小结 122
6.2 多级索引 122
6.3 使用B-树与B+-树的动态多级索引 125
6.3.1 搜索树和B-树 125
6.3.2 B+-树 129
6.4 多码上的索引 136
6.4.1 多属性上的有序索引 136
6.4.2 分区散列法 136
6.4.3 网格文件 137
6.5 其他类型的索引 137
6.5.1 使用散列和其他数据结构作为索引 137
6.5.2 逻辑索引与物理索引 138
6.5.3 讨论 138
6.6 本章小结 139
第二部分 关系模型. 语言及系统
第7章 关系数据模型. 关系约束和关系代数 145
7.1 关系模型概念 145
7.1.1 域. 属性. 元组和关系 146
7.1.2 关系的特性 147
7.1.3 关系模型的符号 149
7.2 关系约束和关系数据库模式 149
7.2.1 域约束 150
7.2.2 码约束和空值约束 150
7.2.3 关系数据库和关系数据库模式 151
7.2.4 实体完整性. 参照完整性和外码 153
7.3 更新操作和处理约束破坏 154
7.3.1 插入操作 155
7.3.2 删除操作 155
7.3.3 更新操作 156
7.4 基本关系代数操作 156
7.4.1 选择操作 157
7.4.2 投影操作 158
7.4.3 操作序列和更名操作 159
7.4.4 集合操作 160
7.4.5 连接操作 163
7.4.6 关系代数操作的完备集 165
7.4.7 除操作 165
7.5 附加关系操作 167
7.5.1 聚集函数和分组 167
7.5.2 递归闭包操作 168
7.5.3 外连接和外并操作 169
7.6 关系代数查询举例 170
7.7 本章小结 172
第8章 SQL-关系数据库的标准 179
8.1 SQL2中的数据定义. 约束和模式变更 180
8.1.1 SQL2中模式和目录的概念 180
8.1.2 CREATE TABLE命令. SQL2的数据类型和约束条件 180
8.1.3 DROP SCHEMA和DROP TABLE命令 184
8.1.4 ALTER TABLE 命令 184
8.2 SQL中的基本查询 185
8.2.1 SQL查询的SELECT-FROM-WHERE结构 185
8.2.2 处理多义属性名和更名(别名) 187
8.2.3 未指定WHERE子句的查询语句和星号(*)的用法 188
8.2.4 SQL中作为集合的表 189
8.2.5 子串比较. 算术操作符和排序 190
8.3 更复杂的SQL查询 192
8.3.1 嵌套查询和集合比较 192
8.3.2 SQL中的EXISTS和UNIQUE函数 194
8.3.3 SQL中的显式集合和NULL 196
8.3.4 重新命名属性和连接表 197
8.3.5 聚集函数和分组 198
8.3.6 SQL查询的讨论和小结 202
8.4 SQL中的插入. 删除和更新语句 203
8.4.1 INSERT命令 203
8.4.2 DELETE命令 204
8.4.3 UPDATE命令 205
8.5 SQL中的视图(虚表) 205
8.5.1 SQL中视图的概念 205
8.5.2 SQL中的视图说明 206
8.5.3 视图的实现和视图的更新 207
8.6 指定一般约束作为断言 208
8.7 SQL的其他特性 209
8.8 本章小结 210
第9章 ER模型和EER模型到关系模型的映射以及其他关系语言 214
9.1 使用ER模型到关系模型的映射进行关系数据库设计 214
9.1.1 ER模式映射到关系模式的算法 215
9.1.2 ER模型和关系模型之间的对应关系 218
9.2 将EER模型的概念映射为关系 218
9.2.1 超类/子类联系和特化(或泛化) 218
9.2.2 共享子类的映射 220
9.2.3 范畴的映射 220
9.3 元组关系演算 221
9.3.1 元组变量和值域关系 222
9.3.2 元组关系演算中的表达式和公式 223
9.3.3 存在量词和全称量词 223
9.3.4 使用存在量词的查询实例 224
9.3.5 全称量词和存在量词的转换 225
9.3.6 全称量词的使用 225
9.3.7 安全表达式 227
9.3.8 SQL中的量词 227
9.4 域关系演算 227
9.5 QBE语言概述 229
9.5.1 QBE中的基本查询 230
9.5.2 QBE中的分组. 聚集和数据库修改 233
9.6 本章小结 234
第10章 关系数据库管理系统实例:Oracle和Microsoft Access 238
10.1 关系数据库管理系统的发展历史 238
10.2 Oracle系统的基本结构 239
10.2.1 Oracle数据库结构 239
10.2.2 Oracle进程 241
10.2.3 Oracle的启动和关闭 242
10.3 Oracle数据库结构和操作 242
10.3.1 模式对象 242
10.3.2 Oracle数据字典 243
10.3.3 Oracle中的SQL 244
10.3.4 Oracle 8中的方法 245
10.3.5 触发器 245
10.4 Oracle中的存储组织 245
10.4.1 数据块 246
10.4.2 盘区 247
10.4.3 段 247
10.5 Oracle应用程序设计 248
10.5.1 PL/SQL程序设计 248
10.5.2 PL/SQL中的游标 250
10.5.3 PRO*C举例 252
10.6 Oracle工具 254
10.7 Microsoft Access概述 254
10.7.1 Access的结构 255
10.7.2 Access数据库的数据定义 255
10.7.3 定义联系和参照完整性约束 256
10.7.4 Access中的数据操纵 258
10.8 Access的特征和功能 259
10.8.1 窗体 259
10.8.2 报表 260
10.8.3 宏和Access Basic 261
10.8.4 附加的特征 262
10.9 本章小结 262
第三部分 面向对象与扩展关系数据库技术
第11章 面向对象数据库的概念 267
11.1 面向对象的概念 268
11.2 对象标识. 对象结构和类型构造器 270
11.2.1 对象标识 270
11.2.2 对象结构 271
11.2.3 类型构造器 272
11.3 操作. 方法和持久性封装 274
11.3.1 通过类操作指定对象行为 274
11.3.2 通过命名和可达性定义对象的持久性 276
11.4 类型层次和类型继承 277
11.4.1 类型层次和类型继承 277
11.4.2 与类型层次对应的类外延约束 279
11.5 复杂对象 280
11.5.1 非结构化复杂对象和类型可扩展性 280
11.5.2 结构化复杂对象 281
11.6 其他面向对象的概念 281
11.6.1 多态性(操作符重载) 281
11.6.2 多重继承和选择性继承 282
11.6.3 版本和配置 283
11.7 本章小结 283
第12章 对象数据库标准. 语言和设计 286
12.1 ODMG对象模型概述 287
12.1.1 对象和文字 287
12.1.2 汇集对象的内建接口 291
12.1.3 原子(用户定义的)对象 293
12.1.4 接口. 类和继承 294
12.1.5 类外延. 码以及工厂对象 295
12.2 对象定义语言 296
12.3 对象查询语言 301
12.3.1 简单OQL查询. 数据库入口点以及迭代变量 301
12.3.2 查询结果和路径表达式 302
12.3.3 OQL的其他特征 304
12.4 C++语言绑定概述 307
12.5 对象数据库概念设计 308
12.5.1 ODB与RDB概念设计之间的区别 308
12.5.2 EER模式到ODB模式的映射 308
12.6 ODBMS的例子 310
12.6.1 O2系统概述 310
12.6.2 ObjectStore系统概述 313
12.7 关于分布式对象的CORBA标准概述 318
12.8 本章小结 320
第13章 对象关系和扩展关系数据库系统 322
13.1 数据库技术的演变和当前趋势 322
13.1.1 数据库系统技术的演变 322
13.1.2 当前数据库系统技术的动力 323
13.2 Informix Universal Server 323
13.2.1 可扩展的数据类型 324
13.2.2 对用户定义例程的支持 326
13.2.3 对继承的支持 326
13.2.4 对索引扩展的支持 328
13.2.5 对外部数据源的支持 328
13.2.6 对数据刀片应用编程接口的支持 328
13.3 Oracle 8的对象-关系特征 331
13.3.1 Oracle对象关系特征的例子 331
13.3.2 大对象的管理以及其他存储特征 333
13.4 SQL3概述 333
13.4.1 SQL3标准及其组成 333
13.4.2 SQL3中一些新的操作和特征 334
13.4.3 SQL3中的对象关系支持 335
13.5 扩展类型系统的实现以及相关问题 338
13.6 嵌套关系数据模型 339
13.7 本章小结 341
第四部分 数据库设计理论及方法
第14章 函数依赖和关系数据库的规范化 345
14.1 关系模式的非形式化设计准则 346
14.1.1 关系属性的语义 346
14.1.2 元组中的冗余信息和更新异常 349
14.1.3 元组中的空值 350
14.1.4 寄生元组的生成 351
14.1.5 设计准则的总结和讨论 353
14.2 函数依赖 353
14.2.1 函数依赖的定义 353
14.2.2 函数依赖的推理规则 354
14.2.3 函数依赖集的等价 357
14.2.4 最小函数依赖集 357
14.3 基于主码的范式 358
14.3.1 规范化介绍 358
14.3.2 第一范式 359
14.3.3 第二范式 362
14.3.4 第三范式 363
14.4 第二范式和第三范式的通用定义 364
14.4.1 第二范式的通用定义 364
14.4.2 第三范式的通用定义 366
14.4.3 解释3NF的通用定义 366
14.5 Boyce-Codd范式 366
14.6 本章小结 368
第15章 关系数据库设计算法和其他依赖 372
15.1 关系数据库模式设计算法 372
15.1.1 关系分解和范式的不足 373
15.1.2 分解和依赖保持 373
15.1.3 分解和无损(非加性)连接 374
15.1.4 空值问题和悬挂元组问题 379
15.1.5 规范化算法的讨论 381
15.2 多值依赖和第四范式 381
15.2.1 多值依赖的形式化定义 381
15.2.2 函数依赖和多值依赖的推理规则 383
15.2.3 第四范式 384
15.2.4 无损连接分解为第四范式的关系 385
15.3 连接依赖和第五范式 385
15.4 包含依赖 386
15.5 其他的依赖和范式 387
15.5.1 模板依赖 387
15.5.2 域-码范式(DKNF) 388
15.6 本章小结 388
第16章 实际数据库设计和调整 391
16.1 组织中信息系统的角色 392
16.1.1 使用数据库系统的组织环境 392
16.1.2 信息系统的生命周期 393
16.1.3 数据库应用系统的生命周期 394
16.2 数据库设计过程 394
16.2.1 第一阶段:需求收集和分析 396
16.2.2 第二阶段:概念数据库设计 397
16.2.3 第三阶段:DBMS的选择 404
16.2.4 第四阶段:数据模型映射(逻辑数据库设计) 406
16.2.5 第五阶段:物理数据库设计 406
16.2.6 第六阶段:数据库系统的实现和调整 407
16.3 关系数据库的物理设计 407
16.3.1 影响物理数据库设计的因素 408
16.3.2 物理数据库的设计策略 409
16.4 概述关系系统中的数据库调整 410
16.4.1 索引的调整 411
16.4.2 数据库设计的调整 411
16.4.3 查询的调整 412
16.4.4 其他的查询调整原则 413
16.5 自动化设计工具 414
16.6 本章小结 416
第五部分 系统实现技术
第17章 数据库系统体系结构和系统目录 421
17.1 DBMS的系统体系结构 421
17.1.1 集中式DBMS体系结构 421
17.1.2 客户机/服务器体系结构 422
17.1.3 DBMS的客户机/服务器体系结构 423
17.2 关系型DBMS的目录 424
17.3 ORACLE的系统目录信息 427
17.4 由DBMS软件模块存取的其他目录信息 430
17.5 数据字典和数据知识库系统 431
17.6 本章小结 431
第18章 查询处理和查询优化 433
18.1 把SQL查询转换成关系代数 435
18.2 执行查询操作的基本算法 435
18.2.1 外排序 436
18.2.2 SELECT操作的实现 437
18.2.3 JOIN操作的实现 439
18.2.4 PROJECT和集合操作的实现 444
18.2.5 聚集操作的实现 445
18.2.6 外连接的实现 446
18.2.7 用流水线组合操作 446
18.3 在查询优化中使用启发式 447
18.3.1 查询树和查询图的符号表示法 447
18.3.2 查询树的启发式优化 449
18.3.3 把查询树转换成查询执行计划 454
18.4 利用选择性和代价估计进行查询优化 454
18.4.1 查询执行的代价因素 455
18.4.2 在代价函数中使用目录信息 455
18.4.3 选择操作的代价函数示例 456
18.4.4 JOIN操作的代价函数示例 457
18.4.5 多关系查询和连接顺序 459
18.4.6 说明基于代价的查询优化的例子 460
18.5 ORACLE的查询优化 461
18.6 语义查询优化 462
18.7 本章小结 462
第19章 事务处理概念 465
19.1 事务处理简介 465
19.1.1 单用户系统与多用户系统 465
19.1.2 事务. 读写操作和DBMS缓冲区 466
19.1.3 并发控制的必要性 467
19.1.4 恢复的必要性 469
19.2 事务和系统概念 470
19.2.1 事务状态及其他操作 470
19.2.2 系统日志 471
19.2.3 事务的提交点 472
19.3 事务的ACID特性 472
19.4 调度和可恢复性 473
19.4.1 事务的调度(历史) 473
19.4.2 基于可恢复性的特征化调度 474
19.5 调度的可串行性 475
19.5.1 串行. 非串行和冲突-可串行化调度 475
19.5.2 调度的冲突可串行性测试 478
19.5.3 可串行性的用途 481
19.5.4 视图等价和视图可串行性 481
19.5.5 其他调度等价类型 482
19.6 SQL中的事务支持 483
19.7 本章小结 484
第20章 并发控制技术 487
20.1 并发控制的封锁技术 487
20.1.1 锁的类型和系统锁表 487
20.1.2 通过两阶段封锁来保证可串行性 491
20.1.3 死锁和饥饿的处理 492
20.2 基于时间戳顺序的并发控制 494
20.2.1 时间戳 495
20.2.2 时间戳的排序算法 495
20.3 多版本并发控制技术 496
20.3.1 基于时间戳排序的多版本技术 497
20.3.2 采用验证锁的多版本两阶段封锁 497
20.4 确认(乐观的)并发控制技术 498
20.5 数据项的粒度和多粒度封锁 499
20.5.1 关于封锁的粒度级别 499
20.5.2 多粒度级别封锁 500
20.6 索引中使用锁的并发控制 502
20.7 并发控制的其他问题 503
20.7.1 插入. 删除以及幻象记录 503
20.7.2 交互事务 504
20.7.3 锁存器 504
20.8 本章小结 504
第21章 数据库的恢复技术 507
21.1 恢复的概念 507
21.1.1 恢复概述和恢复算法的分类 507
21.1.2 磁盘块缓存 508
21.1.3 先写日志. 潜入/非-潜入和强制/非-强制 508
21.1.4 检查点和模糊检查点 509
21.1.5 事务的回滚 510
21.2 基于延迟更新的恢复技术 511
21.2.1 单用户环境下基于延迟更新的恢复 512
21.2.2 多用户环境下并发执行的延迟更新 512
21.2.3 不影响数据库的事务动作 514
21.3 基于立即更新的恢复技术 515
21.3.1 单用户环境下基于立即更新的UNDO/REDO恢复 515
21.3.2 多用户环境下基于立即更新的UNDO/REDO恢复 515
21.4 影子分页 516
21.5 ARIES恢复算法 517
21.6 多数据库系统中的恢复 519
21.7 灾难性故障的数据库备份和恢复 520
21.8 本章小结 520
第22章 数据库的安全性和授权机制 525
22.1 数据库安全性问题介绍 525
22.1.1 安全性问题的类型 525
22.1.2 数据库的安全性和DBA 526
22.1.3 存取保护. 用户帐户和数据库审计 526
22.2 基于授予/ 撤销特权的自主存取控制 527
22.2.1 自主型特权的类型 527
22.2.2 使用视图指定特权 528
22.2.3 撤销特权 528
22.2.4 使用GRANT OPTION选项传播特权 529
22.2.5 一个例子 529
22.2.6 指定特权传播的范围 530
22.3 具有多级安全性特征的强制存取控制 531
22.4 统计数据库的安全性 533
22.5 本章小结 534
第六部分 高级数据库概念
第23章 高级应用的增强数据模型 539
23.1 主动数据库 540
23.1.1 主动数据库和Oracle触发器的一般模型 540
23.1.2 主动数据库的设计和实现 543
23.1.3 STARBURST系统中使用语句级主动规则的例子 545
23.1.4 主动数据库的应用 547
23.2 时态数据库概念 547
23.2.1 时间表示法. 历法和时间维度 548
23.2.2 使用元组版本化在关系数据库中加入时间 549
23.2.3 使用属性版本化在面向对象数据库中加入时间 553
23.2.4 时态查询构造与TSQL2语言 555
23.2.5 时间序列数据 556
23.3 空间和多媒体数据库 557
23.3.1 空间数据库概念介绍 557
23.3.2 多媒体数据库概念介绍 558
23.4 本章小结 559
第24章 分布式数据库和客户机/服务器体系结构 562
24.1 分布式数据库概念 562
24.1.1 并行及分布技术 563
24.1.2 分布式数据库的优势 564
24.1.3 分布式数据库的附加功能 565
24.2 分布式数据库设计的数据分片. 复制和分配技术 566
24.2.1 数据分片 566
24.2.2 数据复制和分配 568
24.2.3 分段. 分配和复制的实例 569
24.3 分布式数据库系统的类型 571
24.4 分布式数据库中的查询处理 573
24.4.1 分布式查询处理的数据传送代价 573
24.4.2 采用半连接的分布式查询处理 575
24.4.3 查询和更新分解 575
24.5 分布式数据库中并发控制和恢复的概述 577
24.5.1 基于数据项识别拷贝的分布式并发控制 577
24.5.2 基于投票方法的分布式并发控制 578
24.5.3 分布式恢复 579
24.6 客户机/服务器体系结构的概述和它与分布式数据库的关系 579
24.7 Oracle的分布式数据库 580
24.8 客户机/服务器技术的远景展望 582
24.9 本章小结 583
第25章 演绎数据库 587
25.1 演绎数据库简介 587
25.2 Prolog/Datalog符号 588
25.2.1 一个例子 588
25.2.2 Datalog符号 590
25.2.3 子句形式和Horn子句 590
25.3 规则的解释 591
25.4 逻辑程序的基本推理机制 593
25.4.1 自底向上推理机制(正向链接) 593
25.4.2 自顶向下推理机制(反向链接) 594
25.5 Datalog程序和计算 595
25.5.1 程序的安全性 596
25.5.2 使用关系操作 597
25.5.3 非递归Datalog查询的计算 598
25.5.4 Datalog中递归查询处理的概念 600
25.5.5 分层否定 604
25.6 演绎数据库系统 605
25.6.1 LDL系统 605
25.6.2 NAIL! 607
25.6.3 CORAL系统 608
25.7 面向对象的演绎数据库 609
25.7.1 DOOD简介 609
25.7.2 VALIDITY 609
25.8 商业演绎数据库系统的应用 610
25.8.1 LDL应用 610
25.8.2 VALIDITY的应用 611
25.9 本章小结 611
第26章 数据仓库和数据挖掘 615
26.1 数据仓库 615
26.1.1 术语和定义 615
26.1.2 数据仓库的特性 616
26.1.3 数据仓库的数据模型 617
26.1.4 构建数据仓库 621
26.1.5 数据仓库的典型功能 623
26.1.6 数据仓库实现中的困难 624
26.1.7 数据仓库的开放问题 624
26.2 数据挖掘 625
26.2.1 数据挖掘技术概述 625
26.2.2 关联规则 627
26.2.3 其他数据挖掘问题 631
26.2.4 数据挖掘的应用 633
26.2.5 商业化数据挖掘工具的发展水平 633
26.3 本章小结 635
第27章 数据库的新技术及新应用 637
27.1 WWW数据库 637
27.1.1 Web上数据库的存取 638
27.1.2 INFORMIX的Web Integration Option方案 639
27.1.3 ORACLE Web服务器 640
27.1.4 Web数据库面临的问题 640
27.1.5 关于万维网数据库的参考资料 641
27.2 多媒体数据库 642
27.2.1 多媒体数据及其应用 642
27.2.2 数据管理问题 643
27.2.3 新的研究课题 643
27.2.4 多媒体数据库的应用 644
27.2.5 关于多媒体数据库的参考资料 645
27.3 移动数据库 645
27.3.1 移动计算结构 646
27.3.2 移动应用中的数据 647
27.3.3 数据管理问题 647
27.3.4 间歇同步移动数据 648
27.3.5 关于移动数据库的参考资料 649
27.4 地理信息系统 649
27.4.1 GIS应用 649
27.4.2 GIS的数据管理 650
27.4.3 GIS专有的数据操作 651
27.4.4 GIS实例:ARC-INFO 651
27.4.5 GIS的现状及前景 652
27.4.6 关于GIS的参考资料 652
27.5 基因组数据管理 653
27.5.1 生物科学和遗传学 653
27.5.2 生物数据的特性 653
27.5.3 人类基因组项目和现有的生物数据库 654
27.5.4 关于基因组数据库的参考资料 657
27.6 数字图书馆 657
27.6.1 数字图书馆项目 658
27.6.2 关于数字图书馆的参考资料 658
附录A 可选择的图形符号 659
附录B 磁盘参数 661
附录C 网状数据模型概述 663
C.1 网状数据模型概念 663
C.1.1 记录. 记录类型和数据项 663
C.1.2 系类型及其基本特征 664
C.1.3 特殊的系类型 666
C.1.4 系实例存储的表示法 666
C.1.5 使用系表示M:N联系 667
C.2 网状模型中的约束 670
C.2.1 系的插入选项 (约束) 670
C.2.2 系的保留选项 (约束) 670
C.2.3 系排序选项 672
C.2.4 系选择选项 672
C.2.5 网状模型中的数据定义 672
C.3 网状数据库的数据操纵 673
C.3.1 网状数据库操纵的基本概念 673
C.4 网状数据操纵语言 674
C.4.1 DML中的检索和导航命令 677
C.4.2 系处理的DML命令 678
C.4.3 用于更新数据库的 DML 命令 679
C.4.4 更新系实例的命令 680
附录D 层次数据模型概述 682
D.1 层次数据库结构 682
D.1.1 父-子联系和层次模式 682
D.1.2 层次模式的性质 683
D.1.3 层次具体值树 684
D.1.4 层次具体值树的线性形式 685
D.1.5 虚拟父-子联系 686
D.2 层次模型中完整性约束和数据定义 687
D.2.1 层次模型中完整性约束 687
D.2.2 层次模型的数据定义 688
D.3 层次模型的数据操纵语言 690
D.3.1 GET命令 690
D.3.2 检索命令GET PATH 和 GET NEXT WITHIN PARENT 691
D.3.3 HDML的更新命令 692
D.3.4 IMS--层次DBMS 692
第1章 数据库与数据库用户 3
1.1 引言 3
1.2 一个例子 5
1.3 数据库方法的特征 7
1.3.1 数据库系统自描述特性 7
1.3.2 程序与数据分离以及数据抽象 7
1.3.3 支持数据的多视图 9
1.3.4 数据共享和多用户事务处理 9
1.4 数据库舞台上的角色 9
1.4.1 数据库管理员 10
1.4.2 数据库设计者 10
1.4.3 最终用户 10
1.4.4 系统分析员和应用程序员(软件工程师) 11
1.5 幕后人员 11
1.6 使用数据库的优势 11
1.6.1 控制冗余 12
1.6.2 限制未授权的访问 13
1.6.3 为程序对象和数据结构提供持久性存储 13
1.6.4 允许推理和使用规则的动作 13
1.6.5 提供多用户接口 14
1.6.6 表示数据间复杂联系 14
1.6.7 执行完整性约束 14
1.6.8 提供备份和恢复功能 14
1.7 数据库方法的潜在意义 15
1.8 什么时候不应该使用DBMS 15
1.9 本章小结 16
第2章 数据库系统的概念和体系结构 18
2.1 数据模型. 模式和实例 18
2.1.1 数据模型的分类 19
2.1.2 模式. 实例和数据库状态 19
2.2 DBMS体系结构和数据独立性 21
2.2.1 三层模式体系结构 21
2.2.2 数据独立性 22
2.3 数据库语言和接口 23
2.3.1 DBMS的语言 23
2.3.2 DBMS接口 24
2.4 数据库系统的环境 24
2.4.1 DBMS的组成模块 25
2.4.2 数据库系统工具 26
2.4.3 工具. 应用环境和通讯软件 26
2.5 数据库管理系统的分类 27
2.6 本章小结 28
第3章 使用实体-联系模型的数据建模 31
3.1 使用高级概念模型进行数据库设计 31
3.2 一个数据库应用实例 33
3.3 实体类型. 实体集. 属性和码 34
3.3.1 实体和属性 34
3.3.2 实体类型. 实体集. 码和值集 36
3.3.3 COMPANY数据库的初步概念设计 38
3.4 联系. 联系类型. 角色和结构约束 39
3.4.1 联系类型. 联系集和联系实例 39
3.4.2 联系度. 角色名称和递归联系 40
3.4.3 联系类型的约束 42
3.4.4 联系类型的属性 43
3.5 弱实体类型 44
3.6 COMPANY数据库E-R设计的改进 45
3.7 ER图. 命名规则及设计问题 46
3.7.1 ER图表示法的小结 46
3.7.2 模式结构的正确命名 46
3.7.3 E-R概念设计的设计选择 47
3.7.4 ER图的其他表示法 48
3.8 本章小结 49
第4章 增强的实体-联系和对象建模 54
4.1 子类. 超类和继承 55
4.2 特化和泛化 56
4.3 特化和泛化的约束和特性 59
4.4 采用范畴的UNION类型建模 63
4.5 实例UNIVERSITY的EER模式和EER模型的规范定义 66
4.6 采用UML类图的概念对象建模 68
4.7 高于2度的联系类型 70
4.8 数据抽象和知识表示的概念 73
4.8.1 分类和实例化 74
4.8.2 标识 74
4.8.3 特化和泛化 75
4.8.4 聚合和关联 75
4.9 本章小结 76
第5章 记录存储和主文件组织 82
5.1 概述 82
5.1.1 存储层次和存储设备 83
5.1.2 数据库的存储 84
5.2 二级存储设备 84
5.2.1 磁盘设备的硬件性质 85
5.2.2 磁带存储设备 88
5.3 使用RAID技术的并行磁盘访问 89
5.3.1 用RAID增强可靠性 90
5.3.2 用RAID改善性能 91
5.3.3 RAID组织体系和级别 91
5.4 块缓冲 92
5.5 把文件记录保存在磁盘上 94
5.5.1 记录和记录类型 94
5.5.2 文件. 定长记录和变长记录 94
5.5.3 块. 跨块记录与非跨块记录 96
5.5.4 在磁盘上分配文件块 97
5.5.5 文件头部 97
5.6 文件操作 97
5.7 无序记录文件(堆文件) 99
5.8 有序记录文件(排序文件) 100
5.9 散列技术 102
5.9.1 内部散列 102
5.9.2 磁盘文件的外部散列法 104
5.9.3 允许文件动态扩展的散列技术 106
5.10 其他主文件组织 108
5.10.1 混合记录文件 108
5.10.2 B-树和其他数据结构 109
5.11 本章小结 109
第6章 文件索引结构 114
6.1 单级有序索引的类型 114
6.1.1 主索引 115
6.1.2 聚簇索引 117
6.1.3 辅助索引 117
6.1.4 小结 122
6.2 多级索引 122
6.3 使用B-树与B+-树的动态多级索引 125
6.3.1 搜索树和B-树 125
6.3.2 B+-树 129
6.4 多码上的索引 136
6.4.1 多属性上的有序索引 136
6.4.2 分区散列法 136
6.4.3 网格文件 137
6.5 其他类型的索引 137
6.5.1 使用散列和其他数据结构作为索引 137
6.5.2 逻辑索引与物理索引 138
6.5.3 讨论 138
6.6 本章小结 139
第二部分 关系模型. 语言及系统
第7章 关系数据模型. 关系约束和关系代数 145
7.1 关系模型概念 145
7.1.1 域. 属性. 元组和关系 146
7.1.2 关系的特性 147
7.1.3 关系模型的符号 149
7.2 关系约束和关系数据库模式 149
7.2.1 域约束 150
7.2.2 码约束和空值约束 150
7.2.3 关系数据库和关系数据库模式 151
7.2.4 实体完整性. 参照完整性和外码 153
7.3 更新操作和处理约束破坏 154
7.3.1 插入操作 155
7.3.2 删除操作 155
7.3.3 更新操作 156
7.4 基本关系代数操作 156
7.4.1 选择操作 157
7.4.2 投影操作 158
7.4.3 操作序列和更名操作 159
7.4.4 集合操作 160
7.4.5 连接操作 163
7.4.6 关系代数操作的完备集 165
7.4.7 除操作 165
7.5 附加关系操作 167
7.5.1 聚集函数和分组 167
7.5.2 递归闭包操作 168
7.5.3 外连接和外并操作 169
7.6 关系代数查询举例 170
7.7 本章小结 172
第8章 SQL-关系数据库的标准 179
8.1 SQL2中的数据定义. 约束和模式变更 180
8.1.1 SQL2中模式和目录的概念 180
8.1.2 CREATE TABLE命令. SQL2的数据类型和约束条件 180
8.1.3 DROP SCHEMA和DROP TABLE命令 184
8.1.4 ALTER TABLE 命令 184
8.2 SQL中的基本查询 185
8.2.1 SQL查询的SELECT-FROM-WHERE结构 185
8.2.2 处理多义属性名和更名(别名) 187
8.2.3 未指定WHERE子句的查询语句和星号(*)的用法 188
8.2.4 SQL中作为集合的表 189
8.2.5 子串比较. 算术操作符和排序 190
8.3 更复杂的SQL查询 192
8.3.1 嵌套查询和集合比较 192
8.3.2 SQL中的EXISTS和UNIQUE函数 194
8.3.3 SQL中的显式集合和NULL 196
8.3.4 重新命名属性和连接表 197
8.3.5 聚集函数和分组 198
8.3.6 SQL查询的讨论和小结 202
8.4 SQL中的插入. 删除和更新语句 203
8.4.1 INSERT命令 203
8.4.2 DELETE命令 204
8.4.3 UPDATE命令 205
8.5 SQL中的视图(虚表) 205
8.5.1 SQL中视图的概念 205
8.5.2 SQL中的视图说明 206
8.5.3 视图的实现和视图的更新 207
8.6 指定一般约束作为断言 208
8.7 SQL的其他特性 209
8.8 本章小结 210
第9章 ER模型和EER模型到关系模型的映射以及其他关系语言 214
9.1 使用ER模型到关系模型的映射进行关系数据库设计 214
9.1.1 ER模式映射到关系模式的算法 215
9.1.2 ER模型和关系模型之间的对应关系 218
9.2 将EER模型的概念映射为关系 218
9.2.1 超类/子类联系和特化(或泛化) 218
9.2.2 共享子类的映射 220
9.2.3 范畴的映射 220
9.3 元组关系演算 221
9.3.1 元组变量和值域关系 222
9.3.2 元组关系演算中的表达式和公式 223
9.3.3 存在量词和全称量词 223
9.3.4 使用存在量词的查询实例 224
9.3.5 全称量词和存在量词的转换 225
9.3.6 全称量词的使用 225
9.3.7 安全表达式 227
9.3.8 SQL中的量词 227
9.4 域关系演算 227
9.5 QBE语言概述 229
9.5.1 QBE中的基本查询 230
9.5.2 QBE中的分组. 聚集和数据库修改 233
9.6 本章小结 234
第10章 关系数据库管理系统实例:Oracle和Microsoft Access 238
10.1 关系数据库管理系统的发展历史 238
10.2 Oracle系统的基本结构 239
10.2.1 Oracle数据库结构 239
10.2.2 Oracle进程 241
10.2.3 Oracle的启动和关闭 242
10.3 Oracle数据库结构和操作 242
10.3.1 模式对象 242
10.3.2 Oracle数据字典 243
10.3.3 Oracle中的SQL 244
10.3.4 Oracle 8中的方法 245
10.3.5 触发器 245
10.4 Oracle中的存储组织 245
10.4.1 数据块 246
10.4.2 盘区 247
10.4.3 段 247
10.5 Oracle应用程序设计 248
10.5.1 PL/SQL程序设计 248
10.5.2 PL/SQL中的游标 250
10.5.3 PRO*C举例 252
10.6 Oracle工具 254
10.7 Microsoft Access概述 254
10.7.1 Access的结构 255
10.7.2 Access数据库的数据定义 255
10.7.3 定义联系和参照完整性约束 256
10.7.4 Access中的数据操纵 258
10.8 Access的特征和功能 259
10.8.1 窗体 259
10.8.2 报表 260
10.8.3 宏和Access Basic 261
10.8.4 附加的特征 262
10.9 本章小结 262
第三部分 面向对象与扩展关系数据库技术
第11章 面向对象数据库的概念 267
11.1 面向对象的概念 268
11.2 对象标识. 对象结构和类型构造器 270
11.2.1 对象标识 270
11.2.2 对象结构 271
11.2.3 类型构造器 272
11.3 操作. 方法和持久性封装 274
11.3.1 通过类操作指定对象行为 274
11.3.2 通过命名和可达性定义对象的持久性 276
11.4 类型层次和类型继承 277
11.4.1 类型层次和类型继承 277
11.4.2 与类型层次对应的类外延约束 279
11.5 复杂对象 280
11.5.1 非结构化复杂对象和类型可扩展性 280
11.5.2 结构化复杂对象 281
11.6 其他面向对象的概念 281
11.6.1 多态性(操作符重载) 281
11.6.2 多重继承和选择性继承 282
11.6.3 版本和配置 283
11.7 本章小结 283
第12章 对象数据库标准. 语言和设计 286
12.1 ODMG对象模型概述 287
12.1.1 对象和文字 287
12.1.2 汇集对象的内建接口 291
12.1.3 原子(用户定义的)对象 293
12.1.4 接口. 类和继承 294
12.1.5 类外延. 码以及工厂对象 295
12.2 对象定义语言 296
12.3 对象查询语言 301
12.3.1 简单OQL查询. 数据库入口点以及迭代变量 301
12.3.2 查询结果和路径表达式 302
12.3.3 OQL的其他特征 304
12.4 C++语言绑定概述 307
12.5 对象数据库概念设计 308
12.5.1 ODB与RDB概念设计之间的区别 308
12.5.2 EER模式到ODB模式的映射 308
12.6 ODBMS的例子 310
12.6.1 O2系统概述 310
12.6.2 ObjectStore系统概述 313
12.7 关于分布式对象的CORBA标准概述 318
12.8 本章小结 320
第13章 对象关系和扩展关系数据库系统 322
13.1 数据库技术的演变和当前趋势 322
13.1.1 数据库系统技术的演变 322
13.1.2 当前数据库系统技术的动力 323
13.2 Informix Universal Server 323
13.2.1 可扩展的数据类型 324
13.2.2 对用户定义例程的支持 326
13.2.3 对继承的支持 326
13.2.4 对索引扩展的支持 328
13.2.5 对外部数据源的支持 328
13.2.6 对数据刀片应用编程接口的支持 328
13.3 Oracle 8的对象-关系特征 331
13.3.1 Oracle对象关系特征的例子 331
13.3.2 大对象的管理以及其他存储特征 333
13.4 SQL3概述 333
13.4.1 SQL3标准及其组成 333
13.4.2 SQL3中一些新的操作和特征 334
13.4.3 SQL3中的对象关系支持 335
13.5 扩展类型系统的实现以及相关问题 338
13.6 嵌套关系数据模型 339
13.7 本章小结 341
第四部分 数据库设计理论及方法
第14章 函数依赖和关系数据库的规范化 345
14.1 关系模式的非形式化设计准则 346
14.1.1 关系属性的语义 346
14.1.2 元组中的冗余信息和更新异常 349
14.1.3 元组中的空值 350
14.1.4 寄生元组的生成 351
14.1.5 设计准则的总结和讨论 353
14.2 函数依赖 353
14.2.1 函数依赖的定义 353
14.2.2 函数依赖的推理规则 354
14.2.3 函数依赖集的等价 357
14.2.4 最小函数依赖集 357
14.3 基于主码的范式 358
14.3.1 规范化介绍 358
14.3.2 第一范式 359
14.3.3 第二范式 362
14.3.4 第三范式 363
14.4 第二范式和第三范式的通用定义 364
14.4.1 第二范式的通用定义 364
14.4.2 第三范式的通用定义 366
14.4.3 解释3NF的通用定义 366
14.5 Boyce-Codd范式 366
14.6 本章小结 368
第15章 关系数据库设计算法和其他依赖 372
15.1 关系数据库模式设计算法 372
15.1.1 关系分解和范式的不足 373
15.1.2 分解和依赖保持 373
15.1.3 分解和无损(非加性)连接 374
15.1.4 空值问题和悬挂元组问题 379
15.1.5 规范化算法的讨论 381
15.2 多值依赖和第四范式 381
15.2.1 多值依赖的形式化定义 381
15.2.2 函数依赖和多值依赖的推理规则 383
15.2.3 第四范式 384
15.2.4 无损连接分解为第四范式的关系 385
15.3 连接依赖和第五范式 385
15.4 包含依赖 386
15.5 其他的依赖和范式 387
15.5.1 模板依赖 387
15.5.2 域-码范式(DKNF) 388
15.6 本章小结 388
第16章 实际数据库设计和调整 391
16.1 组织中信息系统的角色 392
16.1.1 使用数据库系统的组织环境 392
16.1.2 信息系统的生命周期 393
16.1.3 数据库应用系统的生命周期 394
16.2 数据库设计过程 394
16.2.1 第一阶段:需求收集和分析 396
16.2.2 第二阶段:概念数据库设计 397
16.2.3 第三阶段:DBMS的选择 404
16.2.4 第四阶段:数据模型映射(逻辑数据库设计) 406
16.2.5 第五阶段:物理数据库设计 406
16.2.6 第六阶段:数据库系统的实现和调整 407
16.3 关系数据库的物理设计 407
16.3.1 影响物理数据库设计的因素 408
16.3.2 物理数据库的设计策略 409
16.4 概述关系系统中的数据库调整 410
16.4.1 索引的调整 411
16.4.2 数据库设计的调整 411
16.4.3 查询的调整 412
16.4.4 其他的查询调整原则 413
16.5 自动化设计工具 414
16.6 本章小结 416
第五部分 系统实现技术
第17章 数据库系统体系结构和系统目录 421
17.1 DBMS的系统体系结构 421
17.1.1 集中式DBMS体系结构 421
17.1.2 客户机/服务器体系结构 422
17.1.3 DBMS的客户机/服务器体系结构 423
17.2 关系型DBMS的目录 424
17.3 ORACLE的系统目录信息 427
17.4 由DBMS软件模块存取的其他目录信息 430
17.5 数据字典和数据知识库系统 431
17.6 本章小结 431
第18章 查询处理和查询优化 433
18.1 把SQL查询转换成关系代数 435
18.2 执行查询操作的基本算法 435
18.2.1 外排序 436
18.2.2 SELECT操作的实现 437
18.2.3 JOIN操作的实现 439
18.2.4 PROJECT和集合操作的实现 444
18.2.5 聚集操作的实现 445
18.2.6 外连接的实现 446
18.2.7 用流水线组合操作 446
18.3 在查询优化中使用启发式 447
18.3.1 查询树和查询图的符号表示法 447
18.3.2 查询树的启发式优化 449
18.3.3 把查询树转换成查询执行计划 454
18.4 利用选择性和代价估计进行查询优化 454
18.4.1 查询执行的代价因素 455
18.4.2 在代价函数中使用目录信息 455
18.4.3 选择操作的代价函数示例 456
18.4.4 JOIN操作的代价函数示例 457
18.4.5 多关系查询和连接顺序 459
18.4.6 说明基于代价的查询优化的例子 460
18.5 ORACLE的查询优化 461
18.6 语义查询优化 462
18.7 本章小结 462
第19章 事务处理概念 465
19.1 事务处理简介 465
19.1.1 单用户系统与多用户系统 465
19.1.2 事务. 读写操作和DBMS缓冲区 466
19.1.3 并发控制的必要性 467
19.1.4 恢复的必要性 469
19.2 事务和系统概念 470
19.2.1 事务状态及其他操作 470
19.2.2 系统日志 471
19.2.3 事务的提交点 472
19.3 事务的ACID特性 472
19.4 调度和可恢复性 473
19.4.1 事务的调度(历史) 473
19.4.2 基于可恢复性的特征化调度 474
19.5 调度的可串行性 475
19.5.1 串行. 非串行和冲突-可串行化调度 475
19.5.2 调度的冲突可串行性测试 478
19.5.3 可串行性的用途 481
19.5.4 视图等价和视图可串行性 481
19.5.5 其他调度等价类型 482
19.6 SQL中的事务支持 483
19.7 本章小结 484
第20章 并发控制技术 487
20.1 并发控制的封锁技术 487
20.1.1 锁的类型和系统锁表 487
20.1.2 通过两阶段封锁来保证可串行性 491
20.1.3 死锁和饥饿的处理 492
20.2 基于时间戳顺序的并发控制 494
20.2.1 时间戳 495
20.2.2 时间戳的排序算法 495
20.3 多版本并发控制技术 496
20.3.1 基于时间戳排序的多版本技术 497
20.3.2 采用验证锁的多版本两阶段封锁 497
20.4 确认(乐观的)并发控制技术 498
20.5 数据项的粒度和多粒度封锁 499
20.5.1 关于封锁的粒度级别 499
20.5.2 多粒度级别封锁 500
20.6 索引中使用锁的并发控制 502
20.7 并发控制的其他问题 503
20.7.1 插入. 删除以及幻象记录 503
20.7.2 交互事务 504
20.7.3 锁存器 504
20.8 本章小结 504
第21章 数据库的恢复技术 507
21.1 恢复的概念 507
21.1.1 恢复概述和恢复算法的分类 507
21.1.2 磁盘块缓存 508
21.1.3 先写日志. 潜入/非-潜入和强制/非-强制 508
21.1.4 检查点和模糊检查点 509
21.1.5 事务的回滚 510
21.2 基于延迟更新的恢复技术 511
21.2.1 单用户环境下基于延迟更新的恢复 512
21.2.2 多用户环境下并发执行的延迟更新 512
21.2.3 不影响数据库的事务动作 514
21.3 基于立即更新的恢复技术 515
21.3.1 单用户环境下基于立即更新的UNDO/REDO恢复 515
21.3.2 多用户环境下基于立即更新的UNDO/REDO恢复 515
21.4 影子分页 516
21.5 ARIES恢复算法 517
21.6 多数据库系统中的恢复 519
21.7 灾难性故障的数据库备份和恢复 520
21.8 本章小结 520
第22章 数据库的安全性和授权机制 525
22.1 数据库安全性问题介绍 525
22.1.1 安全性问题的类型 525
22.1.2 数据库的安全性和DBA 526
22.1.3 存取保护. 用户帐户和数据库审计 526
22.2 基于授予/ 撤销特权的自主存取控制 527
22.2.1 自主型特权的类型 527
22.2.2 使用视图指定特权 528
22.2.3 撤销特权 528
22.2.4 使用GRANT OPTION选项传播特权 529
22.2.5 一个例子 529
22.2.6 指定特权传播的范围 530
22.3 具有多级安全性特征的强制存取控制 531
22.4 统计数据库的安全性 533
22.5 本章小结 534
第六部分 高级数据库概念
第23章 高级应用的增强数据模型 539
23.1 主动数据库 540
23.1.1 主动数据库和Oracle触发器的一般模型 540
23.1.2 主动数据库的设计和实现 543
23.1.3 STARBURST系统中使用语句级主动规则的例子 545
23.1.4 主动数据库的应用 547
23.2 时态数据库概念 547
23.2.1 时间表示法. 历法和时间维度 548
23.2.2 使用元组版本化在关系数据库中加入时间 549
23.2.3 使用属性版本化在面向对象数据库中加入时间 553
23.2.4 时态查询构造与TSQL2语言 555
23.2.5 时间序列数据 556
23.3 空间和多媒体数据库 557
23.3.1 空间数据库概念介绍 557
23.3.2 多媒体数据库概念介绍 558
23.4 本章小结 559
第24章 分布式数据库和客户机/服务器体系结构 562
24.1 分布式数据库概念 562
24.1.1 并行及分布技术 563
24.1.2 分布式数据库的优势 564
24.1.3 分布式数据库的附加功能 565
24.2 分布式数据库设计的数据分片. 复制和分配技术 566
24.2.1 数据分片 566
24.2.2 数据复制和分配 568
24.2.3 分段. 分配和复制的实例 569
24.3 分布式数据库系统的类型 571
24.4 分布式数据库中的查询处理 573
24.4.1 分布式查询处理的数据传送代价 573
24.4.2 采用半连接的分布式查询处理 575
24.4.3 查询和更新分解 575
24.5 分布式数据库中并发控制和恢复的概述 577
24.5.1 基于数据项识别拷贝的分布式并发控制 577
24.5.2 基于投票方法的分布式并发控制 578
24.5.3 分布式恢复 579
24.6 客户机/服务器体系结构的概述和它与分布式数据库的关系 579
24.7 Oracle的分布式数据库 580
24.8 客户机/服务器技术的远景展望 582
24.9 本章小结 583
第25章 演绎数据库 587
25.1 演绎数据库简介 587
25.2 Prolog/Datalog符号 588
25.2.1 一个例子 588
25.2.2 Datalog符号 590
25.2.3 子句形式和Horn子句 590
25.3 规则的解释 591
25.4 逻辑程序的基本推理机制 593
25.4.1 自底向上推理机制(正向链接) 593
25.4.2 自顶向下推理机制(反向链接) 594
25.5 Datalog程序和计算 595
25.5.1 程序的安全性 596
25.5.2 使用关系操作 597
25.5.3 非递归Datalog查询的计算 598
25.5.4 Datalog中递归查询处理的概念 600
25.5.5 分层否定 604
25.6 演绎数据库系统 605
25.6.1 LDL系统 605
25.6.2 NAIL! 607
25.6.3 CORAL系统 608
25.7 面向对象的演绎数据库 609
25.7.1 DOOD简介 609
25.7.2 VALIDITY 609
25.8 商业演绎数据库系统的应用 610
25.8.1 LDL应用 610
25.8.2 VALIDITY的应用 611
25.9 本章小结 611
第26章 数据仓库和数据挖掘 615
26.1 数据仓库 615
26.1.1 术语和定义 615
26.1.2 数据仓库的特性 616
26.1.3 数据仓库的数据模型 617
26.1.4 构建数据仓库 621
26.1.5 数据仓库的典型功能 623
26.1.6 数据仓库实现中的困难 624
26.1.7 数据仓库的开放问题 624
26.2 数据挖掘 625
26.2.1 数据挖掘技术概述 625
26.2.2 关联规则 627
26.2.3 其他数据挖掘问题 631
26.2.4 数据挖掘的应用 633
26.2.5 商业化数据挖掘工具的发展水平 633
26.3 本章小结 635
第27章 数据库的新技术及新应用 637
27.1 WWW数据库 637
27.1.1 Web上数据库的存取 638
27.1.2 INFORMIX的Web Integration Option方案 639
27.1.3 ORACLE Web服务器 640
27.1.4 Web数据库面临的问题 640
27.1.5 关于万维网数据库的参考资料 641
27.2 多媒体数据库 642
27.2.1 多媒体数据及其应用 642
27.2.2 数据管理问题 643
27.2.3 新的研究课题 643
27.2.4 多媒体数据库的应用 644
27.2.5 关于多媒体数据库的参考资料 645
27.3 移动数据库 645
27.3.1 移动计算结构 646
27.3.2 移动应用中的数据 647
27.3.3 数据管理问题 647
27.3.4 间歇同步移动数据 648
27.3.5 关于移动数据库的参考资料 649
27.4 地理信息系统 649
27.4.1 GIS应用 649
27.4.2 GIS的数据管理 650
27.4.3 GIS专有的数据操作 651
27.4.4 GIS实例:ARC-INFO 651
27.4.5 GIS的现状及前景 652
27.4.6 关于GIS的参考资料 652
27.5 基因组数据管理 653
27.5.1 生物科学和遗传学 653
27.5.2 生物数据的特性 653
27.5.3 人类基因组项目和现有的生物数据库 654
27.5.4 关于基因组数据库的参考资料 657
27.6 数字图书馆 657
27.6.1 数字图书馆项目 658
27.6.2 关于数字图书馆的参考资料 658
附录A 可选择的图形符号 659
附录B 磁盘参数 661
附录C 网状数据模型概述 663
C.1 网状数据模型概念 663
C.1.1 记录. 记录类型和数据项 663
C.1.2 系类型及其基本特征 664
C.1.3 特殊的系类型 666
C.1.4 系实例存储的表示法 666
C.1.5 使用系表示M:N联系 667
C.2 网状模型中的约束 670
C.2.1 系的插入选项 (约束) 670
C.2.2 系的保留选项 (约束) 670
C.2.3 系排序选项 672
C.2.4 系选择选项 672
C.2.5 网状模型中的数据定义 672
C.3 网状数据库的数据操纵 673
C.3.1 网状数据库操纵的基本概念 673
C.4 网状数据操纵语言 674
C.4.1 DML中的检索和导航命令 677
C.4.2 系处理的DML命令 678
C.4.3 用于更新数据库的 DML 命令 679
C.4.4 更新系实例的命令 680
附录D 层次数据模型概述 682
D.1 层次数据库结构 682
D.1.1 父-子联系和层次模式 682
D.1.2 层次模式的性质 683
D.1.3 层次具体值树 684
D.1.4 层次具体值树的线性形式 685
D.1.5 虚拟父-子联系 686
D.2 层次模型中完整性约束和数据定义 687
D.2.1 层次模型中完整性约束 687
D.2.2 层次模型的数据定义 688
D.3 层次模型的数据操纵语言 690
D.3.1 GET命令 690
D.3.2 检索命令GET PATH 和 GET NEXT WITHIN PARENT 691
D.3.3 HDML的更新命令 692
D.3.4 IMS--层次DBMS 692
猜您喜欢