《数据库云平台理论与实践》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:马献章著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2016
  • ISBN:9787302421504
  • 页数:506 页
图书介绍:本书介绍了数据库基础理论、关系数据库标准语言的最新标准;分析了云计算时代大数据挑战,提出了应对大数据的关系型数据库云平台和非关系型数据库云平台全面解决方案;针对海量结构化数据管理需要,重点介绍了国产自主可控主流产品虚谷云数据库产品;针对快速增长的半结构化和非结构化数据管理需要,重点介绍了国产通用列存数据库产品;并结合大型企事业数据管理和决策实践,介绍了数据库应用系统的设计、编程、优化、集成和重构。

第一部分 数据库云平台导论 2

第1章 数据库的起源与发展现状 2

1.1 数据管理 2

1.1.1 数据管理的3个阶段 2

1.1.2 数据库系统发展的3个里程碑 4

1.1.3 数据库管理系统的3个发展阶段 5

1.2 数据库的分类 6

1.2.1 层次型数据库 7

1.2.2 网状型数据库 7

1.2.3 关系型数据库 8

第2章 关系模型与数据库的优缺点 10

2.1 关系模型 10

2.1.1 关系模型概述 10

2.1.2 关系代数 14

2.1.3 关系演算 18

2.2 关系模式与关系数据库 20

2.3 关系型数据库的优势 20

2.3.1 持久存储大量数据 21

2.3.2 通过事务保证数据的强一致性 21

2.3.3 通用性好和高性能 21

2.3.4 以标准化为前提 21

2.4 关系型数据库的不足 22

2.4.1 大量数据的写入操作 22

2.4.2 对海量数据的高效存储和访问 24

2.4.3 为有数据更新的表做索引或表结构变更 24

2.4.4 对简单查询需要快速返回结果的处理 25

2.4.5 字段不固定时的应用 25

第3章 关系型数据库的补充——NoSQL 26

3.1 NoSQL的概念 26

3.2 NoSQL的起源 26

3.3 NoSQL数据库解决的核心难题 28

3.3.1 实现高速查询 28

3.3.2 满足多写需要 28

3.4 NoSQL数据库的分类 29

3.4.1 面向列的有序存储数据库 29

3.4.2 键/值存储数据库 30

3.4.3 面向文档数据库 31

3.4.4 图形数据库 32

3.4.5 对象数据库 33

第4章 数据库云平台 35

4.1 数据库云平台的概念 35

4.2 数据库云平台的特点 35

4.3 数据库云平台的分类 37

4.3.1 数据库即服务 37

4.3.2 分布式数据库 37

4.4 国产自主可控数据库云平台产品介绍 37

4.4.1 虚谷云数据库 38

4.4.2 南大通用列存数据库 41

4.5 为何推荐使用自主可控产品 43

4.5.1 当前国际主流数据库的安全隐患 44

4.5.2 信息安全最终要落实到数据库安全 44

4.5.3 满足需求就好 45

4.5.4 一站式服务方式是优势 46

第二部分 数据库云平台理论基础 48

第5章 关系型数据库中的事务 48

5.1 事务处理的重要性 48

5.2 事务的特性要求 49

5.2.1 一致性 50

5.2.2 原子性 50

5.2.3 持久性 51

5.2.4 隔离性 51

5.3 事务的状态 51

5.4 系统日志 53

5.5 并发控制 53

5.5.1 基于锁的协议 54

5.5.2 两阶段加锁 58

5.5.3 死锁处理 59

5.5.4 基于时间戳排序的并发控制 61

5.5.5 多版本并发控制 63

5.5.6 饥饿处理 64

5.5.7 索引中使用加锁进行并发控制 65

5.5.8 其他并发控制问题 66

5.6 锁的粒度 67

5.6.1 加锁的粒度级别 68

5.6.2 多粒度级别加锁 68

5.7 集中式系统中的事务处理 71

5.7.1 单用户系统的组织 71

5.7.2 集中式多用户系统的组织 72

5.8 分布式系统上的事务处理 73

5.8.1 数据库服务器分布的关键因素 73

5.8.2 分布式系统的组织 73

5.8.3 会话与上下文信息 77

5.8.4 队列事务处理 79

5.8.5 分布式事务基本两阶段提交协议 79

5.8.6 分布式事务基本两阶段提交协议的改进 80

5.9 结构化查询语言中的事务支持 82

