编辑推荐
在畅销书作者、SQL杰出人物Joe Celko的专业指导下学习NoSQL。
掌握每一位SQL专业人士都需要了解的非关系型数据库知识。
本书对非关系型技术的完整概述,让你能够更灵活地应对组织需要。数据持续爆炸式增长且越来越复杂,使得SQL对于查询数据和抽取数据含义的作用被削弱。在这个新时期里,数据的规模更大、速度更快,你需要利用非关系型技术来大限度地利用手中的信息。通过Joe Celko的这本书,你将了解何时、何地使用NoSQL以及为什么NoSQL比SQL更有益。
? 完整理解NoSQL技术的使用场景。
? 认识列式数据库、流式数据库和图数据库的利与弊。
? 学习如何转变思维方式来充分利用非关系型数据库。
本书涵盖了当今的数据不同于过去的数据的三个方面,即速度、规模、多样性。当收集和查询信息的速度赶不上信息变化的速度时,就不能简单地将其当作静态数据处理。本书将帮你理解数据的速度,让你装备一些工具来解燃眉之急。旧的数据存储与访问模式已不适用于大数据。杰出专家Joe Celko将帮你了解数据的规模,以及存储和访问PB级和EB级数据的不同方式。并不是所有的数据都能适应关系模型,包括基因数据、语义数据以及社交网络产生的数据。Joe Celko将帮你了解数据的种类,以及多种数据所需的可替代的存储、查询和管理框架。
内容简介
本书是根据作者进行培训和开发的经验编写的NoSQL杰出指南,是了解在什么场景、什么时候、为什么NoSQL的好处超过SQL的理想书籍。通过本书,读者可以对SQL的缺点多于好处的场景有一个完整的理解,而后更好地确定何时使用NoSQL技术可以获得很大的好处,对列数据库、流数据库和图数据库的利弊有更深入的理解,并在备受欢迎的SQL专家Joe Celko的指导下顺利过渡到NoSQL。
本书会详细介绍NoSQL常见的数据库的历史、技术原理及其优缺点,这些数据库包括列式数据库、图数据库、流式数据库、键值数据库、文本数据库、地理信息数据库、指纹数据库、分析型数据库、多值数据库以及层次数据库等。
本书适合所有对NoSQL数据库感兴趣的技术人员阅读。
作者简介
Joe Celko为ANSI/ISO SQL标准委员会工作了10年,并且参与编写了SQL-89和SQL-92标准。
Celko先生是Elsevier/Morgan Kaufmann出版的一系列关于SQL和RDBMS图书的作者。他是得克萨斯奥斯汀的一位独立咨询师。他已经为计算机行业和学术出版写过1200多个专栏,其中大多数都是关于处理数据和数据库方面的。
译者介绍
范东来 北京航空航天大学硕士,成都数联铭品(BBD)科技有限公司大数据技术部负责人,大数据平台架构师,著有《Hadoop海量数据处理》,译有《解读NoSQL》,极客学院布道师,研究方向为并行图挖掘、模式分类。
王春生 网名“平凡的香草”,典型的“完美主义+强迫症+现实主义”综合体,追求完美并苛刻。新浪大规模数据库平台的设计者和开发者,先后担任过DBA、架构师、技术总监等职位,对数据库、网络、系统等环节的应用和开发均有丰富经验,曾参与翻译《Puppet实战手册》。微博@平凡的香草。
目录
第1章 NoSQL和事务处理 1
简介 1
1.1 批处理中的数据库事务处理 1
1.2 磁盘处理中的事务处理 2
1.3 ACID 2
1.4 悲观并发详解 4
1.4.1 隔离级别 5
1.4.2 私有的隔离级别 7
1.5 CAP定理 8
1.6 BASE 9
1.7 服务器端一致性 10
1.8 错误处理 11
1.9 为什么在这些场景下SQL不能发挥作用 11
总结思考 12
参考文献 12
第2章 列式数据库 13
简介 13
2.1 列式数据库的历史 14
2.2 技术原理 19
2.3 查询优化 19
2.4 多用户和硬件 19
2.5 执行一个ALTER语句 20
2.6 数据仓库和列式数据库 21
总结思考 21
参考文献 22
第3章 图数据库 23
简介 23
3.1 图论基础 24
3.1.1 节点 24
3.1.2 边 25
3.1.3 图的结构 25
3.2 RDBMS与图数据库 26
3.3 凯文?贝肯问题的六度 26
3.3.1 通用图的邻接表模型 27
3.3.2 通用图的覆盖路径模型 30
3.3.3 真实数据的复杂关系 32
3.4 顶点覆盖 34
3.5 图编程工具 35
3.5.1 图数据库 36
3.5.2 图数据库语言 36
总结思考 39
参考文献 39
第4章 MapReduce模型 41
简介 41
4.1 Hadoop分布式文件系统 43
4.2 查询语言 43
4.2.1 Pig Latin 43
4.2.2 Hive和其他工具 52
总结思考 54
参考文献 54
第5章 流式数据库和复杂事件 55
简介 55
5.1 代并发模型 56
5.1.1 乐观并发 56
5.1.2 乐观并发下的隔离级别 56
5.2 复杂事件处理 58
5.2.1 与事件处理相关的术语 59
5.2.2 事件处理与状态更改约束 61
5.2.3 事件处理与Petri网 62
5.3 商业产品 63
5.3.1 StreamBase 63
5.3.2 Kx 66
总结思考 68
参考文献 68
第6章 键值存储 69
简介 69
6.1 模式与无模式 69
6.2 查询与检索 70
6.3 “键”的处理 70
6.3.1 Berkeley DB 71
6.3.2 通过树索引或散列访问 71
6.4 “值”的处理 71
6.4.1 任意字节数组 72
6.4.2 已知结构的小文件 72
6.5 产品 73
总结思考 75
第7章 文本数据库 77
简介 77
7.1 经典文档管理系统 77
7.1.1 文件索引和存储 78
7.1.2 关键字和题内关键字 78
7.1.3 行业标准 79
7.2 文本挖掘与理解 83
7.2.1 语义与语法 83
7.2.2 语义网 84
7.3 语言问题 85
7.3.1 Unicode和ISO标准 86
7.3.2 机器翻译 86
总结思考 87
参考文献 88
第8章 地图数据 89
简介 89
8.1 GIS查询 90
8.1.1 简单位置 90
8.1.2 简单距离 91
8.1.3 在一个区域中查找数量、密度和内容 91
8.1.4 邻近关系 91
8.1.5 时间关系 91
8.2 定位 92
8.2.1 经度和纬度 92
8.2.2 层次三角网格 93
8.2.3 街道地址 95
8.2.4 邮政编号 96
8.2.5 ZIP编码 96
8.2.6 加拿大邮政编码 96
8.2.7 英国邮政编码 97
8.3 GIS的SQL扩展 99
总结思考 99
参考文献 100
第9章 大数据和云计算 101
简介 101
9.1 对大数据和云计算的疑问 102
9.1.1 云计算仅是一种时尚 103
9.1.2 云计算没有内部数据服务器那么安全 103
9.1.3 云计算代价高昂 103
9.1.4 云计算太复杂 103
9.1.5 云计算对大公司才有意义 104
9.1.6 只是技术上的改变 104
9.1.7 如果网络中断,云计算将毫无用处 105
9.2 大数据和数据挖掘 105
9.2.1 用于非传统分析的大数据 106
9.2.2 系统合并的大数据 107
总结思考 107
参考文献 108
第10章 生物特征、指纹和专业数据库 109
简介 109
10.1 原生生物特征 110
10.2 指纹 111
10.2.1 分类 112
10.2.2 匹配 113
10.2.3 NIST标准 113
10.3 DNA识别 115
基本原则和技术 116
10.4 面部数据库 117
10.4.1 历史 118
10.4.2 谁在使用面部数据库 119
10.4.3 它有多好 120
总结思考 121
参考文献 121
第11章 分析型数据库 123
简介 123
11.1 数据立方体 123
11.2 Codd博士的OLAP规则 124
11.2.1 Codd博士理论的基础特性 124
11.2.2 独有特性 126
11.2.3 报表特性 126
11.2.4 维度控制 127
11.3 MOLAP 127
11.4 ROLAP 128
11.5 HOLAP 128
11.6 OLAP查询语言 128
11.7 SQL中的聚合操作符 129
11.7.1 GROUP BY GROUPING SET 129
11.7.2 ROLLUP 130
11.7.3 CUBE 131
11.7.4 用法须知 132
11.8 SQL中的OLAP操作符 132
11.8.1 OLAP功能 133
11.8.2 NTILE(n) 138
11.8.3 嵌套的OLAP函数 138
11.8.4 查询样例 139
11.9 稀疏的数据立方体 140
11.9.1 数据立方体 140
11.9.2 维度分层 141
11.9.3 下钻和切片 142
总结思考 143
参考文献 143
第12章 多值数据库或NFNF数据库 145
简介 145
12.1 嵌套文件结构 145
12.2 多值系统 147
12.3 NFNF数据库 149
12.4 现有的表值扩展 152
12.4.1 Microsoft SQL Server 152
12.4.2 Oracle扩展 153
总结思考 154
第13章 层次数据库系统和网络数据库系统 155
简介 155
13.1 数据库类型 155
13.2 数据库历史 156
13.2.1 DL/I 157
13.2.2 控制块 157
13.2.3 数据通信 157
13.2.4 应用程序 157
13.2.5 层次数据库 158
13.2.6 优势和劣势 158
13.3 简单的层次数据库 159
13.3.1 Department数据库 160
13.3.2 Student数据库 160
13.3.3 设计考量 161
13.3.4 样例数据库扩展 161
13.3.5 数据关系 162
13.3.6 层次序列 163
13.3.7 层次数据路径 163
13.3.8 数据库记录 164
13.3.9 段格式 165
13.3.10 段定义 166
13.4 小结 166
总结思考 167
参考文献 167
术语表 169
前言/序言
NoSQL权威指南 电子书 下载 mobi epub pdf txt