解读NoSQL

解读NoSQL pdf epub mobi txt 电子书 下载 2026

出版者:人民邮电出版社
作者:[美] 丹·麦克雷 (Dan McCreary)
出品人:
页数:237
译者:范东来
出版时间:2016-1-1
价格:49.00元
装帧:平装
isbn号码:9787115411105
丛书系列:
图书标签:
  • NoSQL
  • 计算机
  • 软件开发
  • 翻译很差
  • 数据库
  • 科普
  • 分布式
  • IT
  • NoSQL
  • 数据库
  • 数据存储
  • 数据模型
  • 分布式系统
  • 大数据
  • MongoDB
  • Redis
  • Cassandra
  • 键值存储
  • 文档数据库
  • 列式数据库
  • 图形数据库
想要找书就要到 本本书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

本书从NoSQL的相关理论开始,深入浅出地探讨了NoSQL核心的架构模式、解决方案和一些高级主题,内容循序渐进,从理论回归于实践。全书分为4个部分。首部分介绍NoSQL的相关理论,如CAP理论、BASE理论、一致性散列算法等;第二部分介绍NoSQL核心的架构模式—键值存储、图存储、列族存储、文档存储;第三部分展现一些常用的NoSQL解决方案,如HA、全文搜索等;后一部分讨论NoSQL的一些高级主题,如函数式编程。全书理论与实践并重,每章后面还有通俗的案例。对于NoSQL的初学者来说,不失为一本了解NoSQL技术全貌的读物。

作者简介

Dan McCreary 和Ann Kelly领导了一家独立的培训与咨询机构,专注于NoSQL解决方案,并且他们还是NoSQL Now!会议的联合发起人。

目录信息