第6章 关系型数据库的数据恢复 84

6.1 数据库数据恢复的概念 84

6.1.1 数据库故障的种类 84

6.1.2 恢复算法概要及分类 85

6.1.3 故障恢复技术 86

6.1.4 潜入/非潜入与强制/非强制 88

6.1.5 日志中的检查点 88

6.1.6 事务故障的恢复 90

6.2 延迟更新恢复技术 90

6.2.1 单用户环境下使用延迟更新的恢复 91

6.2.2 多用户环境下采用并发执行方案的延迟更新 92

6.2.3 不影响数据库的事务动作 93

6.3 即时更新恢复技术 93

6.3.1 单用户环境下即时更新的恢复 94

6.3.2 多用户环境下采用并发执行方案即时更新的恢复 94

6.4 镜像分页 94

6.5 多数据库系统中数据的恢复 96

6.6 系统与介质故障的恢复 96

第7章 关系型数据库结构化查询语言SQL 98

7.1 SQL基础知识 98

7.1.1 语句 98

7.1.2 名称 101

7.1.3 数据类型 102

7.1.4 常量 107

7.1.5 表达式 108

7.1.6 内嵌函数 108

7.1.7 NULL值 109

7.1.8 别名和匿名 110

7.1.9 时间段 110

7.2 SQL的数据定义 111

7.2.1 在SQL中创建和删除数据库 112

7.2.2 SQL中基本表的创建、修改、删除 113

7.2.3 SQL中索引的建立与删除 117

7.3 SQL的数据查询 119

7.3.1 查询语句的基本结构 119

7.3.2 单表查询 120

7.3.3 连接查询 128

7.3.4 嵌套查询 129

7.3.5 集合查询 133

7.3.6 窗口和窗口函数 134

7.3.7 查询取回数量的控制 138

7.4 SQL的数据操纵 139

7.4.1 插入数据 139

7.4.2 删除数据 140

7.4.3 更新数据 142

7.4.4 管线化数据操纵语言 143

7.5 SQL的视图 144

7.5.1 DBMS如何处理视图 145

7.5.2 创建视图 145

7.5.3 删除视图 147

7.5.4 查询视图 147

7.5.5 更新视图 147

7.5.6 物化视图 148

7.6 时态SQL 149

7.6.1 时态的概念 149

7.6.2 应用时间段表 152

7.6.3 系统版本表 156

7.6.4 双时态表 160

7.7 数据库持久化存储模块 161

7.7.1 存储过程与函数 161

7.7.2 时态SQL与PSM 164

7.8 SQL的触发器 166

7.8.1 创建触发器 167

7.8.2 触发器使用的特殊表 168

7.8.3 修改触发器 174

7.8.4 删除触发器 174

7.8.5 触发器的使用限制 175

7.9 SQL的访问控制 175

7.9.1 授予权限 175

7.9.2 取消权限 176

7.9.3 视图机制与SQL安全 177

第8章 分布式数据库 178

8.1 分布式数据库系统的概念 178

8.1.1 分布式数据库系统的定义 178

8.1.2 分布式数据库系统的特点 180

8.1.3 分布式数据库系统的分类 181

8.1.4 分布式数据库系统的特色功能 182

8.2 分布式数据库系统的体系结构 183

8.2.1 分布式数据库系统的模式结构 183

8.2.2 分布式数据库管理系统的组成 185

8.2.3 网络应用程序 186

8.3 分布式数据库的数据分片、复制和分配技术 189

8.3.1 数据分片和分配 189

8.3.2 数据复制 192

8.3.3 数据分配 196

第9章 NoSQL型数据库的一致性与事务 197

9.1 一致性问题 197

9.1.1 更新一致性 197

9.1.2 读取一致性 198

9.2 放宽一致性约束 201

9.2.1 CAP定理 202

9.2.2 BASE理论 207

9.2.3 NWR理论 207

9.3 放宽持久性约束 208

9.4 版本戳 209

9.4.1 “商业事务”与“系统事务” 209

9.4.2 在多结点环境中生成版本戳 210

9.5 键/值数据库的一致性与事务 212

9.5.1 键/值数据库的一致性 212

9.5.2 键/值数据库的事务 212

9.6 文档数据库的一致性与事务 213

9.6.1 文档数据库的一致性 213

9.6.2 文档数据库的事务 214

9.7 列族数据库的一致性与事务 214

