《资料库管理系统原理与设计(第3版)》是2012年清华大学出版社出版的图书,作者是罗摩克里希纳 (Raghu Ramakrishnan、格尔基 (Johannes Gehrke)。
基本介绍
- 书名:资料库管理系统原理与设计(第3版)
- 作者:罗摩克里希纳 (Raghu Ramakrishnan、格尔基 (Johannes Gehrke)
- ISBN:9787302079392
- 定价:69.00
- 出版社:清华大学出版社
- 出版时间:2012-03-22
- 装帧:平装
内容简介
本书由于内容全面,实践性强,已经成为了资料库课程的首选教材。全书分为资料库基础,应用程式开发、存储与索引、查询评估、事务管理、资料库设计与调整、高级主题等七大部分,对资料库的设计与使用、资料库管理系统基本原理与实现技术,以及资料库研究的新进展做了详细论述。
编辑推荐
《资料库管理系统原理与设计》(第3版)可作为高等院校计算机专业本科生、研究生和教师的教材和教学参考,对于从事资料库系统研究以及学习资料库系统技术的人也很有参考价值。
作者简介
作者:(美国)罗摩克里希纳 (Raghu Ramakrishnan) (美国)格尔基 (Johannes Gehrke) 译者:周立柱 张志强 李超 王煜
目录
第1章资料库系统概述3
1.1管理数据4
1.2历史回顾5
1.3档案系统和资料库管理系统6
1.4资料库管理系统的优点7
1.5资料库管理系统中数据的描述和存储8
1.5.1关係模型8
1.5.2资料库管理系统的抽象级别9
1.5.3数据独立性11
1.6资料库管理系统中的查询11
1.7事务管理12
1.7.1事务的并发执行13
1.7.2未完成的事务和系统崩溃13
1.7.3注意要点14
1.8资料库管理系统的结构14
1.9与资料库打交道的人15
1.10複习题16
第2章实体联繫模型19
2.1资料库设计与ER图20
2.1.1其他步骤20
2.2实体、属性和实体集21
2.3联繫和联繫集22
2.4ER模型的其他特徵24
2.4.1码约束24
2.4.2参与约束25
2.4.3弱实体25
2.4.4类层次27
2.4.5聚合29
2.5用ER模型进行概念资料库设计29
2.5.1实体对属性30
2.5.2实体与联繫31
2.5.3二元与三元联繫32
2.5.4聚合与三元联繫33
2.6大型企业的概念资料库设计34
2.7统一建模语言34
2.8案例研究:网上书店35
2.8.1需求分析36
2.8.2概念设计36
2.9複习题37
第3章关係模型42
3.1关係模型简介43
3.1.1使用SQL创建和修改关係45
3.2关係的完整性约束46
3.2.1码约束47
3.2.2外码约束48
3.2.3一般约束50
3.3完整性约束的强制执行50
3.3.1事务与约束52
3.4查询关係数据53
3.5逻辑资料库设计:从ER模型到关係模型55
3.5.1从实体集到关係表55
3.5.2从联繫集(不包括约束)到关係表56
3.5.3转换带码约束的联繫集57
3.5.4转换带有参与约束的联繫集58
3.5.5转换弱实体集60
3.5.6转换类层次60
3.5.7转换带聚合的ER图61
3.5.8ER模型到关係模型:更多的示例62
3.6视图简介63
3.6.1视图、数据独立性和安全64
3.6.2视图的更新64
3.7删除/修改关係表和视图67
3.8案例研究:网上书店67
3.9複习题69
第4章关係代数和演算74
4.1预备知识74
4.2关係代数75
4.2.1选择和投影75
4.2.2集合操作76
4.2.3重命名78
4.2.4连线78
4.2.5除80
4.2.6关係代数查询的其他示例81
4.3关係演算85
4.3.1元组关係演算86
4.3.2域关係演算89
4.4代数与演算的表达能力91
4.5複习题92
第5章SQL:查询、约束与触发器96
5.1概述97
5.1.1章节组织97
5.2基本SQL查询的形式99
5.2.1基本SQL查询的示例102
5.2.2SELECT命令中的表达式和字元串103
5.3UNION、INTERSECT和EXCEPT104
5.4嵌套查询107
5.4.1嵌套查询简介107
5.4.2相关嵌套查询109
5.4.3集合比较操作109
5.4.4有关嵌套查询的其他示例110
5.5聚集操作符111
5.5.1GROUPBY和HAVING子句114
5.5.2聚集查询的其他示例117
5.6空值120
5.6.1使用空值的比较121
5.6.2逻辑连线运算AND、OR和NOT121
5.6.3SQL构造符的作用121
5.6.4外连线122
5.6.5禁止使用空值122
5.7SQL中的複杂完整性约束123
5.7.1单个表上的约束123
5.7.2域约束与DISTINCT类型123
5.7.3断言:多个表上的完整性约束124
5.8触发器和主动资料库125
5.8.1SQL的触发器示例125
5.9设计主动资料库127
5.9.1为什幺触发器难以理解127
5.9.2约束和触发器127
5.9.3触发器的其他用途128
5.10複习题128
第二部分应用程式开发
第6章资料库套用开发139
6.1从应用程式中访问资料库140
6.1.1嵌入式SQL140
6.1.2游标142
6.1.3动态SQL145
6.2JDBC简介146
6.2.1JDBC体系结构147
6.3JDBC类和接口148
6.3.1JDBC驱动器管理148
6.3.2连线到数据源148
6.3.3执行SQL语句150
6.3.4结果集151
6.3.5异常和警告152
6.3.6检查资料库元数据153
6.4SQLJ154
6.4.1编写SQLJ代码155
6.5存储过程157
6.5.1创建一个简单的存储过程157
6.5.2调用存储过程158
6.5.3SQL/PSM159
6.6案例研究:网上书店160
6.7複习题163
第7章Internet套用166
7.1引言166
7.2Internet的一些概念167
7.2.1统一资源标识符167
7.2.2超文本传输协定HTTP168
7.3HTML文档170
7.4XML文档171
7.4.1XML简介172
7.4.2XMLDTD174
7.4.3特定领域的DTD177
7.5三层套用体系结构178
7.5.1单层和客户伺服器体系结构178
7.5.2三层体系结构180
7.5.3三层体系结构的优点181
7.6展示层182
7.6.1HTML表单182
7.6.2JavaScript184
7.6.3样式表185
7.7中间层188
7.7.1CGI:通用网关接口188
7.7.2套用伺服器189
7.7.3Servlet190
7.7.4JSP192
7.7.5维护状态193
7.8案例研究:网上书店195
7.9複习题197
第三部分存储与索引
第8章存储与索引概述207
8.1外部存储上的数据208
8.2档案组织与索引208
8.2.1聚簇索引209
8.2.2主索引和次索引210
8.3索引数据结构210
8.3.1基于哈希的索引211
8.3.2基于树的索引212
8.4不同档案组织的比较213
8.4.1代价模型214
8.4.2堆档案214
8.4.3排序档案215
8.4.4聚簇档案216
8.4.5具有非聚簇树索引的堆档案217
8.4.6具有非聚簇哈希索引的堆档案218
8.4.7I/O代价的比较219
8.5索引和性能调整219
8.5.1工作负载的影响220
8.5.2聚簇索引组织220
8.5.3複合搜寻码222
8.5.4SQL∶1999中的索引规範225
8.6複习题225
第9章存储数据:磁碟和档案230
9.1存储层次230
9.1.1磁碟231
9.1.2磁碟结构对性能的影响233
9.2廉价冗余磁碟阵列(RAID)233
9.2.1数据划分234
9.2.2冗余234
9.2.3冗余的层次235
9.2.4RAID级别的选择238
9.3磁碟空间管理238
9.3.1跟蹤空闲块238
9.3.2使用作业系统的档案系统来管理磁碟空间238
9.4缓冲区管理器239
9.4.1缓冲区替换策略241
9.4.2资料库管理系统和作业系统的缓冲区管理241
9.5记录档案243
9.5.1堆档案的实现243
9.6页格式245
9.6.1定长记录245
9.6.2变长记录246
9.7记录格式247
9.7.1定长记录248
9.7.2变长记录248
9.8複习题249
第10章树结构索引253
10.1树索引介绍254
10.2索引顺序存取方法255
10.2.1溢出页与加锁考虑257
10.3B+树:一种动态索引结构257
10.3.1节点格式258
10.4搜寻259
10.5插入260
10.6删除262
10.7重複266
10.8实际的B+树267
10.8.1码压缩267
10.8.2块载入B+树268
10.8.3秩的概念270
10.8.4rid上插入和删除的影响271
10.9複习题271
第11章基于哈希的索引277
11.1静态哈希278
11.1.1记号与约定279
11.2可扩展哈希279
11.3线性哈希283
11.4可扩展哈希与线性哈希的关係288
11.5複习题288
第四部分查询评估
第12章查询求解概述295
12.1系统目录296
12.1.1目录中的信息296
12.2操作符求解概述298
12.2.1三种常用技术298
12.2.2访问路径298
12.3关係型操作的算法300
12.3.1选择300
12.3.2投影301
12.3.3连线301
12.3.4其他操作302
12.4查询最佳化概述303
12.4.1查询求解计画303
12.4.2多处理器查询:流水线求解304
12.4.3叠代操作的接口305
12.5可选计画:研究这一问题动机的示例306
12.5.1下推选择306
12.5.2使用索引307
12.6一个典型的最佳化器做些什幺310
12.6.1考虑不同的查询计画310
12.6.2估算计画的代价311
12.7複习题312
第13章外排序315
13.1什幺时候DBMS需要对数据进行排序315
13.2简单的两路归併排序算法316
13.3外归併排序318
13.3.1段数的最小化320
13.4最小化I/O开销和I/O的次数321
13.4.1块I/O321
13.4.2双缓冲323
13.5使用B+树来排序323
13.5.1聚簇索引324
13.5.2非聚簇索引324
13.6複习题326
第14章关係操作求解328
14.1选择操作329
14.1.1无索引、未排序的数据329
14.1.2无索引、排序的数据330
14.1.3B+树索引330
14.1.4哈希排序、等价选择331
14.2一般的选择条件331
14.2.1CNF和索引匹配332
14.2.2求解无析取的选择332
14.2.3求解有析取的选择333
14.3投影操作334
14.3.1基于排序的投影334
14.3.2基于哈希函式的投影335
14.3.3用于投影的排序和哈希336
14.3.4用于投影的索引使用337
14.4连线操作337
14.4.1嵌套循环连线算法338
14.4.2排序归併连线算法341
14.4.3哈希连线345
14.4.4一般的连线条件348
14.5集合操作349
14.5.1用于并和差的排序349
14.5.2用于并和差的哈希349
14.6聚集操作350
14.6.1使用索引实现聚集351
14.7缓冲的影响351
14.8複习题352
第15章典型的关係查询最佳化器357
15.1将SQL查询转换成关係代数表达式358
15.1.1将SQL查询分解成块358
15.1.2把查询块表示成关係代数表达式359
15.2估算执行计画的开销360
15.2.1估计结果的大小360
15.3关係代数的等价364
15.3.1选择364
15.3.2投影364
15.3.3叉积和连线364
15.3.4选择、投影和连线365
15.3.5其他的等价366
15.4列举可选的执行计画366
15.4.1单关係查询367
15.4.2多关係查询370
15.5嵌套子查询375
15.6SystemR最佳化器377
15.7查询最佳化的其他方法377
15.8複习题378
第五部分事务管理
第16章事务管理概述389
16.1ACID属性390
16.1.1一致性和隔离性390
16.1.2原子性和持久性391
16.2事务和调度391
16.3事务的并发执行392
16.3.1并发执行的动机392
16.3.2可串列化392
16.3.3交叉执行带来的异常394
16.3.4包括中止事务的调度396
16.4基于加锁的并发控制397
16.4.1严格的两阶段加锁397
16.4.2死锁398
16.5加锁的性能399
16.6SQL对事务的支持399
16.6.1创建和结束事务399
16.6.2应该锁住什幺400
16.6.3SQL中事务的特性401
16.7崩溃恢复简介403
16.7.1偷帧和强制写页403
16.7.2正常执行时与恢复相关的执行步骤404
16.7.3ARIES简介405
16.7.4原子性:实现回滚405
16.8複习题405
第17章并发控制409
17.12PL、可串列性和可恢复性410
17.1.1观测可串列化411
17.2加锁管理简介412
17.2.1实现加锁和解锁请求412
17.3锁转换413
17.4死锁处理414
17.4.1死锁预防415
17.5特殊的加锁技术416
17.5.1动态资料库和幻影问题416
17.5.2B+树的并发控制417
17.5.3多粒度锁419
17.6不加锁的并发控制420
17.6.1乐观的并发控制420
17.6.2基于时间戳的并发控制422
17.6.3多版本并发控制424
17.7複习题425
第18章崩溃恢复431
18.1ARIES算法简介432
18.2日誌433
18.3与恢复相关的其他数据结构435
18.4写优先日誌协定435
18.5检查点436
18.6从系统崩溃中恢复436
18.6.1分析阶段437
18.6.2重做阶段438
18.6.3反做阶段439
18.7介质恢复442
18.8其他算法以及与并发控制的互动作用442
18.9複习题443
第六部分资料库设计与调整
第19章模式求精与範式451
19.1模式求精简介452
19.1.1冗余导致的问题452
19.1.2模式分解453
19.1.3模式分解中的一些问题454
19.2函式依赖455
19.3函式依赖推理456
19.3.1函式依赖集的闭包456
19.3.2属性闭包457
19.4範式458
19.4.1鲍依斯柯德範式458
19.4.2第三範式459
19.5分解的特性461
19.5.1无损连线分解461
19.5.2保持依赖分解462
19.6规範化463
19.6.1分解为BCNF463
19.6.2分解为3NF464
19.7资料库设计中的模式求精467
19.7.1一个实体集上的约束467
19.7.2一个联繫集上的约束468
19.7.3识别实体的属性468
19.7.4识别实体集469
19.8其他类型的依赖470
19.8.1多值依赖470
19.8.2第四範式472
19.8.3连线依赖473
19.8.4第五範式473
19.8.5包含依赖473
19.9案例研究:网上书店474
19.10複习题475
第20章物理资料库设计和调整482
20.1物理资料库设计简介483
20.1.1资料库负载483
20.1.2物理设计与调整决策484
20.1.3资料库调整的必要性484
20.2索引选择的指导方针485
20.3索引选择的基本示例486
20.4聚簇和索引488
20.4.1两个关係的协同聚簇489
20.5使只需索引的计画成为可能的索引490
20.6用于确定索引的辅助工具491
20.6.1自动的索引选择491
20.6.2索引调整嚮导如何工作492
20.7资料库调整简介494
20.7.1调整索引494
20.7.2调整概念模式495
20.7.3调整查询和视图496
20.8调整概念模式时的选择496
20.8.1设定一个弱範式497
20.8.2非规範化497
20.8.3分解的选择497
20.8.4BCNF关係的垂直分解498
20.8.5水平分解499
20.9调整查询和视图中的选择499
20.10并发控制的影响501
20.10.1减少锁的保持时间501
20.10.2减少热点502
20.11案例研究:网上书店503
20.11.1资料库的调整504
20.12DBMS评测基準504
20.12.1着名的DBMS评测基準505
20.12.2评测基準的使用505
20.13複习题506
第21章安全与认证512
21.1资料库安全简介513
21.2访问控制513
21.3任意访问控制514
21.3.1授予和回收视图的访问控制和完整性约束520
21.4强制性访问控制522
21.4.1多级关係和多实例化523
21.4.2转换通道,DoD安全级别524
21.5Internet套用的安全性525
21.5.1加密525
21.5.2认证伺服器:SSL协定526
21.5.3数字签名527
21.6有关安全的其他问题528
21.6.1资料库管理员的任务528
21.6.2统计资料库的安全529
21.7案例研究:网上书店530
21.8複习题531
第七部分高级主题
第22章并行与分散式资料库537
22.1简介537
22.2并行资料库系统的可用结构538
22.3并行查询处理539
22.3.1数据划分540
22.3.2并行化顺序数据操作处理程式541
22.4数据操作的并行化541
22.4.1批量载入和扫描541
22.4.2排序541
22.4.3连线542
22.5并行查询最佳化544
22.6分散式资料库简介544
22.6.1分散式资料库系统的类型545
22.7分散式DBMS的体系结构545
22.7.1客户/伺服器系统545
22.7.2协同伺服器系统546
22.7.3中间件系统546
22.8分散式DBMS的数据存储546
22.8.1划分547
22.8.2複製547
22.9分散式目录管理548
22.9.1命名对象548
22.9.2目录结构548
22.9.3分布数据的独立性549
22.10分散式查询处理549
22.10.1分散式DBMS中无连线的查询550
22.10.2分散式DBMS中的连线操作550
22.10.3基于代价的查询最佳化553
22.11分散式数据的更新554
22.11.1同步複製554
22.11.2异步複製555
22.12分散式事务557
22.13分散式并发控制557
22.13.1分散式死锁558
22.14分散式事务恢复559
22.14.1事务正常执行和提交协定559
22.14.2发生故障后进行恢复560
22.14.3重新讨论两阶段提交561
22.14.4三阶段提交562
22.15複习题563
第23章对象资料库系统571
23.1研究动机示例572
23.1.1新的数据类型573
23.1.2操纵新类型数据574
23.2结构化数据类型576
23.2.1集合类型576
23.3结构化类型的数据操纵577
23.3.1行操作577
23.3.2数组操作577
23.3.3其他集合类型的操作578
23.3.4涉及嵌套集合的查询示例578
23.4封装和抽象数据类型579
23.4.1定义方法580
23.5继承581
23.5.1定义带有继承的类型582
23.5.2方法联编582
23.5.3集合层次583
23.6对象、对象标识符和引用类型583
23.6.1相等的概念584
23.6.2引用类型的解除584
23.6.3SQL∶1999中的URL和oid584
23.7ORDBMS的资料库设计585
23.7.1集合类型和ADTs585
23.7.2对象标识符587
23.7.3扩展ER模型588
23.7.4使用嵌套集合589
23.8实现ORDBMS的挑战590
23.8.1存储和访问方法590
23.8.2查询处理591
23.8.3查询最佳化593
23.9OODBMS594
23.9.1ODMG数据模型和ODL594
23.9.2OQL596
23.10RDBMS与OODBMS和ORDBMS的比较597
23.10.1RDBMS和ORDBMS597
23.10.2OODBMS和ORDBMS的相似点597
23.10.3OODBMS和ORDBMS的不同点597
23.11複习题598
第24章演绎资料库604
24.1递归查询简介605
24.1.1Datalog605
24.2理论基础607
24.2.1最小模型语义608
24.2.2不动点操作符609
24.2.3安全的Datalog程式610
24.2.4最小模型=最小不动点610
24.3带有否定的递归查询611
24.3.1分层612
24.4从Datalog到SQL614
24.5递归查询的求解616
24.5.1无重複推理的不动点求解616
24.5.2下移选择操作来避免不相关的推理618
24.5.3魔集算法619
24.6複习题621
第25章数据仓库与决策支持625
25.1决策支持简介626
25.2OLAP:多维数据模型627
25.2.1多维资料库设计629
25.3多维聚集查询630
25.3.1SQL∶1999中的ROLLUP和CUBE631
25.4SQL∶1999中的WINDOW查询633
25.4.1构造视窗635
25.4.2新的聚集函式635
25.5快速得到查询结果635
25.5.1得到前N个结果的查询636
25.5.2在线上聚集637
25.6OLAP实现技术638
25.6.1点阵图索引638
25.6.2连线索引640
25.6.3档案组织640
25.7数据仓库641
25.7.1创建和维护数据仓库641
25.8视图和决策支持642
25.8.1视图、OLAP和数据仓库642
25.8.2视图上的查询643
25.9视图实体化643
25.9.1视图实体化的问题644
25.10实体化视图的维护645
25.10.1视图的增量维护645
25.10.2维护数据仓库视图647
25.10.3进行视图同步的时机648
25.11複习题649
第26章数据挖掘655
26.1数据挖掘简介655
26.1.1知识发现的过程656
26.2关联计数657
26.2.1频繁项集657
26.2.2冰山式查询659
26.3规则挖掘660
26.3.1关联规则660
26.3.2找出关联规则的算法661
26.3.3关联规则和ISA层次661
26.3.4通用化关联规则662
26.3.5顺序模式663
26.3.6使用关联规则进行预测664
26.3.7贝叶斯网路664
26.3.8分类和回归规则665
26.4树结构规则666
26.4.1决策树667
26.4.2建立决策树的算法668
26.5聚簇670
26.5.1一个聚簇算法671
26.6在序列上的相似搜寻671
26.6.1找出相似序列的算法673
26.7增量挖掘和数据流673
26.7.1频繁项集的增量维护674
26.8其他的数据挖掘任务675
26.9複习题676
第27章信息检索和XML数据681
27.1冲突的世界:资料库、IR和XML682
27.1.1DBMS与IR系统682
27.2信息检索介绍683
27.2.1向量空间模型683
27.2.2词的TF/IDF权重684
27.2.3文档相似性排序685
27.2.4对成功的衡量:查準率和查全率686
27.3为文本搜寻建立索引686
27.3.1倒排索引686
27.3.2签名档案688
27.4Web搜寻引擎689
27.4.1搜寻引擎体系结构689
27.4.2使用连结信息690
27.5管理DBMS中的文本693
27.5.1松耦合的倒排索引693
27.6一个XML的数据模型693
27.6.1鬆散结构的动机694
27.6.2图模型694
27.7XQuery:查询XML数据695
27.7.1路径表达式696
27.7.2FLWR表达式696
27.7.3元素的排序697
27.7.4分组以及集合值的生成698
27.8XML查询的有效求值698
27.8.1在RDBMS中存储XML699
27.8.2对XML库进行索引701
27.9複习题704
第28章空间数据管理712
28.1空间数据和查询类型713
28.2涉及空间数据的套用714
28.3空间索引简介715
28.3.1已提出的索引结构概述716
28.4基于空间填充曲线的索引717
28.4.1区域四叉树和Z排序区域数据718
28.4.2使用Z排序的空间查询719
28.5格线档案719
28.5.1使用格线档案来处理区域721
28.6R树:点和区域数据721
28.6.1查询722
28.6.2插入和删除操作723
28.6.3并发控制724
28.6.4通用化搜寻树725
28.7高维索引问题726
28.8複习题726
第29章其他专题729
29.1高级事务处理729
29.1.1事务处理监视程式729
29.1.2新的事务模型730
29.1.3实时DBMS730
29.2数据集成730
29.3移动资料库731
29.4主存资料库732
29.5多媒体资料库732
29.6地理信息系统733
29.7时态资料库734
29.8生物资料库734
29.9信息可视化734
29.10小结735
第30章MINIBASE教学辅助软体736
30.1可用内容736
30.2MINIBASE作业概述736
30.3致谢737
参考文献738