第一部分 了解NoSQL
第1章 NoSQL:明智的选择 2
1.1 什么是NoSQL 3
1.2 NoSQL的商业驱动 4
1.2.1 容量 5
1.2.2 速度 5
1.2.3 敏捷性 6
1.3 NoSQL案例研究 6
1.3.1 案例研究:LiveJournal的Memcache技术 7
1.3.2 案例研究:Google的MapReduce——利用商用硬件生成搜索索引 7
1.3.3 案例研究:Google的Bigtable——一个有着数十亿行和百万列的表 8
1.3.4 案例研究:亚马逊的Dynamo—每天24小时接收订单 9
1.3.5 案例研究:MarkLogic 9
1.3.6 实践 10
1.4 小结 10
第2章 NoSQL概念 12
2.1 保持组件简单以促进重用 12
2.2 将应用分层以简化设计 14
2.3 策略地使用RAM、SSD和磁盘提升性能 17
2.4 使用一致性散列算法维护当前的缓存 18
2.5 比较ACID和BASE——两种可靠的数据库事务方法 19
2.5.1 RDBMS的事务控制——ACID 21
2.5.2 非RDBMS的事务控制—BASE 22
2.6 通过数据库分片获得水平扩展能力 23
2.7 基于Brewer的CAP定理进行权衡 25
2.8 实践 26
2.9 小结 27
2.10 延伸阅读 27
第二部分 数据库模式
第3章 基础数据架构模式 30
3.1 什么是数据架构模式 31
3.2 理解应用于RDBMS的行存储设计模式 31
3.2.1 行存储如何工作 32
3.2.2 行存储的演变 33
3.2.3 分析行存储模式的优点和缺点 34
3.3 示例:对销售订单进行连接操作 35
3.4 回顾RDBMS实现的特性 36
3.4.1 RDBMS事务 37
3.4.2 固定的数据定义语言和强类型的列 38
3.4.3 通过RDBMS视图保证安全并进行访问控制 39
3.4.4 RDBMS的复制和同步 39
3.5 通过OLAP、数据仓库和商业智能系统对历史数据进行分析 41
3.5.1 数据如何从操作型系统流入分析型系统 42
3.5.2 熟悉OLAP的概念 44
3.5.3 通过汇总生成专项报表 45
3.6 将高可用性和以读为主的系统一体化 46
3.7 在修改控制系统和数据同步中使用散列树 47
3.8 实践 49
3.9 小结 49
3.10 延伸阅读 50
第4章 NoSQL数据架构模式 51
4.1 键值存储 52
4.1.1 什么是键值存储 52
4.1.2 使用键值存储的好处 54
4.1.3 使用键值存储 56
4.1.4 使用案例:用键值存储保存网页 59
4.1.5 使用案例:亚马逊简单存储服务(S3) 59
4.2 图存储 60
4.2.1 图存储概述 60
4.2.2 用RDF标准来连接外部数据 62
4.2.3 图存储的使用案例 63
4.3 列族(Bigtable)存储 68
4.3.1 列族存储基础 69
4.3.2 理解列族存储的键 69
4.3.3 列族存储的优点 70
4.3.4 案例研究:在Bigtable中存储分析信息 72
4.3.5 案例研究:Google地图用Bigtable存储地理信息 72
4.3.6 案例研究:使用列族存储用户偏好信息 73
4.4 文档存储 73
4.4.1 文档存储基础 74
4.4.2 文档集合 74
4.4.3 应用集合 75
4.4.4 文档存储的API 75
4.4.5 文档存储的实现 76
4.4.6 案例研究:MongoDB和广告服务器 76
4.4.7 案例研究:大型对象数据库CouchDB 77
4.5 NoSQL架构模式的变体 78
4.5.1 定制RAM和SSD存储 78
4.5.2 分布式存储 78
4.5.3 分组的对象 79
4.6 小结 80
4.7 延伸阅读 81
第5章 原生XML数据库 82
5.1 什么是原生XML数据库 83
5.2 用原生XML数据库构建应用 85
5.2.1 加载数据可以像拖曳那样简单 86
5.2.2 使用集合来组织XML文档 87
5.2.3 使用XPath运用简单的查询转换复杂的数据 89
5.2.4 用XQuery转换数据 91
5.2.5 用XQuery更新文档 93
5.2.6 XQuery全文搜索标准 94
5.3 在原生XML数据库中应用XML标准 94
5.4 用XML Schema和Schematron设计和验证数据 96
5.4.1 XML Schema 96
5.4.2 使用Schematron检查文档规则 97
5.5 用自定义模块扩展XQuery 98
5.6 案例研究:在美国国务院历史学家办公室使用NoSQL 98
5.7 案例研究:使用MarkLogic管理金融衍生品 102
5.7.1 为什么RDBMS难以存储金融衍生品 102
5.7.2 一个投资银行从20个RDBMS转换到1个原生XML数据库 102
5.7.3 迁移至原生XML文档存储的商业好处 104
5.7.4 项目成果 104
5.8 小结 105
5.9 延伸阅读 105
第三部分 NoSQL解决方案
第6章 用NoSQL管理大数据 108
6.1 什么才是大数据解决方案 109
6.2 线性扩展数据中心 112
6.3 理解线性可扩展性和表现力 113
6.4 了解大数据问题的类型 114
6.5 使用无共享架构分析大数据 116
6.6 选择分布式模型:主从模型与对等模型 117
6.7 在分布式系统上使用MapReduce处理数据 118
6.7.1 MapReduce和分布式文件系统 120
6.7.2 MapReduce怎样做到高效处理大数据问题 121
6.8 NoSQL系统处理大数据问题的4种方式 122
6.8.1 分发查询到数据,而非数据到查询 122
6.8.2 使用散列环在集群中均匀分发数据 122
6.8.3 使用复制扩展读取性能 123
6.8.4 使数据库将查询均衡地分发到数据节点 124
6.9 案例研究:使用ApacheFlume处理事件日志 125
6.9.1 事件日志数据分析的挑战 125
6.9.2 Apache Flume搜集分布式事件日志的方法 126
6.9.3 延伸思考 127
6.10 案例研究:计算机辅助发现医疗保险欺诈 128
6.10.1 什么是医疗保险欺诈检测 128
6.10.2 使用图和定制的内存共享硬件检测医疗保险欺诈 129
6.11 小结 130
6.12 延伸阅读 131
第7章 用NoSQL搜索获取信息 132
7.1 什么是NoSQL搜索 132
7.2 搜索分类 133
7.2.1 布尔搜索、全文关键字搜索和结构化搜索的比较 133
7.2.2 测试常见搜索类型 134
7.3 提高NoSQL搜索效率的策略和方法 135
7.4 使用文档结构提升搜索质量 137
7.5 搜索质量量化 139
7.6 本地索引与远程搜索服务 139
7.7 案例研究:使用MapReduce建立倒排索引 141
7.8 案例研究:搜索技术文档 142
7.8.1 什么是技术文档搜索 142
7.8.2 在NoSQL文档存储中保留文档结构 143
7.9 案例研究:搜索领域语言—可检索性和重用性 144
7.10 实践 145
7.11 小结 146
7.12 延伸阅读 146
第8章 用NoSQL构建高可用的解决方案 148
8.1 高可用NoSQL数据库的定义 148
8.2 量化NoSQL数据库的可用性 149
8.2.1 案例研究:亚马逊S3的服务级别协议 151
8.2.2 预测系统可用性 151
8.2.3 实践 152
8.3 NoSQL系统的高可用性策略 153
8.3.1 使用负载均衡器将流量转向到最空闲的节点 153
8.3.2 结合高可用分布式文件系统和NoSQL数据库 154
8.3.3 案例研究:将HDFS作为一个高可用的文件系统存储主数据 155
8.3.4 使用托管的NoSQL服务 156
8.3.5 案例研究:使用亚马逊的DynamoDB作为高可用数据存储 157
8.4 案例研究:使用ApacheCassandra作为高可用的列族存储 158
8.4.1 在Cassandra中配置数据和节点间的映射 159
8.5 案例研究:使用Couchbase作为高可用文档数据库 161
8.6 小结 163
8.7 延伸阅读 163
第9章 用NoSQL提升敏捷性 165
9.1 软件敏捷性的定义 165
9.2 量化敏捷性 169
9.3 使用文档存储来避免对象关系映射 171
9.4 案例研究:使用XRX管理复杂表单 172
9.4.1 什么是复杂业务表单 173
9.4.2 用XRX替换客户端JavaScript和对象关系映射 173
9.4.3 理解XRX对敏捷性的影响 176
9.5 小结 177
9.6 延伸阅读 177
第四部分 高级主题
第10章 NoSQL与函数式编程 180
10.1 什么是函数式编程 181
10.1.1 指令式编程就是管理程序状态 181
10.1.2 函数式编程是没有副作用的并行转化 183
10.1.3 比较指令式编程和函数式编程的扩展性 186
10.1.4 使用引用透明避免重复计算 187
10.2 案例研究:用NetKernel优化网页内容组装 188
10.2.1 组装嵌套内容,追踪组件依赖 188
10.2.2 用NetKernel优化组件再生成 189
10.3 函数式编程语言示例 191
10.4 完成指令式编程到函数式的编程转变 192
10.4.1 使用函数作为函数的参数 192
10.4.2 使用递归处理非结构化文档数据 192
10.4.3 使用不可变变量而非可变变量 192
10.4.4 去除循环和条件语句 193
10.4.5 新的思维方式:从状态记录到转化隔离 193
10.4.6 质量、校验和一致性单元测试 194
10.4.7 函数式编程的并发 194
10.5 案例研究:用Erlang构建NoSQL系统 194
10.6 实践 197
10.7 小结 198
10.8 延伸阅读 198
第11章 安全:保护NoSQL系统中的数据 200
11.1 NoSQL数据库的一种安全模型 201
11.1.1 使用服务减少数据库内部的安全性需求 202
11.1.2 使用数据仓库和OLAP减少数据库内部的安全性需求 203
11.1.3 应用级安全措施和数据库级安全措施的收益总结 203
11.2 收集安全需求 204
11.2.1 认证 205
11.2.2 授权 207
11.2.3 审查和日志记录 210
11.2.4 加密和数字签名 211
11.2.5 保护公开网站免受拒绝服务攻击和注入攻击 212
11.3 案例研究:键值存储的访问控制—亚马逊的S3 213
11.3.1 身份和访问管理(IAM) 214
11.3.2 访问控制列表(ACL) 214
11.3.3 桶策略 214
11.4 案例研究:在Apache Accumulo中使用键可见性技术 215
11.5 案例研究:在安全发布流程中使用MarkLogic的RBAC模型 216
11.5.1 使用MarkLogic的RBAC安全模型保护文档 217
11.5.2 在安全出版中使用MarkLogic 218
11.5.3 MarkLogic的安全模型的优势 218
11.6 小结 219
11.7 延伸阅读 219
第12章 选择合适的NoSQL解决方案 221
12.1 什么是架构利弊分析 222
12.2 数据库架构选型团队的组成变化 223
12.2.1 选择合适的团队 224
12.2.2 考虑经验偏好 224
12.2.3 雇用外部咨询师 225
12.3 架构权衡分析步骤 225
12.4 解构分析:质量树 228
12.4.1 质量属性样例 229
12.4.2 评估混合架构和云架构 231
12.5 与利益系相关者沟通结果 231
12.5.1 用质量树作为导航图 232
12.5.2 实践 233
12.5.3 使用质量树进行项目风险交流 234
12.6 找到合适的验证架构的试点项目 235
12.7 小结 236
12.8 延伸阅读 237
· · · · · · (收起)

