图书目录

第1章似曾相识云计算1

1.1旧事如烟1

1.2新闻中的云计算2

1.3云计算的演进4

1.4什么是云计算5

1.5革命性概念: IT作为服务6

1.6云的规模效应7

1.7云计算的优势10

1.8云计算的五大特点11

1.9云计算的驱动力11

1.10云计算与其他计算范式的关系12

1.10.1主机计算13

1.10.2客户机服务器模式13

1.10.3服务器集群13

1.10.4网格计算13

1.10.5效用计算14

1.10.6自动计算14

1.10.7服务计算14

1.10.8并行和分布式计算15

1.11云计算的误区15

1.12云之道16

1.13云数据中心17

1.14云计算应用举例18

1.15云计算的挑战18

1.16云计算简史18

思考题19

第2章云的本体20

2.1本体是事物之本21

2.2云、云体、云平台和云计算22目录云计算之道2.3云栈22

2.3.1基础设施即服务层23

2.3.2平台即服务层24

2.3.3软件即服务层26

2.3.4云栈与装扮的比较26

2.4四层云栈模式27

2.5五层云栈模型27

2.5.1第一层: 固件/硬件层28

2.5.2第二层: 软件内核层28

2.5.3第三层: 云基本资源层29

2.5.4第四层: 云软件环境层32

2.5.5第五层: 云应用程序层33

2.6云的类型33

2.6.1公有云33

2.6.2私有云34

2.6.3社区云35

2.6.4混合云35

2.6.5行业云36

2.6.6其他云类型37

2.7云的工作负载模式37

2.7.1模式1: 时开时停模式37

2.7.2模式2: 用量迅速增长模式38

2.7.3模式3: 瞬时暴涨模式38

2.7.4模式4: 周期性增减模式38

2.8IT作为服务39

2.9云体控制器40

2.10云计算的主要特征40

思考题42

第3章云计算的软件架构43

3.1架构43

3.2云计算的软件工程44

3.3合理架构的重要性45

3.4云计算的现状46

3.5横向和纵向扩展46

3.6计算架构的进化48

3.6.1中央集权架构48

3.6.2客户机服务器架构49

3.6.3中间层架构49

3.6.4浏览器服务器架构49

3.6.5B/SC/S混合架构50

3.6.6面向服务的架构51

3.7什么才是好的云架构51

3.8云计算架构的二维视角52

3.8.1基础架构的分层结构52

3.8.2REST架构: 云计算的软件架构53

3.8.3RESTful Web服务54

3.9云应用程序的结构54

3.10云应用软件的编程模型55

3.10.1面向对象的编程56

3.10.2有状态和无状态连接56

3.10.3关注点分离58

3.10.4异步消息传输61

3.10.5云应用程序编写的综合考虑62

思考题63

第4章虚拟化技术64

4.1万般皆虚拟65

4.2什么是虚拟化65

4.3虚拟化的层级66

4.4虚拟机监视器67

4.5虚拟机架构68

4.6虚拟机监视器的特征69

4.7系统虚拟化的方式70

4.7.1物理CPU资源的控制70

4.7.2可虚拟化和不可虚拟化的指令集结构71

4.7.3二进制翻译72

4.7.4准虚拟化72

4.7.5硬件支持的虚拟化73

4.7.6内存资源的控制74

4.7.7内存页面的分配策略74

4.7.8内存管理单元的虚拟化76

4.8IO资源的控制78

4.8.1软件仿真78

4.8.2准虚拟化79

4.8.3直接分配79

4.9商用虚拟机技术80

4.9.1Xen虚拟机技术80

4.9.2KVM虚拟机技术81

4.9.3HyperV虚拟化技术81

4.9.4VMWare ESX和ESXi虚拟化技术83

4.9.5VMWare Workstation83

4.9.6Parallels Virtuozzo虚拟化技术83

4.10高级虚拟化技术85

4.10.1存储虚拟化85

4.10.2多机虚拟化87