9.7.1 列族数据库的一致性 214

9.7.2 列族数据库的事务 216

9.8 图形数据库的一致性与事务 216

9.8.1 图形数据库的一致性 216

9.8.2 图形数据库的事务 216

第三部分 数据库云平台的应用 220

第10章 开发数据库应用的编程 220

10.1 关系型数据库的嵌入式SQL 220

10.1.1 程序化SQL技术 220

10.1.2 简单的嵌入式SQL语句 227

10.1.3 嵌入式SQL中的数据检索 240

10.1.4 基于游标的删除和更新 251

10.1.5 游标和事务处理 252

10.2 关系型数据库的动态SQL 253

10.2.1 动态SQL的概念 253

10.2.2 动态语句的执行 254

10.2.3 动态SQL的两步动态执行 256

10.2.4 动态查询 259

10.3 关系型数据库应用编程接口 268

10.3.1 应用编程接口的概念 268

10.3.2 ODBC和SQL/CLI标准 270

10.3.3 ODBC API 292

10.3.4 Java数据库连接 298

10.3.5 ADO.NET接口 310

10.4 NoSQL数据库编程 314

10.4.1 MongoDB文档型数据库的编程接口 314

10.4.2 Cassandra列族数据库的编程接口 328

10.4.3 Redis键/值存储数据库的编程接口 352

第11章 数据库性能调优 361

11.1 调优问题概述 361

11.1.1 调优的目标 361

11.1.2 识别性能问题 362

11.1.3 剖析性能问题 363

11.1.4 优化解决问题 364

11.2 关系型数据库的查询优化 366

11.2.1 查询处理的架构 367

11.2.2 基于关系代数等价性的启发式优化 368

11.2.3 查询执行计划的开销估计 371

11.2.4 选择一个计划 377

11.3 应用程序的优化 380

11.3.1 SQL语句的优化 381

11.3.2 索引 391

11.3.3 反向规范化 393

11.3.4 实现惰性读取 394

11.3.5 引入缓存 395

11.3.6 充分利用工具 395

11.4 物理资源的管理 397

11.5 NoSQL数据库的调优 398

11.5.1 NoSQL数据库调优的原则 398

11.5.2 文档型数据库MongoDB的常用优化方案 398

11.5.3 列族数据库Cassandra的优化 402

第12章 数据库应用系统的设计 405

12.1 数据库应用系统设计的目标 405

12.2 数据库应用系统的设计方法学 405

12.2.1 数据库应用系统涉及的角色 406

12.2.2 数据库应用的设计与实现过程 408

12.2.3 使用UML图作为数据库设计规范说明的辅助工具 417

12.3 面向数据的关键设计 427

12.3.1 在关系数据库内查找对象 427

12.3.2 实现引用完整性 433

12.3.3 实现安全访问控制 436

12.4 支持数据库渐进式开发的潜在工具 445

12.4.1 工具 445

12.4.2 沙箱 446

12.4.3 脚本 447

第13章 数据库重构 449

13.1 数据库重构的重要性 449

13.2 数据库重构的概念 451

13.2.1 数据库重构的定义 451

13.2.2 数据库重构的内涵是保持语义 453

13.2.3 数据库重构的类别 453

13.2.4 重构工具 454

13.3 数据库重构的过程 454

13.3.1 确认数据库重构是必要的 454

13.3.2 选择最合适的数据库重构 456

13.3.3 确定数据清洗的需求 456

13.3.4 使原数据库模式过时 458

13.3.5 编写单元测试进行前测试、中测试和后测试 458

13.3.6 实现预期的数据库模式变化 461

13.3.7 迁移源数据 462

13.3.8 更新数据库管理脚本 462

13.3.9 重构外部访问程序 463

13.3.10 进行回归测试 463

13.3.11 为重构编写文档 463

13.3.12 对工作进行版本控制 464

13.4 数据库重构的策略 464

13.4.1 通过小变更降低变更风险 464

13.4.2 唯一地标识每一次重构 464

13.4.3 转换期触发器优于视图或批量同步 465

13.4.4 确定一个足够长的转换期 465

13.4.5 封装对数据库的访问 466

13.4.6 使建立数据库环境简单 466

13.4.7 将数据库资产置于变更控制之下 467

13.5 数据库重构的方法 467

13.5.1 结构重构 467

13.5.2 参照完整性重构 481

13.5.3 数据质量重构 493