读后感

评分

评分

评分

评分

评分

用户评价

评分

关于不同数据库产品的对比和选型建议部分,我发现其时效性存在严重问题。在这个技术迭代速度飞快的领域,我购买这本书的主要目的之一就是希望能够得到一个相对中立且最新的行业现状评估,尤其是在各种新兴的NewSQL和多模数据库涌现的背景下。然而,书中对某些数据库的描述还停留在几年前的Beta阶段特性上,对于近期已经发布的、足以改变游戏规则的重要版本更新和特性,只字未提,或者提及了也只是轻描淡写。这让我在进行架构决策时,不得不将书中的结论打一个大大的折扣,然后必须转向最新的官方文档或社区论坛去进行二次核验。一本技术参考书如果不能跟上技术发展的步伐,它的价值就会随着时间的推移迅速贬值,这本书在这方面的维护力度明显不足,让人感觉它更像是一个被遗忘在角落里的旧版本指南。

评分

我必须得承认,作者在试图构建一个宏大的技术图景时,似乎忘记了读者的背景知识可能存在巨大的差异。书中对某些核心概念的阐述,一开始还算得上是平铺直叙,但很快就开始蹦跳式地引入各种缩写和行业黑话,而且这些缩写在首次出现时,往往没有给出清晰的定义或者脚注的引导。这使得我这个对该领域有一定了解的从业者,在阅读到第三章之后,不得不频繁地停下来,打开搜索引擎,去查询那些作者默认我们应该“理所当然”知道的术语。这种体验极其割裂,就像是听一场讲座,演讲者滔滔不绝地使用只有他们小圈子才懂的行话,让你感觉自己像个闯入者,而不是被邀请的听众。更令人沮丧的是,一些关键的性能权衡和架构决策背后的“为什么”,总是一笔带过,留给读者的只有“应该这么做”的结论,而缺乏支撑这个结论的严谨论证链条。