4.10.3多机IO虚拟化87

4.10.4应用虚拟化87

4.10.5使用虚拟化88

4.10.6网络虚拟化88

4.10.7灾难虚拟化88

4.11虚拟上的虚拟89

思考题89

第5章Windows Azure云计算平台91

5.1Windows Azure: 云的操作系统91

5.2Windows Azure概览92

5.2.1计算能力93

5.2.2Windows Azure的持久存储94

5.2.3Windows Azure云体控制器94

5.2.4Windows Azure的鸟瞰图94

5.2.5Windows Azure的故障域与升级域95

5.2.6地理分布96

5.3在Windows Azure上运行用户程序96

5.3.1开发云应用程序96

5.3.2向云体控制器定义自己的服务96

5.3.3将应用程序发布到云端98

5.3.4监控和管理云应用程序99

5.4服务隔离和安全100

5.5Windows Azure虚拟机架构101

5.6Windows Azure的生态环境102

5.7计算和存储服务103

5.7.1Windows Azure的计算服务103

5.7.2Windows Azure存储服务104

5.7.3SQL Azure107

5.7.4.NET服务110

5.8使用Windows Azure的场景举例112

5.9使用Windows Azure云计算平台的方式113

5.9.1Windows Azure平台的生态系统114

5.9.2云Web应用程序114

5.9.3组合服务应用114

5.9.4云代理应用程序114

5.9.5B2B集成应用程序115

5.9.6网格和并行计算应用115

5.9.7混合企业级应用程序116

5.10Windows Azure应用程序的发布过程117

5.11使用Windows Azure的成本121

5.12Windows Azure云平台的当前状态122

思考题122

第6章其他主流云平台123

6.1诸神之战123

6.2谷歌的App Engine云平台125

6.2.1App Engine云计算平台概览125

6.2.2App Engine的功能125

6.2.3App Engine沙盒127

6.2.4App Engine开发环境127

6.2.5App Engine平台所提供的服务128

6.2.6App Engine的系统架构128

6.2.7App Engine数据仓库128

6.2.8App Engine的块存储仓库和内存缓存130

6.2.9App Engine的无状态服务130

6.2.10App Engine的伸缩能力130

6.2.11App Engine的安全性131

6.2.12基于Web的系统管理员界面131

6.2.13App Engine的计费131

6.3亚马逊的Web服务云计算平台132

6.3.1亚马逊AWS的架构133

6.3.2亚马逊AWS的存储服务134

6.3.3亚马逊AWS的其他服务135

6.3.4亚马逊AWS云平台的工作流程135

6.3.5AWS云计算平台的弹性137

6.3.6AWS云计算平台实际应用举例139

6.4VMWare/EMC的云计算平台139

6.4.1vCloud云平台简介139

6.4.2vCloud的系统架构139

6.4.3vCloud云平台的特点140

6.4.4Cloud Foundry云平台简介141

6.4.5Cloud Foundry云平台的特点141

6.4.6Cloud Foundry里面的服务绑定143

6.4.7Cloud Foundry的系统架构144

6.4.8Cloud Foundry的存储机制145

6.4.9Cloud Foundry的应用程序部署流程146

6.4.10Cloud Foundry云平台上的应用程序的架构146

6.4.11Cloud Foundry的公有云实例147

6.4.12Micro Cloud Foundry150

6.5Open Stack云平台150

6.5.1Open Stack的构成151

6.5.2Open Stack的安装和部署155

6.6五大云计算平台的比较155

6.7诸神大战的结局157

思考题158

第7章大数据——云计算的典型应用159

7.1多大算大?159

7.2云平台上最热门的应用160

7.3大数据无处不在160

7.4大数据的挑战: 大数定理和e科学162

7.4.1大数定理162

7.4.2e科学163

7.5什么是大数据163

7.6大数据的处理原则164

7.6.1存储资源扩展164

7.6.2文件系统扩展165

7.6.3处理方式扩展166

