图书介绍
NoSQL实践指南 基本原则、设计准则及实用技巧PDF|Epub|txt|kindle电子书版本网盘下载
- (美)丹·苏利文(Dan Sullivan)著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111531173
- 出版时间:2016
- 标注页数:307页
- 文件大小:41MB
- 文件页数:333页
- 主题词:数据库系统-指南
PDF下载
下载说明
NoSQL实践指南 基本原则、设计准则及实用技巧PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 入门2
第1章 用不同的数据库应对不同的需求2
1.1 关系型数据库的设计3
1.2 早期的数据管理系统4
1.2.1 平面文件数据管理系统4
1.2.2 分层数据模型系统7
1.2.3 网络数据管理系统9
1.2.4 早期数据管理系统小结11
1.3 引发变革的关系型数据库11
1.4 催生NoSQL数据库(非单纯的SQL数据库/非SQL数据库)的动因18
1.4.1 可伸缩性18
1.4.2 成本开销19
1.4.3 灵活性19
1.4.4 可用性20
1.5 小结20
1.6 案例研究21
1.7 复习题21
1.8 引用资料22
1.9 参考书目22
第2章 NoSQL数据库的种类23
2.1 分布式数据库的数据管理24
2.1.1 持久地存储数据25
2.1.2 维护数据的一致性25
2.1.3 确保数据的可用性26
2.1.4 在响应时间、一致性与持久性之间寻求平衡29
2.1.5 CAP定理:一致性、可用性及分区保护性31
2.2 ACID与BASE32
2.2.1 ACID:原子性、一致性、隔离性、持久性33
2.2.2 BASE:基本可用、软状态、最终一致33
2.2.3 最终一致性的类型34
2.3 四种NoSQL数据库类型35
2.3.1 键值对数据库36
2.3.2 文档数据库40
2.3.3 列族数据库42
2.3.4 图数据库43
2.4 小结45
2.5 复习题46
2.6 引用资料47
2.7 参考书目47
第二部分 键值数据库50
第3章 键值数据库简介50
3.1 从数组到键值数据库的演变51
3.1.1 数组(带着辅助轮的键值数据存储机制)51
3.1.2 关联数组(拿掉辅助轮的键值数据存储机制)52
3.1.3 缓存(加装了齿轮的自行车)53
3.1.4 内存和磁盘中的键值数据库(从自行车到机动车)55
3.2 键值数据库的重要特性56
3.2.1 简洁:开发者不需要设计复杂的数据模型56
3.2.2 速度:越快越好57
3.2.3 易于缩放:随时应对访问量的变化59
3.3 键:不只是无意义的标识符63
3.3.1 如何构造键名63
3.3.2 通过键来定位相关的值65
3.4 值:存放任意数据68
3.4.1 值不一定要有明确的类型68
3.4.2 对值进行搜索时的一些限制69
3.5 小结70
3.6 复习题71
3.7 引用资料71
3.8 参考书目72
第4章 键值数据库的术语73
4.1 与键值数据库的数据建模有关的术语74
4.1.1 键75
4.1.2 值77
4.1.3 命名空间77
4.1.4 分区78
4.1.5 分区键80
4.1.6 无纲要的模型80
4.2 与键值数据库的架构有关的术语81
4.2.1 集群81
4.2.2 环82
4.2.3 复制84
4.3 与键值数据库的实现有关的术语84
4.3.1 哈希函数84
4.3.2 碰撞86
4.3.3 压缩86
4.4 小结87
4.5 复习题87
4.6 引用资料88
第5章 键值数据库的设计89
5.1 键的设计与分区90
5.1.1 键名应该遵循命名约定90
5.1.2 设计良好的键名,以简化程序的代码91
5.1.3 处理位于某个范围内的值92
5.1.4 设计键名时必须考虑实现层面的限制93
5.1.5 如何根据键名来分区94
5.2 设计结构化的值95
5.2.1 结构化的数据类型有助于降低延迟95
5.2.2 过于庞大的值可能会降低读取操作和写入操作的性能97
5.3 键值数据库的局限99
5.3.1 只能通过键来查询数据100
5.3.2 键值数据库不支持查询位于某个范围内的值100
5.3.3 不支持像关系型数据库所使用的那种SQL式标准查询语言101
5.4 适用于键值数据库的设计模式101
5.4.1 TTL键102
5.4.2 模拟关系型数据库的表格103
5.4.3 聚合104
5.4.4 原子聚合105
5.4.5 可枚举的键106
5.4.6 索引107
5.5 小结108
5.6 案例研究:用键值数据库管理移动应用程序的配置108
5.7 复习题110
5.8 引用资料111
第三部分 文档数据库114
第6章 文档数据库简介114
6.1 何谓文档115
6.1.1 文档没有那么简单115
6.1.2 文档与键值对118
6.1.3 以集合的形式来管理多份文档118
6.2 文档数据库无需定义显式纲要125
6.3 文档数据库的基本操作127
6.3.1 向集合中插入文档128
6.3.2 从集合中删除文档129
6.3.3 更新集合中的文档130
6.3.4 从集合中获取文档131
6.4小结132
6.5 复习题132
6.6 引用资料133
第7章 文档数据库的术语134
7.1 与文档和集合有关的术语135
7.1.1 文档135
7.1.2 集合137
7.1.3 嵌入式文档137
7.1.4 无纲要的数据库138
7.1.5 多形的纲要141
7.2 与分区类型有关的术语141
7.2.1 垂直分区142
7.2.2 水平分区或分片143
7.3 与数据建模及查询处理有关的术语146
7.3.1 规范化146
7.3.2 去规范化148
7.3.3 查询处理器148
7.4 小结149
7.5 复习题149
7.6 引用资料150
第8章 文档数据库的设计151
8.1 在规范化与去规范化之间求得平衡152
8.1.1 一对多关系153
8.1.2 多对多关系153
8.1.3 有时需要对多张表格执行join操作154
8.1.4 在关系型数据库中执行join操作的开销可能会比较大155
8.1.5 文档数据库的建模者应该怎样做157
8.2 应对可变的文档161
8.3 编制数量适中的索引164
8.3.1 读取操作相对较多的应用程序164
8.3.2 写入操作相对较多的应用程序164
8.4 为常见的关系建模166
8.4.1 文档数据库的一对多关系166
8.4.2 文档数据库的多对多关系166
8.4.3 为文档数据库中的层级关系建模168
8.5 小结169
8.6 案例研究:客户的货物清单170
8.6.1 是否使用嵌入式文档171
8.6.2 选定所要编制的索引172
8.6.3 是否需要把各类清单分别放在不同的集合中172
8.7 复习题172
8.8 引用资料173
第四部分 列族数据库176
第9章 列族数据库简介176
9.1 较早出现的列族数据库:Google BigTable177
9.1.1 动态地控制列族中的列178
9.1.2 根据行ID、列名及时间戳来确定数据值179
9.1.3 控制数据的存储位置179
9.1.4 同一行内的读取和写入行为都是原子操作180
9.1.5 数据行之间按顺序排列180
9.2 列族数据库与键值数据库及文档数据库的异同181
9.2.1 列族数据库与键值数据库的异同182
9.2.2 列族数据库与文档数据库的异同182
9.2.3 列族数据库与关系型数据库的对比183
9.3 列族数据库所使用的架构186
9.3.1 HBase数据库采用由多种节点所组成的架构186
9.3.2 Cassandra数据库采用由对等节点所组成的架构187
9.3.3 依照Gossip协议来传播各服务器的状态188
9.3.4 用热力学术语来谈分布式数据库为什么需要反熵189
9.3.5 通过提示移交机制…替发生故障的节点保留与写入请求有关的信息190
9.4 列族数据库的适用场合192
9.5 小结192
9.6 复习题193
9.7 引用资料193
第10章 列族数据库的术语194
10.1 列族数据库的基本组件195
10.1.1 键空间195
10.1.2 行键195
10.1.3 列196
10.1.4 列族196
10.2 实现列族数据库所用的结构及相关流程197
10.2.1 列族数据库的内部结构及配置参数198
10.2.2 分布式数据库常用的术语:集群与分区198
10.2.3 列族数据库的其他底层组件199
10.3 处理流程及协议203
10.3.1 复制203
10.3.2 反熵203
10.3.3 Gossip协议204
10.3.4 提示移交205
10.4 小结205
10.5 复习题206
10.6 引用资料206
第11章 列族数据库的设计207
11.1 与设计数据表格有关的建议209
11.1.1 用去规范化来代替连接209
11.1.2 善用无值的列210
11.1.3 同时在列名和列值之中存储数据211
11.1.4 用一个数据行来为一个实体建模211
11.1.5 设计行键时不要将大量操作分配给少数服务器212
11.1.6 维护适当数量的列值版本213
11.1.7 不要在列值中使用复杂的数据结构213
11.2 与编制索引有关的建议214
11.2.1 何时应该使用由列族数据库系统自动管理的辅助索引215
11.2.2 何时应该用表格来创建并管理辅助索引217
11.3 应对大数据的工具220
11.3.1 萃取、转置并加载数据220
11.3.2 分析大数据221
11.3.3 监控大数据所用的工具224
11.4 小结224
11.5 案例研究:客户数据分析225
11.6 复习题226
11.7 引用资料227
第五部分 图数据库230
第12章 图数据库简介230
12.1 什么是图230
12.2 用图对网络关系进行建模231
12.2.1 对地理位置进行建模231
12.2.2 对传染病进行建模232
12.2.3 对抽象和具体的实体进行建模233
12.2.4 对社交媒体进行建模234
12.3 图数据库的优势235
12.3.1 图数据库不需要执行连接操作…因而可以更快地进行查询235
12.3.2 建模过程较为简单237
12.3.3 可以为实体之间的多种关系进行建模237
12.4 小结238
12.5 复习题238
12.6 引用资料238
第13章 图数据库的术语239
13.1 图的元素240
13.1.1 顶点240
13.1.2 边240
13.1.3 路径242
13.1.4 自环242
13.2 图的操作242
13.2.1 图的并集243
13.2.2 图的交集243
13.2.3 图的遍历243
13.3 图和节点的属性244
13.3.1 同构性244
13.3.2 阶与尺寸245
13.3.3 度数245
13.3.4 接近中心性245
13.3.5 中介性246
13.4 图的类型246
13.4.1 无向图和有向图247
13.4.2 流动网络247
13.4.3 二分图248
13.4.4 多重图248
13.4.5 加权图248
13.5 小结249
13.6 复习题249
13.7 引用资料249
第14章 图数据库的设计250
14.1 开始设计图模型250
14.1.1 设计一个描述社交网络的图数据库251
14.1.2 再次用查询请求来引领模型设计254
14.2 对图进行查询255
14.2.1 Cypher:声明式的查询256
14.2.2 Gremlin:通过遍历图模型来进行查询257
14.3 图数据库的设计技巧及注意事项260
14.3.1 用索引来缩短获取数据的时间260
14.3.2 使用类型适当的边260
14.3.3 遍历图模型时要注意循环路径261
14.3.4 考虑图数据库的扩展问题262
14.4 小结263
14.5 案例研究:优化运输路线263
14.5.1 掌握用户的需求263
14.5.2 设计一套图模型分析方案263
14.6 复习题264
14.7 引用资料265
第六部分 选择适合应用程序的数据库268
第15章 如何选择数据库268
15.1 选择NoSQL数据库269
15.1.1 何时应该使用键值数据库270
15.1.2 文档数据库的用例及适用场合270
15.1.3 列族数据库的用例及适用场合271
15.1.4 图数据库的用例及适用场合272
15.2 将NoSQL数据库与关系型数据库结合起来使用273
15.3 小结274
15.4 复习题274
15.5 引用资料274
第七部分 附录278
附录A 各章复习题的参考答案278
附录B NoSQL数据库列表298
术语表303