评分

这本书在案例分析部分的力度显得非常单薄和敷衍。我期待的是那种能让我身临其境,看到真实世界中某个大厂是如何运用这些非关系型数据库来解决具体业务挑战的深度剖析,比如如何处理千万级并发下的数据一致性难题,或者在跨地域部署中如何优化延迟。然而,书里提供的例子,大多停留在教科书式的、为了演示某个特性而搭建的“玩具”场景,缺乏真实业务场景的复杂性和约束条件。比如,谈到图数据库的遍历性能时,它给出的数据集小到让人觉得性能提升是理所当然的,而不是在面对实际生产环境中的亿级节点时会遇到的瓶颈。这种深度上的不足,使得这本书更像是一本概念的堆砌手册,而不是一本实战指导书。读完之后,我感觉自己掌握了一些术语,但真要让我拿起某个特定数据库去解决一个棘手的生产问题,我依然会感到束手无策,因为这本书没有教会我如何“变通”。

评分

这本书的排版简直是一场灾难,拿在手里,那纸张的质感就像是回收站里捞出来的劣质品,粗糙得让人怀疑自己是不是买到了一本盗版书。更要命的是,字体选择简直是故意的,那些宋体和黑体混杂在一起的排版,让我每次试图聚焦于某个概念时,都感觉眼睛在进行一场高强度的眼保健操,而且是无效的那种。尤其是涉及到代码示例的那一部分,排版混乱到让人啼笑皆非,缩进错位、换行突兀,我差点以为自己是在看一份未经校对的早期草稿,而不是一本面向专业人士的参考书。我试图跟随作者的思路去理解那些复杂的分布式系统原理,但每当翻开新的一页,那种视觉上的折磨感就立刻将我的学习热情浇灭大半。坦白说,如果不是我对这个领域有刚需,我早就把这本“纸板工艺品”扔到一边了,它完全没有体现出作为一本技术书籍应有的对读者体验的基本尊重,光是阅读体验这一点上,它就彻底失败了。

评分

语言风格的转换太过突兀,让我有时会怀疑是不是不同章节由不同的人匆忙拼凑而成。前半部分还算得上是严谨的学术论述风格,句子结构复杂,逻辑缜密,试图用数学般的精确性来描述数据模型;然而,突然间,在介绍到某个新兴的NoSQL变种时,作者的语气一下子变得非常口语化和煽动性,充满了“颠覆性”、“革命性”这类过度营销的词汇,仿佛在写一篇博客软文,而不是一本严肃的技术书籍。这种在专业性和市场推销之间摇摆不定的语调,极大地损害了书籍的权威性。一个读者需要的是稳定、可信赖的信息传递渠道,而不是在严肃的理论探讨和浮夸的未来展望中反复横跳,这让人很难建立起对作者观点的持续信任感。

评分

这本书貌似没什么人读,其实还不错

评分

内容很浅。不适合学习。

评分

这本书貌似没什么人读,其实还不错

评分

理解NoSQL一个很合适的口子。

评分

理解NoSQL一个很合适的口子。

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 onlinetoolsland.com All Rights Reserved. 本本书屋 版权所有