7.6.4Map/Reduce167

7.7Hadoop大数据处理平台170

7.7.1什么是Hadoop171

7.7.2Hadoop的构件171

7.7.3Hadoop分布式文件系统172

7.7.4Hadoop重平衡器175

7.7.5Hadoop的其他组件175

7.7.6Hadoop的安装和运行175

7.7.7Hadoop的部署176

7.7.8Hadoop系统的处理能力176

7.7.9Hadoop应用举例177

7.7.10Hadoop小结178

7.7.11Hadoop的挑战178

7.8Engine One大数据平台178

7.8.1Engine One架构179

7.8.2平台层179

7.8.3应用层180

7.8.4云管理平台180

7.8.5Engine One的系统级大数据处理180

7.8.6云数据库180

7.8.7云内容管理181

7.8.8云搜索引擎181

7.8.9InforOne182

7.9大数据处理模式的争论184

7.10大数据的终结185

思考题185

第8章云的构造与集成187

8.1集成为王187

8.2云平台构建的必然性188

8.3云工程189

8.4如何构建云平台190

8.5设定目标190

8.5.1设定云平台的总体目标190

8.5.2设定云平台的次要目标191

8.6辨别工作负载(和云的类型)192

8.7设计云平台的服务192

8.8组件选择方面的考虑194

8.9组件的集成194

8.10云平台构建的阶段性195

8.11私有云的通用架构196

8.12连接在业务所在地和云平台197

8.12.1公应用私数据198

8.12.2公数据私应用198

8.12.3公有上的私有198

8.12.4三层结构198

8.13数据中心的考虑198

8.14选择大数据框架时的考虑因素199

8.15云迁移201

8.16互联云201

8.17西西弗斯的幸福202

思考题203

第9章云计算的困惑204

9.1云计算的重演205

9.2云计算的惰性和恐惧206

9.3云计算对工作市场的影响207

9.4云计算的加速208

9.5云计算的未决议题209

9.5.1云工程问题209

9.5.2云经济问题209

9.5.3虚拟机问题211

9.5.4云安全问题211

9.5.5云私密问题212

9.5.6云监狱212

9.5.7云头痛213

9.5.8法律法规相关的问题213

9.5.9数据寡头问题214

9.5.10标准问题214

9.5.11云灾备问题214

9.6云计算的未来215

9.6.1电子钱包的广泛使用215

9.6.2元数据自动化215

9.6.3云交易市场的出现216

9.6.4弹性粒度的连续化216

9.6.5标准将会出现216

9.6.6云保险216

9.6.7云一致性217

9.6.8云漂移217

9.6.9物联网、智慧城市的支撑217

9.7云计算的疑虑218

9.8云计算的奇异点218

思考题219

参考文献220第1章似曾相识云计算1

1.1旧事如烟1

1.2新闻中的云计算2

1.3云计算的演进4

1.4什么是云计算5

1.5革命性概念: IT作为服务6

1.6云的规模效应7

1.7云计算的优势10

1.8云计算的五大特点11

1.9云计算的驱动力11

1.10云计算与其他计算范式的关系12

1.10.1主机计算13

1.10.2客户机服务器模式13

1.10.3服务器集群13

1.10.4网格计算13

1.10.5效用计算14

1.10.6自动计算14

1.10.7服务计算14

1.10.8并行和分布式计算15

1.11云计算的误区15

1.12云之道16

1.13云数据中心17

1.14云计算应用举例18

1.15云计算的挑战18

1.16云计算简史18

思考题19

第2章云的本体21

2.1本体是事物之本22

2.2云、云体、云平台和云计算232.3云栈23

2.3.1基础设施即服务层24

2.3.2平台即服务层25

2.3.3软件即服务层27

2.3.4云栈与装扮的比较27

2.4四层云栈模式28

2.5五层云栈模型28

2.5.1第一层: 固件/硬件层29

2.5.2第二层: 软件内核层29

2.5.3第三层: 云基本资源层30

