第1部分 数据库概述 3
第1章 数据库与数据库用户 3
1.1引言 3
1.2一个示例 6
1.3数据库方法的特征 8
1.3.1数据模型数据库系统的自描述性 8
1.3.2程序与数据分离和数据抽象 9
1.3.3支持数据的多视图 11
1.3.4数据共享和多用户事务处理 11
1.4幕前角色 12
1.4.1数据库管理员 12
1.4.2数据库设计者 12
1.4.3最终用户 13
1.4.4系统分析员和应用程序员 13
1.5幕后工作者 14
1.6使用DBMS方法的优势 14
1.6.1控制冗余 14
1.6.2限制非授权访问 16
1.6.3为程序对象提供永久性存储 16
1.6.4为高效查询处理提供存储结构和搜索技术 16
1.6.5提供备份与恢复 17
1.6.6提供多用户接口 17
1.6.7表示数据间的复杂联系 17
1.6.8强制执行完整性约束 17
1.6.9允许使用规则进行推理和动作 18
1.6.10使用数据库方法的其他潜在优势 18
1.7数据库应用简史 19
1.7.1使用层次和网状系统的早期数据库应用 19
1.7.2提供数据抽象和应用灵活性的关系数据库 20
1.7.3面向对象的应用和对更复杂数据库的需求 20
1.7.4使用XML在Web上交换数据以实现电子商务 21
1.7.5为新应用扩展数据库性能 21
1.7.6数据库与信息检索 22
1.8何时不使用DBMS 22
1.9本章小结 23
复习题 23
练习题 23
选读文献 24
第2章 数据库系统的概念和体系结构 25
2.1数据模型、模式和实例 25
2.1.1数据模型的分类 26
2.1.2模式、实例和数据库状态 27
2.2三层模式体系结构和数据独立性 28
2.2.1三层模式体系结构 28
2.2.2数据独立性 30
2.3数据库语言和界面 31
2.3.1 DBMS语言 31
2.3.2 DBMS界面 32
2.4数据库系统环境 33
2.4.1 DBMS的组成模块 34
2.4.2数据库系统实用工具 36
2.4.3工具、应用环境和通信软件 36
2.5 DBMS的集中式和客户机/服务器体系结构 37
2.5.1集中式DBMS的体系结构 37
2.5.2基本的客户机/服务器体系结构 37
2.5.3 DBMS的两层客户机/服务器体系结构 39
2.5.4面向Web应用的三层和n层体系结构 40
2.6数据库管理系统的分类 41
2.7本章小结 44
复习题 45
练习题 45
选读文献 46
第2部分 关系数据模型与SQL 49
第3章 关系数据模型和关系数据库约束 49
3.1关系模型概念 50
3.1.1域、属性、元组和关系 50
3.1.2关系的特性 52
3.1.3关系模型表示法 55
3.2关系模型约束和关系数据库模式 55
3.2.1域约束 56
3.2.2码约束和NULL值约束 56
3.2.3关系数据库和关系数据库模式 58
3.2.4实体完整性、参照完整性和外码 59
3.2.5其他类型的约束 62
3.3更新操作、事务和处理违例约束 62
3.3.1插入操作 63
3.3.2删除操作 64
3.3.3更新操作 65
3.3.4事务的概念 65
3.4本章小结 66
复习题 66
练习题 67
选读文献 70
第4章SQL基础 71
4.1 SQL数据定义和数据类型 72
4.1.1 SQL中模式和目录的概念 72
4.1.2 SQL的CREATE TABLE命令 73
4.1.3 SQL中的属性数据类型和域 75
4.2在SQL中定义约束 77
4.2.1指定属性约束和属性默认值 77
4.2.2指定码和参照完整性约束 78
4.2.3为约束命名 79
4.2.4使用CHECK指定元组约束 79
4.3 SQL中的基本查询 79
4.3.1基本SQL查询的SELECT-FROM-WHERE结构 80
4.3.2多义属性名、别名、重命名和元组变量 82
4.3.3未指定WHERE子句的查询语句和星号(*)的用法 84
4.3.4 SQL中作为集合的表 84
4.3.5子串模式匹配和算术运算符 86
4.3.6查询结果排序 87
4.3.7基本SQL检索查询的讨论与小结 88
4.4 SQL中的插入、删除和更新语句 88
4.4.1 INSERT命令 88
4.4.2 DELETE命令 90
4.4.3 UPDATE命令 90
4.5 SQL的其他特性 91
4.6本章小结 92
复习题 92
练习题 93
选读文献 94
第5章 更多SQL:复杂查询、触发器、视图和模式修改 95
5.1更复杂的SQL查询 95
5.1.1包含空值和三值逻辑的比较 95
5.1.2嵌套查询、元组与集/多集比较 97
5.1.3关联嵌套查询 99
5.1.4 SQL中的EXISTS和UNION函数 99
5.1.5 SQL中的显式集合和属性重命名 101
5.1.6 SQL中的连接表和外连接 102
5.1.7 SQL中的聚集函数 103
5.1.8分组:GROUP BY和HAVING子句 105
5.1.9 SQL查询的讨论与小结 108
5.2指定约束作为断言以及动作作为触发器 109
5.2.1指定一般约束作为SQL中的断言 109
5.2.2 SQL中的触发器 110
5.3 SQL中的视图(虚表) 111
5.3.1 SQL中视图的概念 111
5.3.2指定SQL中的视图 112
5.3.3视图的实现、更新和内联视图 113
5.4 SQL中的模式更改语句 115
5.4.1 DROP命令 115
5.4.2 ALTER命令 116
5.5本章小结 117
复习题 118
练习题 118
选读文献 119
第6章 关系代数和关系演算 121
6.1一元关系运算:选择和投影 122
6.1.1选择运算 122
6.1.2投影运算 124
6.1.3运算序列和更名运算 125
6.2基于集合论的关系代数运算 127
6.2.1并、交和差运算 127
6.2.2笛卡儿积(叉积)运算 129
6.3二元关系运算:连接运算和除运算 130
6.3.1连接运算 130
6.3.2连接的变体:等值连接和自然连接 132
6.3.3关系代数运算的完备集 134
6.3.4除运算 134
6.3.5查询树表示法 136
6.4其他关系运算 137
6.4.1广义投影 137
6.4.2聚集函数和分组 138
6.4.3递归闭包运算 139
6.4.4外连接运算 140
6.4.5外并运算 141
6.5关系代数中的查询示例 142
6.6元组关系演算 144
6.6.1元组变量和值域关系 145
6.6.2元组关系演算中的表达式与公式 146
6.6.3存在量词与全称量词 146
6.6.4元组关系演算的查询示例 147
6.6.5查询图表示法 149
6.6.6全称量词与存在量词的转换 149
6.6.7查询中使用全称量词 150
6.6.8安全表达式 151
6.7域关系演算 152
6.8本章小结 154
复习题 155
练习题 155
实验题 159
选读文献 160
第3部分 概念建模与数据库设计 165
第7章 使用实体-联系(ER)模型的数据建模 165
7.1使用高级概念数据模型进行数据库设计 166
7.2一个数据库应用示例 167
7.3实体类型、实体集、属性和码 169
7.3.1实体和属性 169
7.3.2实体类型、实体集、码和值集 171
7.3.3 COMPANY数据库的初步概念设计 174
7.4联系类型、联系集、角色和结构约束 175
7.4.1联系类型、联系集和联系实例 175
7.4.2联系度、角色名称和递归联系 176
7.4.3二元联系类型的约束 178
7.4.4联系类型的属性 180
7.5弱实体类型 181
7.6改进COMPANY数据库的ER设计 182
7.7 ER图、命名约定和设计问题 183
7.7.1 ER图表示法小结 183
7.7.2模式结构的正确命名 183
7.7.3 ER概念设计的设计选择 185
7.7.4 ER图的替代表示法 185
7.8其他表示法示例:UML类图 186
7.9大于2度的联系类型 188
7.9.1对二元和三元(或度数更高)联系的选择 188
7.9.2三元(或度数更高)联系上的约束 191
7.10本章小结 192
复习题 193
练习题 193
实验题 199
选读文献 200
第8章 增强的实体-联系(EER)建模 201
8.1子类、超类和继承 201
8.2特化和泛化 203
8.2.1特化 203
8.2.2泛化 204
8.3特化和泛化层次的约束和特征 205
8.3.1特化与泛化的约束 205
8.3.2特化和泛化的层次和格 208
8.3.3利用特化和泛化改进概念模型 210
8.4采用类别的并类型建模 211
8.5示例UNIVERSITY的EER模式、设计选择和形式化定义 213
8.5.1 UNIVERSITY数据库示例 213
8.5.2特化/泛化的设计选择 215
8.5.3 EER模型概念的形式化定义 215
8.6其他表示法的示例:UML类图中的特化/泛化表示 216
8.7数据抽象、知识表示和本体概念 218
8.7.1分类和实例化 218
8.7.2标识 219
8.7.3特化和泛化 220
8.7.4聚集和关联 220
8.7.5本体和语义词 222
8.8本章小结 222
复习题 223
练习题 223
实验题 230
选读文献 231
第9章 使用ER到关系的映射和EER到关系的映射进行关系数据库设计 233
9.1使用ER到关系的映射进行关系数据库设计 233
9.1.1 ER到关系的映射算法 233
9.1.2 ER模型构造映射的讨论和总结 238
9.2 EER模型构造到关系的映射 239
9.2.1特化或泛化的映射 239
9.2.2共享子类(多重继承)的映射 242
9.2.3类别的映射(并类型) 242
9.3本章小结 244
复习题 244
练习题 244
实验题 245
选读文献 246
第10章 实际数据库设计方法学和UML图的使用 247
10.1组织中信息系统的角色 248
10.1.1使用数据库系统的组织环境 248
10.1.2信息系统的生命周期 250
10.1.3数据库应用系统的生命周期 250
10.2数据库设计与实现过程 252
10.2.1第1阶段:需求汇集和分析 253
10.2.2第2阶段:概念数据库设计 255
10.2.3第3阶段:DBMS的选择 263
10.2.4第4阶段:数据模型映射(逻辑数据库设计) 265
10.2.5第5阶段:物理数据库设计 265
10.2.6第6阶段:数据库系统的实现和调优 266
10.3使用UML图作为数据库设计规范说明的辅助工具 267
10.3.1 UML作为规范说明的标准 267
10.3.2将UML用于数据库应用设计 267
10.3.3各种UML图 268
10.3.4建模和设计的示例:UNIVERSITY数据库 272
10.4基于UML的设计工具:Rational Rose 274
10.4.1面向数据库设计的Rational Rose 274
10.4.2 Rational Rose Data Modeler 274
10.4.3使用Rational Rose Data Modeler的数据建模 275
10.5自动化数据库设计工具 279
10.6本章小结 281
复习题 282
选读文献 283
第4部分 对象、对象关系与XML:概念、模型、语言与标准 287
第11章 对象及对象关系数据库 287
11.1对象数据库概念概述 288
11.1.1面向对象的概念和特征 288
11.1.2对象标识以及对象和文字的比较 290
11.1.3复杂类型结构的对象和文字 291
11.1.4操作封装和对象持久性 293
11.1.5类型层次和继承 296
11.1.6其他面向对象的概念 298
11.1.7对象数据库概念小结 299
11.2对象-关系特征:SQL标准中的对象数据库扩展 300
11.2.1对象的用户定义类型和复杂结构 300
11.2.2使用引用类型的对象标识符 303
11.2.3基于UDT创建表 303
11.2.4 SQL中操作的封装 304
11.2.5 SQL中的指定继承和函数重载 304
11.2.6通过引用指定联系 305
11.3 ODMG对象模型和ODL对象定义语言 305
11.3.1 ODMG对象模型概述 306
11.3.2 ODMG对象模型中的继承 311
11.3.3对象模型中的内置接口和类 311
11.3.4原子(用户定义)对象 313
11.3.5类外延、码和工厂对象 315
11.3.6对象定义语言ODL 317
11.4对象数据库概念设计 321
11.4.1 ODB与RDB概念设计的区别 321
11.4.2将EER模式映射为ODB模式 322
11.5对象查询语言OQL 324
11.5.1简单OQL查询,数据库入口点和迭代变量 324
11.5.2查询结果和路径表达式 325
11.5.3 OQL的其他特性 327
11.6 ODMG标准中的C﹢﹢语言绑定概述 331
11.7本章小结 332
复习题 333
练习题 334
选读文献 335
第12章XML:可扩展置标语言 337
12.1结构化、半结构化和非结构化数据 337
12.2 XML层次(树)数据模型 341
12.3 XML文档、DTD和XML模式 343
12.3.1合式、有效XML文档及XML DTD 343
12.3.2 XML模式 345
12.4从数据库存取XML文档 349
12.5 XML语言 350
12.5.1 XPath:在 XML中指定路径表达式 350
12.5.2 XQuery:在XML中指定查询 352
12.5.3 XML相关的其他语言和协议 353
12.6从关系数据库中抽取XML文档 353
12.6.1基于平面或图数据生成层次XML视图 353
12.6.2断开环以实现从图到树的转换 357
12.6.3从数据库抽取XML文档的其他步骤 358
12.7本章小结 358
复习题 359
练习题 359
选读文献 359
第5部分 数据库编程技术 363
第13章SQL程序设计技术简介 363
13.1数据库程序设计:问题与技术 364
13.1.1数据库程序设计方法 364
13.1.2阻抗失配 365
13.1.3数据库程序设计中的典型交互序列 365
13.2嵌入式SQL、动态SQL和SQLJ 366
13.2.1用嵌入式SQL检索单个元组 366
13.2.2用嵌入式SQL使用游标检索多个元组 369
13.2.3使用动态SQL在运行时指定查询 371
13.2.4 SQLJ:Java中嵌入SQL命令 372
13.2.5 SQLJ中使用迭代器 374
检索多个元组 374
13.3使用函数调用的数据库程序设计:SQL/CLI和JDBC 376
13.3.1以C语言为宿主语言,使用SQL/CLI进行数据库程序设计 376
13.3.2 JDBC:面向Java程序设计的SQL函数调用 380
13.4数据库存储过程和SQL/PSM 383
13.4.1数据库存储过程和函数 383
13.4.2 SQL/PSM:扩展SQL以指定持久存储模块 385
13.5三类方法的比较 386
13.6本章小结 386
复习题 387
练习题 387
选读文献 388
第14章 使用PHP进行Web数据库程序设计 389
14.1一个简单的PHP示例 389
14.2 PHP基本特性概述 392
14.2.1 PHP变量、数据类型和程序设计结构 392
14.2.2 PHP数组 393
14.2.3 PHP函数 394
14.2.4 PHP服务器变量和表单 396
14.3 PHP数据库程序设计概述 397
14.3.1连接数据库 397
14.3.2从表单中汇集数据并插入记录 398
14.3.3数据库表的检索查询 399
14.4本章小结 400
复习题 400
练习题 401
选读文献 401
第6部分 数据库设计理论与规范化 405
第15章 函数依赖和关系数据库规范化 405
15.1关系模式的非形式化设计准则 406
15.1.1给予关系中的属性以清晰的定义 406
15.1.2元组中的冗余信息和更新异常 409
15.1.3元组中的NULL值 411
15.1.4生成伪元组 412
15.1.5设计准则的总结和讨论 414
15.2函数依赖 414
5.2.1函数依赖的定义 414
15.3基于主码的范式 416
15.3.1关系的规范化 417
15.3.2范式的实际使用 417
15.3.3码的定义和参与码的属性 418
15.3.4第一范式 418
15.3.5第二范式 421
15.3.6第三范式 422
15.4第二范式和第三范式的通用定义 423
15.4.1第二范式的通用定义 424
15.4.2第三范式的通用定义 424
15.4.3解释第三范式的通用定义 426
15.5 Boyce-Codd范式 426
15.6多值依赖和第四范式 428
15.6.1多值依赖的形式化定义 429
15.7连接依赖和第五范式 430
15.8本章小结 432
复习题 432
练习题 433
实验题 436
选读文献 437
第16章 关系数据库设计算法和其他依赖 438
16.1函数依赖的高级主题:推理规则、等价和最小覆盖 439
16.1.1函数依赖的推理规则 439
16.1.2函数依赖集的等价 442
16.1.3最小函数依赖集 443
16.2关系分解的性质 444
16.2.1关系分解和范式的不足 444
16.2.2分解的依赖保持性质 445
16.2.3分解的非加性(无损)连接性质 446
16.2.4检验二元分解的非加性连接性质 448
16.2.5连续非加性连接分解 449
16.3关系数据库模式设计算法 449
16.3.1保持依赖的3NF模式分解 449
16.3.2非加性连接分解成BCNF模式 450
16.3.3保持依赖和非加性(无损)连接分解成3NF模式 451
16.4 NULL值和悬挂元组问题 453
16.4.1 NULL值和悬挂元组问题概述 453
16.4.2规范化算法的讨论 456
16.5多值依赖和第四范式的进一步讨论 457
16.5.1函数依赖和多值依赖的推理规则 457
16.5.2第四范式回顾 458
16.5.3非加性连接分解成4NF关系 459
16.6其他依赖和范式 460
16.6.1包含依赖 460
16.6.2模板依赖 461
16.6.3基于算术函数和例程的函数依赖 462
16.6.4域-码范式 462
16.7本章小结 463
复习题 463
练习题 464
实验题 465
选读文献 465
第7部分 文件结构、索引与散列 469
第17章 磁盘存储、基本文件结构和散列 469
17.1概述 469
17.1.1存储层次和存储设备 470
17.1.2数据库的存储 471
17.2二级存储设备 472
17.2.1磁盘设备的硬件描述 472
17.2.2磁带存储设备 476
17.3块缓冲 477
17.4把文件记录保存在磁盘上 478
17.4.1记录和记录类型 478
17.4.2文件、定长记录和变长记录 479
17.4.3记录块、跨块记录与非跨块记录 480
17.4.4在磁盘上分配文件块 481
17.4.5文件首部 481
17.5文件操作 482
17.6无序记录文件(堆文件) 484
17.7有序记录文件(排序文件) 485
17.8散列技术 488
17.8.1内部散列 488
17.8.2磁盘文件的外部散列法 490
17.8.3允许动态文件扩展的散列技术 492
17.9其他主文件组织 496
17.9.1混合记录文件 496
17.9.2 B树和其他数据结构作为主组织 497
17.10使用RAID技术的并行磁盘访问 497
17.10.1用RAID增强可靠性 498
17.10.2用RAID改善性能 499
17.10.3 RAID组织体系和级别 499
17.11新的存储系统 500
17.11.1存储局域网SAN 500
17.11.2网络连接存储NAS 501
17.11.3 iSCSI存储系统 501
17.12本章小结 502
复习题 503
练习题 504
选读文献 507
第18章 文件的索引结构 508
18.1单级有序索引的类型 508
18.1.1主索引 509
18.1.2聚簇索引 511
18.1.3辅助索引 513
18.1.4小结 516
18.2多级索引 517
18.3使用B树与B﹢树的动态多级索引 520
18.3.1搜索树和B树 520
18.3.2B﹢树 524
18.4多码上的索引 531
18.4.1多属性上的有序索引 531
18.4.2分区散列法 532
18.4.3网格文件 532
18.5其他类型的索引 533
18.5.1散列索引 533
18.5.2位图索引 533
18.5.3基于函数的索引 535
18.6关于索引的一般主题 537
18.6.1逻辑索引和物理索引 537
18.6.2讨论 537
18.6.3关系的列存储 538
18.7本章小结 538
复习题 539
练习题 540
选读文献 542
第8部分 查询处理与优化、数据库调试 547
第19章 查询处理和优化的算法 547
19.1把SQL查询转换成关系代数 548
19.2外排序算法 549
19.3选择与连接运算的算法 551
19.3.1选择运算的实现 551
19.3.2连接运算的实现 554
19.4投影和集合运算的算法 560
19.5聚集运算和外连接的实现 561
19.5.1聚集运算的实现 561
19.5.2外连接的实现 562
19.6用流水线组合运算 563
19.7在查询优化中使用启发式规则 563
19.7.1查询树和查询图的表示法 564
19.7.2查询树的启发式优化 565
19.7.3将查询树转换为查询执行计划 570
19.8利用选择度和代价估算进行查询优化 571
19.8.1查询执行的代价成分 571
19.8.2代价函数中使用的目录信息 572
19.8.3选择运算的代价函数示例 573
19.8.4连接的代价函数示例 575
19.8.5多关系查询和连接顺序 577
19.8.6说明基于代价的查询优化的示例 577
19.9 Oracle中的查询优化概述 579
19.10语义查询优化 580
19.11本章小结 581
复习题 581
练习题 581
选读文献 582
第20章 物理数据库设计和调优 584
20.1关系数据库中的物理数据库设计 584
20.1.1影响物理数据库设计的因素 584
20.1.2物理数据库设计决策 585
20.2关系系统中的数据库调优概述 588
20.2.1索引的调优 589
20.2.2数据库设计的调优 589
20.2.3查询的调优 590
20.2.4其他的查询优化原则 592
20.3本章小结 593
复习题 593
选读文献 594
第9部分 事务处理、并发控制与恢复 597
第21章 事务处理的概念与理论简介 597
21.1事务处理简介 597
21.1.1单用户系统与多用户系统 597
21.1.2事务、数据库项、读写操作和DBMS缓冲区 598
21.1.3并发控制的必要性 600
21.1.4恢复的必要性 602
21.2事务和系统的概念 603
21.2.1事务状态和附加操作 603
21.2.2系统日志 604
21.2.3事务的提交点 605
21.3事务的理想特性 605
21.4基于可恢复性的调度特征 606
21.4.1事务的调度(历史) 606
21.4.2基于可恢复性的调度特征 607
21.5基于可串行性调度的特征描述 609
21.5.1串行、非串行和冲突-可串行化调度 610
21.5.2测试调度的冲突可串行性 612
21.5.3可串行性如何用于并发控制 615
21.5.4视图等价和视图可串行性 615
21.5.5等价调度的其他类型 616
21.6 SQL对事务的支持 617
21.7本章小结 618
复习题 619
练习题 620
选读文献 621
第22章 并发控制技术 622
22.1并发控制的两阶段加锁技术 622
22.1.1锁类型和系统锁表 622
22.1.2通过两阶段加锁保证可串行性 626
22.1.3死锁和饿死处理 628
22.2基于时间戳排序的并发控制 631
22.2.1时间戳 631
22.2.2时间戳排序算法 631
22.3多版本并发控制技术 633
22.3.1基于时间戳排序的多版本技术 633
22.3.2使用验证锁的多版本两阶段加锁 634
22.4确认(乐观)并发控制技术 635
22.5数据项的粒度和多粒度加锁 636
22.5.1加锁的粒度级别考虑 636
22.5.2多粒度级别加锁 637
22.6在索引中使用加锁进行并发控制 639
22.7其他并发控制问题 639
22.7.1记录的插入、删除和幻像 640
22.7.2交互式事务 640
22.7.3锁存器 641
22.8本章小结 641
复习题 641
练习题 642
选读文献 642
第23章 数据库恢复技术 644
23.1恢复概念 644
23.1.1恢复概述和恢复算法的分类 644
23.1.2磁盘块的高速缓存(缓冲) 645
23.1.3先写日志、窃取/非窃取和强制/非强制 646
23.1.4系统日志中的检查点和模糊检查点 647
23.1.5事务回滚和级联回滚 648
23.1.6不会对数据库产生影响的事务行为 650
23.2基于延迟更新的NO-UNDO/REDO恢复 650
23.3基于即时更新的恢复技术 652
23.4镜像分页 653
23.5 ARIES恢复算法 655
23.6多数据库系统中的恢复 657
23.7数据库备份和灾难性故障恢复 658
23.8本章小结 659
复习题 660
练习题 660
选读文献 663
第10部分 其他数据库主题:安全性与分布性 667
第24章 数据库安全性 667
24.1数据库安全性问题简介 667
24.1.1安全性的类型 667
24.1.2控制措施 668
24.1.3数据库安全性和DBA 669
24.1.4访问控制、用户账户和数据库审计 670
24.1.5敏感数据和泄漏的类型 670
24.1.6信息安全性和信息保密性之间的关系 671
24.2基于授予和收回权限的自主访问控制 672
24.2.1自主性权限的类型 672
24.2.2使用视图指定权限 673
24.2.3权限的收回 673
24.2.4使用GRANT OPTION选项传播权限 674
24.2.5权限的授予和收回示例 674
24.2.6传播权限的限定 676
24.3多级安全性的强制访问控制和基于角色的访问控制 676
24.3.1自主访问控制与强制访问控制的比较 679
24.3.2基于角色的访问控制 679
24.3.3基于标签的安全性和行级访问控制 680
24.3.4 XML访问控制 681
24.3.5电子商务和Web的访问控制策略 681
24.4 SQL注入 682
24.4.1 SQL注入方法 682
24.4.2与SQL注入相关的危险 684
24.4.3 SQL注入的防御技术 684
24.5统计数据库的安全性简介 685
24.6流控制简介 686
24.6.1隐蔽信道 687
24.7加密和公钥架构 688
24.7.1数据加密标准和高级加密标准 688
24.7.2对称密钥算法 688
24.7.3公钥(非对称)加密 689
24.7.4数字签名 690
24.7.5数字证书 690
24.8保密性问题和保护 691
24.9数据库安全性所面临的挑战 691
24.9.1数据质量 691
24.9.2知识产权 692
24.9.3数据库生存能力 692
24.10 Oracle中基于标签的安全性 692
24.10.1虚拟保密数据库(VPD)技术 693
24.10.2标签安全性的体系结构 693
24.10.3数据标签和用户标签如何协同工作 694
24.11本章小结 695
复习题 695
练习题 696
选读文献 697
第25章 分布式数据库 699
25.1分布式数据库概念 700
25.1.1 DDB和多处理器系统的区别 700
25.1.2透明性 701
25.1.3自治性 702
25.1.4可靠性和可用性 702
25.1.5分布式数据库的优势 702
25.1.6分布式数据库的附加功能 703
25.2分布式数据库系统的类型 704
25.2.1联邦式数据库管理系统问题 705
25.3分布式数据库体系结构 706
25.3.1并行体系结构与分布式体系结构 706
25.3.2纯粹的分布式数据库的一般体系结构 708
25.3.3联邦式数据库模式的体系结构 708
25.3.4三层客户-服务器体系结构概述 710
25.4分布式数据库设计中的数据分片、复制和分配技术 711
25.4.1数据分片 711
25.4.2数据复制和分配 714
25.4.3分片、分配和复制示例 714
25.5分布式数据库中的查询处理和优化 717
25.5.1分布式查询处理 717
25.5.2分布式查询处理的数据传输代价 718
25.5.3使用半连接的分布式查询处理 719
25.5.4查询和更新分解 720
25.6分布式数据库中的事务管理概述 722
25.6.1两阶段提交协议 723
25.6.2三阶段提交协议 723
25.6.3支持事务管理的操作系统 723
25.7分布式数据库中的并发控制和恢复概述 724
25.7.1基于数据项标识副本的分布式并发控制 724
25.7.2基于投票的分布式并发控制 726
25.7.3分布式恢复 726
25.8分布式目录管理 726
25.9分布式数据库的发展趋势 727
25.9.1云计算 727
25.9.2对等网络数据库系统 728
25.10 Oracle分布式数据库 729
25.10.1目录服务 731
25.11本章小结 732
复习题 733
练习题 734
选读文献 735
第11部分 高级数据库模型、系统与应用 741
第26章 面向高级应用的增强数据模型 741
26.1主动数据库的概念和触发器 742
26.1.1主动数据库和触发器的一般模型 742
26.1.2主动数据库的设计和实现 746
26.1.3 STARBURST系统中语句级主动规则的示例 748
26.1.4主动数据库的潜在应用 750
26.1.5 SQL-99中的触发器 750
26.2时态数据库概念 751
26.2.1时间表示法、日历和时间维 752
26.2.2在关系数据库中通过元组版本化加入时间 753
26.2.3在面向对象数据库中通过属性版本化加入时间 758
26.2.4时态查询构造与TSQL2语言 760
26.2.5时间序列数据 761
26.3空间数据库概念 762
26.3.1空间数据库介绍 762
26.3.2空间数据类型和模型 763
26.3.3空间算子 764
26.3.4空间数据索引 765
26.3.5空间数据挖掘 766
26.3.6空间数据应用 767
26.4多媒体数据库概念 767
26.4.1图像的自动分析 769
26.4.2图像中的对象识别 770
26.4.3图像的语义标签 770
26.4.4音频数据源的分析 771
26.5演绎数据库介绍 771
26.5.1演绎数据库概述 771
26.5.2 Prolog/Datalog表示法 772
26.5.3 Datalog表示法 774
26.5.4子句形式与Horn子句 774
26.5.5规则解释 775
26.5.6 Datalog程序及其安全性 778
26.5.7关系操作的使用 780
26.5.8非递归Datalog查询的估算 781
26.6本章小结 782
复习题 783
练习题 784
选读文献 787
第27章 信息检索和Web搜索引论 790
27.1信息检索概念 790
27.1.1信息检索介绍 790
27.1.2数据库与IR系统的对比 792
27.1.3 IR的简要历史 793
27.1.4 IR系统中的交互方式 794
27.1.5通用的IR流水线结构 795
27.2检索模型 797
27.2.1布尔模型 797
27.2.2向量空间模型 797
27.2.3概率模型 799
27.2.4语义模型 800
27.3 IR系统中的查询类型 800
27.3.1关键字查询 801
27.3.2布尔查询 801
27.3.3短语查询 801
27.3.4近似查询 801
27.3.5通配符查询 802
27.3.6自然语言查询 802
27.4文本预处理 802
27.4.1删除停用词 802
27.4.2词干化 803
27.4.3使用辞典 803
27.4.4其他预处理步骤:数字、连字号、标点符号、格 804
27.4.5信息抽取 804
27.5倒排索引 805
27.6搜索相关性的评价尺度 806
27.6.1查全率和查准率 807
27.6.2平均查准率 808
27.6.3查全率/查准率曲线 808
27.6.4 F-Score 808
27.7 Web搜索和分析 809
27.7.1 Web分析及其与信息检索的关系 809
27.7.2搜索Web 810
27.7.3 Web页面的链接结构分析 811
27.7.4 Web内容分析 812
27.7.5 Web内容分析方法 814
27.7.6 Web用法分析 815
27.7.7 Web分析的实际应用 816
27.8信息检索的发展趋势 817
27.8.1刻面搜索 817
27.8.2社交搜索 817
27.8.3会话搜索 818
27.9本章小结 818
复习题 819
选读文献 820
第28章 数据挖掘概念 822
28.1数据挖掘技术概述 822
28.1.1数据挖掘与数据仓库 822
28.1.2数据挖掘是知识发现过程的一部分 823
28.1.3数据挖掘和知识发现的目标 823
28.1.4数据挖掘期间知识发现的类型 824
28.2关联规则 825
28.2.1市场购物篮模型、支持度与可信度 825
28.2.2 Apriori算法 826
28.2.3采样算法 828
28.2.4频繁模式(FP)树和FP增长算法 828
28.2.5分区算法 831
28.2.6其他类型的关联规则 831
28.2.7关联规则的附加考虑 834
28.3分类 834
28.4聚类 837
28.5其他数据挖掘问题的方法 839
28.5.1序列模式的发现 839
28.5.2时间序列中模式的发现 839
28.5.3回归 839
28.5.4神经网络 840
28.5.5遗传算法 840
28.6数据挖掘的应用 841
28.7商业化数据挖掘工具 842
28.7.1用户界面 842
28.7.2应用程序接口 842
28.7.3未来的方向 842
28.8本章小结 843
复习题 844
练习题 844
选读文献 846
第29章 数据仓库和OLAP概述 847
29.1概述、定义和术语 847
29.2数据仓库的特性 848
29.3数据仓库的数据模型 849
29.4构建数据仓库 853
29.5数据仓库的典型功能 855
29.6数据仓库和视图 856
29.7数据仓库实现中的困难 857
29.8本章小结 858
复习题 858
选读文献 858
附录 861
附录A ER模型的可选图形表示法 861
附录B磁盘参数 864
附录C QBE语言概述 866
C.1 QBE中的基本检索 866
C.2 QBE中的分组、聚集和数据库修改 869
选读文献 872
文献中所用缩写 872
文献引文格式 873
参考文献 874