2.5.4第四层: 云软件环境层33

2.5.5第五层: 云应用程序层34

2.6云的类型34

2.6.1公有云34

2.6.2私有云35

2.6.3社区云36

2.6.4混合云36

2.6.5行业云37

2.6.6其他云类型38

2.7云的工作负载模式38

2.7.1模式1: 时开时停模式38

2.7.2模式2: 用量迅速增长模式39

2.7.3模式3: 瞬时暴涨模式39

2.7.4模式4: 周期性增减模式39

2.8IT作为服务40

2.9云体控制器41

2.10云计算的主要特征41

思考题43

第3章云计算的软件架构44

3.1架构44

3.2云计算的软件工程45

3.3合理架构的重要性46

3.4云计算的现状47

3.5横向和纵向扩展47

3.6计算架构的进化49

3.6.1中央集权架构49

3.6.2客户机服务器架构50

3.6.3中间层架构50

3.6.4浏览器服务器架构50

3.6.5B/SC/S混合架构51

3.6.6面向服务的架构52

3.7什么才是好的云架构52

3.8云计算架构的二维视角53

3.8.1基础架构的分层结构53

3.8.2REST架构: 云计算的软件架构54

3.8.3RESTful Web服务55

3.9云应用程序的结构55

3.10云应用软件的编程模型56

3.10.1面向对象的编程57

3.10.2有状态和无状态连接57

3.10.3关注点分离59

3.10.4异步消息传输62

3.10.5云应用程序编写的综合考虑63

思考题64

第4章虚拟化技术65

4.1万般皆虚拟66

4.2什么是虚拟化66

4.3虚拟化的层级67

4.4虚拟机监视器68

4.5虚拟机架构69

4.6虚拟机监视器的特征70

4.7系统虚拟化的方式71

4.7.1物理CPU资源的控制71

4.7.2可虚拟化和不可虚拟化的指令集结构72

4.7.3二进制翻译73

4.7.4准虚拟化73

4.7.5硬件支持的虚拟化74

4.7.6内存资源的控制75

4.7.7内存页面的分配策略75

4.7.8内存管理单元的虚拟化77

4.8IO资源的控制79

4.8.1软件仿真79

4.8.2准虚拟化80

4.8.3直接分配80

4.9商用虚拟机技术81

4.9.1Xen虚拟机技术81

4.9.2KVM虚拟机技术82

4.9.3HyperV虚拟化技术82

4.9.4VMWare ESX和ESXi虚拟化技术84

4.9.5VMWare Workstation84

4.9.6Parallels Virtuozzo虚拟化技术84

4.10高级虚拟化技术86

4.10.1存储虚拟化86

4.10.2多机虚拟化88

4.10.3多机IO虚拟化88

4.10.4应用虚拟化88

4.10.5使用虚拟化89

4.10.6网络虚拟化89

4.10.7灾难虚拟化89

4.11虚拟上的虚拟90

思考题90

第5章Windows Azure云计算平台92

5.1Windows Azure: 云的操作系统92

5.2Windows Azure概览93

5.2.1计算能力94

5.2.2Windows Azure的持久存储95

5.2.3Windows Azure云体控制器95

5.2.4Windows Azure的鸟瞰图95

5.2.5Windows Azure的故障域与升级域96

5.2.6地理分布97

5.3在Windows Azure上运行用户程序97

5.3.1开发云应用程序97

5.3.2向云体控制器定义自己的服务97

5.3.3将应用程序发布到云端99

5.3.4监控和管理云应用程序100

5.4服务隔离和安全101

5.5Windows Azure虚拟机架构102

5.6Windows Azure的生态环境103

5.7计算和存储服务104

5.7.1Windows Azure的计算服务104

5.7.2Windows Azure存储服务105

5.7.3SQL Azure108

5.7.4.NET服务111

5.8使用Windows Azure的场景举例113

5.9使用Windows Azure云计算平台的方式114

5.9.1Windows Azure平台的生态系统115

5.9.2云Web应用程序115

5.9.3组合服务应用115

5.9.4云代理应用程序115

5.9.5B2B集成应用程序116

5.9.6网格和并行计算应用116

5.9.7混合企业级应用程序117

5.10Windows Azure应用程序的发布过程118

5.11使用Windows Azure的成本122

5.12Windows Azure云平台的当前状态123

思考题123

第6章其他主流云平台124

6.1诸神之战124

6.2谷歌的App Engine云平台126

6.2.1App Engine云计算平台概览126

6.2.2App Engine的功能126

6.2.3App Engine沙盒128

6.2.4App Engine开发环境128

6.2.5App Engine平台所提供的服务129

6.2.6App Engine的系统架构129

6.2.7App Engine数据仓库129

6.2.8App Engine的块存储仓库和内存缓存131

6.2.9App Engine的无状态服务131

6.2.10App Engine的伸缩能力131

6.2.11App Engine的安全性132

6.2.12基于Web的系统管理员界面132

6.2.13App Engine的计费132

6.3亚马逊的Web服务云计算平台133

6.3.1亚马逊AWS的架构134

6.3.2亚马逊AWS的存储服务135

6.3.3亚马逊AWS的其他服务136

6.3.4亚马逊AWS云平台的工作流程136

6.3.5AWS云计算平台的弹性138

6.3.6AWS云计算平台实际应用举例140

6.4VMWare/EMC的云计算平台140

6.4.1vCloud云平台简介140

6.4.2vCloud的系统架构140

6.4.3vCloud云平台的特点141

6.4.4Cloud Foundry云平台简介142

6.4.5Cloud Foundry云平台的特点142

6.4.6Cloud Foundry里面的服务绑定144

6.4.7Cloud Foundry的系统架构145

6.4.8Cloud Foundry的存储机制146

6.4.9Cloud Foundry的应用程序部署流程147

6.4.10Cloud Foundry云平台上的应用程序的架构147

6.4.11Cloud Foundry的公有云实例148

6.4.12Micro Cloud Foundry151

6.5Open Stack云平台151

6.5.1Open Stack的构成152

6.5.2Open Stack的安装和部署156

6.6五大云计算平台的比较156

6.7诸神大战的结局158

思考题159

第7章大数据——云计算的典型应用160

7.1多大算大?160

7.2云平台上最热门的应用161

7.3大数据无处不在161

7.4大数据的挑战: 大数定理和e科学163

7.4.1大数定理163

7.4.2e科学164

7.5什么是大数据164

7.6大数据的处理原则165

7.6.1存储资源扩展165

7.6.2文件系统扩展166

7.6.3处理方式扩展167

7.6.4Map/Reduce168

7.7Hadoop大数据处理平台171

7.7.1什么是Hadoop172

7.7.2Hadoop的构件172

7.7.3Hadoop分布式文件系统173

7.7.4Hadoop重平衡器176

7.7.5Hadoop的其他组件176

7.7.6Hadoop的安装和运行176

7.7.7Hadoop的部署177

7.7.8Hadoop系统的处理能力177

7.7.9Hadoop应用举例178

7.7.10Hadoop小结179

7.7.11Hadoop的挑战179

7.8Engine One大数据平台179

7.8.1Engine One架构180

7.8.2平台层180

7.8.3应用层181

7.8.4云管理平台181

7.8.5Engine One的系统级大数据处理181

7.8.6云数据库181

7.8.7云内容管理182

7.8.8云搜索引擎182

7.8.9InforOne183

7.9大数据处理模式的争论185

7.10大数据的终结186

思考题187

第8章云的构造与集成188

8.1集成为王188

8.2云平台构建的必然性189

8.3云工程190

8.4如何构建云平台191

8.5设定目标191

8.5.1设定云平台的总体目标191

8.5.2设定云平台的次要目标192

8.6辨别工作负载(和云的类型)193

8.7设计云平台的服务193

8.8组件选择方面的考虑195

8.9组件的集成195

8.10云平台构建的阶段性196

8.11私有云的通用架构197

8.12连接在业务所在地和云平台198

8.12.1公应用私数据199

8.12.2公数据私应用199

8.12.3公有上的私有199

8.12.4三层结构199

8.13数据中心的考虑199

8.14选择大数据框架时的考虑因素200

8.15云迁移202

8.16互联云202

8.17西西弗斯的幸福203

思考题204

第9章云计算的困惑205

9.1云计算的重演206

9.2云计算的惰性和恐惧207

9.3云计算对工作市场的影响208

9.4云计算的加速209

9.5云计算的未决议题210

9.5.1云工程问题210

9.5.2云经济问题210

9.5.3虚拟机问题212

9.5.4云安全问题212

9.5.5云私密问题213

9.5.6云监狱213

9.5.7云头痛214

9.5.8法律法规相关的问题214

9.5.9数据寡头问题215

9.5.10标准问题215

9.5.11云灾备问题216

9.6云计算的未来216

9.6.1电子钱包的广泛使用216

9.6.2元数据自动化217

9.6.3云交易市场的出现217

9.6.4弹性粒度的连续化217

9.6.5标准将会出现217

9.6.6云保险217

9.6.7云一致性218

9.6.8云漂移218

9.6.9物联网、智慧城市的支撑218

9.7云计算的疑虑219

9.8云计算的奇异点219

思考题220

参考文献221

第1部分数据库原理

第1章数据库基础知识31.1数据管理技术的发展3

1.1.1数据和数据处理3

1.1.2数据管理的三个阶段3

1.2数据库的基本概念5

1.2.1数据库系统5

1.2.2数据模型7

1.2.3数据库的发展8

1.2.4数据库分类10

1.3DBMS体系结构11

习题112

第2章关系数据模型13

2.1关系模型基础13

2.1.1基本术语13

2.1.2关系的数学定义15

2.2关系代数17

2.2.1传统的集合运算17

2.2.2专门的关系运算18

2.2.3关系演算21

2.3基于包的关系代数22

2.3.1传统的集合运算22

2.3.2专门的关系运算23

2.4关系的三类完整性约束24

2.4.1实体完整性约束24

2.4.2参照完整性约束25

2.4.3用户自定义的完整性约束26

实验畅想数据库管理系统26习题228

第3章结构化查询语言SQL30

3.1SQL概述30

3.1.1SQL的标准和特点30

3.1.2SQL的术语31

3.1.3RDBMS的体系结构32

3.2数据定义32

3.2.1数据类型33

3.2.2定义基表34

3.2.3修改与删除基表38

3.3基本数据查询39

3.3.1SELECT语句的语法39

3.3.2单表查询40

3.3.3分组统计查询43

3.4连接查询45

3.4.1交叉连接45

3.4.2内连接46

3.4.3外连接47

3.4.4多表连接查询49

3.5数据更新51

3.5.1数据插入51

3.5.2数据修改52

3.5.3数据删除52

3.6复杂的查询条件53

3.6.1查询条件表达式的语法53

3.6.2空值的判断55

3.6.3针对字符数据的查询56

实验SQL实验58

习题360

第4章数据库对象62

4.1视图62

4.1.1视图的概念62

4.1.2创建、删除视图63

4.1.3修改视图64

4.1.4使用视图数据64

4.2索引64

4.2.1索引的概念64

4.2.2使用索引65

4.3序列66

实验使用数据库对象68

4.4存储过程68

4.5触发器69

习题470

第5章数据的安全性72

5.1事务和锁的概念72

5.1.1事务的概念72

5.1.2事务的ACID特性73

5.1.3事务生命周期74

5.1.4锁75

5.2使用事务76

5.2.1用户、连接和事务的关系76

5.2.2显式模式77

5.2.3隐性模式77

5.2.4自动提交模式78

5.3特殊事务模型79

5.3.1嵌套事务79

5.3.2保存点79

5.3.3分布式事务80

实验事务的并发与隔离80

5.4SQL中的授权机制84

5.4.1用户84

5.4.2权限84

5.4.3授权85

5.4.4解除授权85

习题586

第2部分数据库设计与开发

第6章关系模式的规范化896.1问题提出89

6.2函数依赖和模式分解91

6.2.1函数依赖91

6.2.2模式分解92

6.3关系范式93

6.3.1第一范式95

6.3.2第二范式96

6.3.3第三范式97

6.3.4非规范化99

6.4BoyceCodd范式(BCNF)100

实验规范化设计案例101

习题6102

第7章数据库设计与建模103

7.1数据库设计的工作103

7.2数据库系统的设计方法及步骤106

7.3概念模型设计与ER模型107

7.3.1基本ER元素108

7.3.2高级ER元素112

7.3.3建立ER模型114

7.4逻辑模式设计117

7.4.1概念模型向关系模式的转化117

7.4.2继续转化为逻辑模式122

7.5选择索引123

7.5.1单个索引的收益124

7.5.2主键上的索引125

7.5.3索引的选择125

实验数据库建模实验125

习题7126

第8章数据库应用程序开发127

8.1数据库系统的体系结构127

8.1.1数据库的访问127

8.1.2几种常见的体系结构128

8.1.3三层体系结构129

8.2应用程序接口130

8.2.1ODBC130

8.2.2JDBC130

实验使用ODBC连接数据库132

习题8133

第3部分DBMS的实现

第9章DBMS的设计1379.1需求分析137

9.1.1关于数据量138

9.1.2关于并发度139

9.1.3CXDB教学版简介139

9.2接口设计140

9.2.1数据接口设计141

9.2.2语言接口设计141

9.2.3编程接口设计142

9.3总体设计143

9.3.1总体设计的任务143

9.3.2DBMS的一般体系结构144

9.3.3CXDBE的体系结构145

实验基于CXDBE的编程147

习题9148

第10章存储管理149

10.1数据存储技术概述149

10.1.1存储器的层次149

10.1.2磁盘的读写150

10.1.3磁盘调度151

10.1.4磁盘缓存(Disk Cache)151

10.1.5提高磁盘I/O速度的方法152

10.1.6RAID152

10.2数据在文件中的组织153

10.2.1CXDBE文件格式154

10.2.2CXDBE的文件头格式154

10.3页的寻址155

实验CXDBE的存储管理156

习题10157

第11章数据缓冲158

11.1数据缓冲层概述158

11.1.1缓冲区的概念158

11.1.2散列表159

11.2缓冲区管理160

11.2.1文件页和缓冲区页160

11.2.2缓冲区管理的功能162

11.2.3缓冲区的大小163

11.3缓冲区替换策略163

实验CXDBE的数据缓冲165

习题11165

第12章数据操纵166

12.1记录的存储技术166

12.1.1记录在页中的存放166

12.1.2记录的寻址167

12.1.3溢出页的使用168

12.2CXDBE的数据页格式168

12.2.1数据记录格式169

12.2.2数据页格式170

 12.2.3溢出页格式171

 12.2.4空闲页格式171

12.3游标172

12.3.1游标种类172

12.3.2游标操作173

12.3.3游标结构174

实验CXDBE的记录操纵174

习题12175

第13章索引技术176

13.1索引技术概述176

13.2B树索引178

13.2.1B树的概念178

13.2.2B树的基本算法179

 13.2.3B树基本算法的讨论182

13.2.4B+树182

13.3CXDBE的索引页格式183

13.4用于索引的B树算法184

13.4.1需要考虑的问题185

13.4.2算法186

实验CXDBE的索引操纵192

13.5其他索引技术193

13.5.1散列表索引193

13.5.2位图索引193

13.5.3多维索引194

习题13194

第14章查询处理195

14.1查询处理的一般过程195

14.1.1编译195

14.1.2优化197

14.1.3执行198

14.2物理查询计划操作符198

14.2.1关系的扫描198

14.2.2物理操作符的代价计算模型199

14.2.3衡量代价的参数199

14.2.4两阶段多路归并排序200

14.2.5物理操作符迭代器201

14.2.6算法分类202

14.3选择操作203

14.4连接操作205

14.4.1一趟算法205

14.4.2嵌套循环连接205

14.4.3基于排序的两趟算法206

14.4.4基于散列的两趟算法208

14.4.5基于索引的算法209

14.5聚合操作210

14.5.1一趟算法210

14.5.2基于排序的两趟算法212

14.5.3基于散列的两趟算法212

14.5.4基于索引的算法213

14.6关系代数的等价性定律213

14.6.1交换律和结合律213

14.6.2与选择有关的定律213

14.6.3与投影有关的定律214

14.6.4与连接和积有关的定律215

14.6.5与分组和聚合有关的定律215

14.7选择逻辑查询计划215

14.7.1将分析树转换为关系代数表达式树215

14.7.2逻辑查询计划的优化217

14.8选择物理查询计划217

习题14219

*第15章CXDBE的SQL层221

15.1SQL语句的编译221

15.1.1编译的一般步骤221

15.1.2lex与yacc介绍222

15.1.3SQL语句的语法描述223

15.1.4SQL语句的内存结构225

15.2CXDBE的查询处理226

15.2.1语义分析227

15.2.2选择查询计划228

15.2.3查询执行232

15.2.4条件表达式向索引的转化234

实验SQL层的实现235

习题15235

第16章事务管理236

16.1事务调度236

16.1.1串行调度和并行调度237

16.1.2可串行化238

16.1.3冲突可串行化239

16.2事务隔离级别240

16.2.1并行调度造成的不一致现象240

16.2.2事务隔离级别242

16.3并发控制243

16.3.1并发控制的分类243

16.3.2基于锁的并发控制244

16.4锁的类型244

16.4.1共享锁与排他锁245

16.4.2锁的相容矩阵245

16.4.3锁升级246

16.4.4更新锁246

16.4.5意向锁247

16.5封锁粒度和封锁协议248

16.5.1锁的粒度248

16.5.2两段锁协议249

16.6加锁产生的问题251

16.6.1阻塞252

16.6.2死锁252

16.6.3死锁的预防252

16.6.4死锁检测与解除253

16.6.5活锁254

16.7CXDB加锁的实现254

16.7.1CXDB加锁的粒度254

16.7.2CXDB表级锁的类型255

16.7.3CXDB的死锁检测与解决257

实验死锁257

习题16259

第17章故障恢复261

17.1故障恢复概述261

17.1.1故障类型261

17.1.2故障恢复262

17.2Undo日志263

17.2.1日志的概念264

17.2.2日志记录264

17.2.3使用Undo日志的恢复265

17.2.4检查点267

17.2.5模糊检查点268

17.3Redo日志268

17.3.1使用Redo日志的恢复269

17.3.2Redo日志的检查点270

17.3.3使用带检查点的Redo日志的恢复270

17.4Undo/Redo日志270

17.4.1使用Undo/Redo日志的恢复271

17.4.2Undo/Redo日志的检查点271

17.5防备介质故障272

17.5.1备份类型272

17.5.2使用备份和日志的恢复273

习题17274

第18章数据库技术的发展275

18.1数据仓库276

18.1.1数据仓库的发展与定义276

18.1.2数据仓库的特点277

18.1.3数据仓库的组成278

18.1.4新一代数据仓库279

18.2XML和XQuery280

18.2.1半结构化数据280

18.2.2XML281

18.2.3XPath282

18.2.4XQuery284

附录A人员数据库设计287

A.1表定义和表数据287

A.2创建语句288

附录B图书借阅数据库设计291

B.1规章制度291

B.2与藏书有关的需求292

B.3数据库设计293

参考文献300