具体描述
本书是根据作者进行培训和开发的经验编写的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
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宝典。在此之前,我对NoSQL的认识,就像是在一片迷雾中摸索,对各种数据库的差异和优势知之甚少。 《NoSQL权威指南》的出现,如同一道耀眼的光芒,驱散了我心中的迷雾,指引了我前进的方向。作者的讲解风格非常独特,他并没有上来就堆砌枯燥的技术术语,而是用一种娓娓道来的方式,循循善诱地引导读者进入NoSQL的世界。我尤其喜欢书中对每种NoSQL数据库的“灵魂”——即其核心设计理念的深度挖掘。从键值存储的简单高效,到文档数据库的灵活自由,再到列族数据库的横向扩展能力,以及图数据库对关系的深刻洞察,每一个都让我觉得仿佛置身于一个丰富多彩的数据库乐园。书中对于数据建模的讲解,更是让我茅塞顿开。它打破了我思维定势,让我开始思考如何根据NoSQL的特性来设计更适合业务需求的数据结构,而不是一味地套用关系型数据库的模式。我印象特别深刻的是,书中关于如何利用文档数据库的嵌套结构来优化查询性能的案例,这让我看到了NoSQL在简化开发和提升效率方面的巨大潜力。
这本书,可以说是我在NoSQL领域的一次“拨云见日”之旅。在此之前,我对NoSQL的印象是“海量数据”、“高可用性”,但具体如何实现,以及不同NoSQL数据库之间有什么本质区别,一直让我感到模糊。 《NoSQL权威指南》以其清晰的脉络和详实的论述,为我解开了这些疑惑。作者并没有将NoSQL简单地视为一种技术的集合,而是深入探讨了其背后的思想和演进过程,让我能够从更宏观的角度理解NoSQL的价值。我尤其喜欢书中对不同NoSQL数据库在“CAP理论”下的权衡与选择的深入分析。这让我明白了,NoSQL并非万能,理解其局限性并做出明智的选择同样重要。书中对于各种数据库的适用场景和优缺点的详细对比,也为我提供了宝贵的参考。例如,在讲解列族数据库时,作者不仅介绍了Cassandra,还深入分析了其数据模型、一致性级别以及分布式特性,这让我对如何设计能够应对海量写入和查询的列族数据模型有了更清晰的认识。此外,书中还包含了大量实际应用案例的分析,让我能够看到理论知识如何在实践中落地,并且学到了一些行之有效的调优技巧。
这本书,简直就是我学习NoSQL过程中的“定海神针”。在我开始阅读《NoSQL权威指南》之前,我对NoSQL的印象是“杂乱无章”、“缺乏标准”,感觉各种数据库就像是各自为战的独立体。然而,这本书巧妙地将这些分散的知识点串联起来,形成了一个清晰的知识体系。作者以一种非常系统化的方式,首先介绍NoSQL的起源和发展,然后逐步深入到各种主流NoSQL数据库的核心原理和技术特性。我尤其喜欢书中对不同数据库在数据模型、查询语言、分布式架构以及一致性模型上的详细比较。例如,在讨论列族数据库时,作者不仅仅介绍了Cassandra和HBase,还深入分析了它们在行键设计、列族组织以及读写性能上的权衡,这对于我理解如何高效地设计和使用列族数据库非常有帮助。此外,书中关于如何选择合适NoSQL数据库的章节,更是让我受益匪浅。它不是简单地告诉你哪个数据库“最好”,而是引导你根据具体的业务需求、数据特征和性能指标来做出明智的决策。这种“知其然,更知其所以然”的讲解方式,让我觉得这本书的价值远超一般技术书籍,它更像是一位经验丰富的老兵,在传授他宝贵的实战经验。
不得不说,《NoSQL权威指南》的深度和广度着实令人惊叹。我原本以为,对于一个在关系型数据库领域摸爬滚打多年的开发者来说,学习NoSQL应该会相对容易,但这本书给了我一个全新的视角,也带来了不小的挑战。它并没有回避NoSQL内部的复杂性,而是直面这些挑战,并提供了非常详尽的解答。例如,在讨论数据一致性模型时,作者并没有停留在“最终一致性”这一个简单的词汇上,而是深入剖析了不同NoSQL数据库在CAP理论下的权衡,以及在实际应用中如何选择合适的策略来平衡可用性、分区容错性和一致性。对于数据建模部分,书中给出了非常多发人深省的例子,尤其是在处理非规范化数据、嵌入式文档、以及如何设计高效的查询路径等方面,提供了许多我从未想过的思路。我之前在设计关系型数据库时,总是习惯于将数据进行大量的反规范化,以提高查询性能,但在NoSQL的世界里,这种思路需要被重新审视。书中对于不同NoSQL数据库的存储结构和查询方式的讲解,让我深刻理解了“为特定用例而设计”的理念。我尤其对那些关于如何在文档数据库中进行复杂聚合查询,以及如何在图数据库中进行路径查找和模式匹配的章节印象深刻。这些内容不仅技术含量高,而且实践指导性极强,让我对接下来的项目开发充满了期待。
《NoSQL权威指南》是一部真正意义上的“权威”之作。在我翻阅这本书之前,我对于NoSQL的理解,更多的是碎片化的知识点,缺乏一个系统性的认知框架。这本书则像是为我构建了一个坚实的知识基石,让我能够从全局的角度审视NoSQL的世界。作者以极其严谨的态度,深入浅出地讲解了NoSQL的方方面面,从其起源、发展,到各种主流NoSQL数据库的原理、特性、以及应用场景。我尤其赞赏书中对于不同NoSQL数据库在数据模型设计上的深入探讨。它让我意识到,在NoSQL的世界里,数据建模的思路与关系型数据库有着本质的区别,需要根据具体场景来灵活运用。例如,在讲解文档数据库时,作者详细阐述了如何通过嵌套和反规范化来优化查询性能,这对于我之前习惯于范式化设计的思维模式来说,是一个巨大的挑战,也带来了新的启发。此外,书中对于分布式系统设计、数据一致性模型、以及性能调优等方面的讲解,也为我提供了宝贵的实战经验。这本书让我看到了NoSQL在处理大数据、高并发、实时性要求等场景下的巨大潜力,也让我对未来的技术发展充满了信心。
《NoSQL权威指南》这本书,是一部我久旱逢甘霖般的作品。在我的技术生涯中,接触过多种数据库,但对NoSQL的认识始终停留在“非关系型”的模糊概念上。这本书的出现,如同一盏明灯,照亮了我对NoSQL世界的探索之路。作者的功力可见一斑,他用通俗易懂的语言,将各种NoSQL数据库的精髓娓娓道来,让我这个初学者也能够轻松理解。从最基础的键值存储,到更为复杂的文档、列族和图数据库,每一个类型都被赋予了生命,展现出其独特的魅力。我特别喜欢书中对各种数据库的“适用场景”的细致分析。它不像一些技术书籍那样,只是罗列概念,而是深入探讨了在不同业务场景下,选择哪种NoSQL数据库能够发挥出最大的效用,以及在实践中可能遇到的挑战和解决方案。例如,在讲解文档数据库时,书中就详细对比了MongoDB和Couchbase等几种主流数据库在数据结构、查询语言和分布式特性上的差异,并给出了实际的应用建议。这种接地气的讲解方式,让我觉得这本书不仅仅是一本技术手册,更是一本实用的“工具箱”,能够帮助我解决实际问题。它让我看到了NoSQL在解决大数据、高并发、实时性要求高等场景下的巨大潜力,也激发了我进一步学习和实践的动力。
读完《NoSQL权威指南》,我感觉自己像是完成了一次全面的“数据库基因重塑”。在此之前,我对数据库的理解,很大程度上被SQL的范式和约束所定义,思维模式也相对固化。这本书就像是一场思想解放运动,它让我跳出了传统关系型数据库的框架,去思考数据存储和访问的更多可能性。作者以一种非常清晰且富有逻辑的方式,将NoSQL家族的各个成员一一呈现,并详细阐述了它们各自的“DNA”——即核心设计理念和技术特点。从键值对的极简哲学,到文档存储的类JSON结构,再到列族数据库的按列存储优化,再到图数据库对节点和关系的直观表达,每一个都让我觉得耳目一新。我尤其欣赏书中对“模型驱动设计”的强调,它不仅仅是教会你如何使用这些数据库,更是引导你思考“为什么”要使用它们,以及如何根据业务需求来选择最适合的数据模型。例如,在讨论文档数据库时,作者详细讲解了如何通过嵌入和引用来平衡数据冗余和查询性能,这对于我之前理解的“范式化”概念形成了一个有趣的对比。而对于图数据库,其对关系的高度关注,更是让我看到了处理社交网络、推荐系统、以及知识图谱等复杂关联数据的强大潜力。这本书让我不再对NoSQL感到陌生和畏惧,而是能够自信地将其作为一种强大的工具,纳入我的技术武器库。
这本《NoSQL权威指南》真是一场知识的盛宴,它如同一位技艺精湛的向导,带领我穿越了传统关系型数据库的丛林,进入了更为广阔和灵活的NoSQL世界。在我翻开这本书之前,我对NoSQL的认知仅限于一些零散的概念和“非关系型”这样一个笼统的标签。然而,这本书的出现,彻底颠覆了我原有的理解,让我看到了NoSQL家族的多元化和强大生命力。作者的叙述并非枯燥的技术堆砌,而是以一种非常人性化的方式,循序渐进地讲解着不同类型NoSQL数据库的原理、设计理念、适用场景以及各自的优劣势。从键值存储的简洁高效,到文档数据库的灵活多变,再到列族数据库的横向扩展能力,以及图数据库的深度关联探索,每一个章节都像是为你打开了一扇新的窗户,让你能清晰地看到不同数据库的独特风景。我尤其喜欢书中对于实际案例的深入剖析,它们并非是简单的罗列,而是详细地展现了在真实世界中,开发者是如何利用NoSQL数据库解决实际问题的,包括数据建模的策略、性能调优的技巧、以及如何与现有系统进行集成等等。这种“学以致用”的引导,让我觉得这本书不仅仅是理论的传播,更是实战能力的培养。它让我意识到,在面对海量数据、高并发访问、复杂数据结构等挑战时,NoSQL不再是锦上添花,而是成为了一种必要的选择。这本书不仅仅满足了我对NoSQL的好奇心,更激发了我进一步探索和学习的动力,让我对未来的技术发展充满了信心。
《NoSQL权威指南》这本书,对我来说,简直就是打开了新世界的大门。我之前一直深耕于关系型数据库领域,对于NoSQL的理解,更多是停留在一些零散的听闻和浅尝辄止的尝试。这本书以其极高的专业性和深入浅出的讲解方式,彻底刷新了我对NoSQL的认知。作者就像是一位技艺精湛的建筑师,他不仅展示了NoSQL这座宏伟大厦的精美蓝图,更带领我深入到每一块砖、每一根梁的构造之中。我尤其欣赏书中对于各种NoSQL数据库背后设计哲学和技术演进的深入剖析。从键值存储的极致简洁,到文档数据库的灵活性,再到列族数据库的水平扩展能力,以及图数据库对复杂关系的精妙处理,每一个细分领域都被讲解得淋漓尽致。书中对于数据建模的探讨,更是让我耳目一新。它打破了我固有的关系型数据库范式思维,让我开始思考如何根据NoSQL的特性来设计更高效、更灵活的数据结构。我印象特别深刻的是,书中关于在文档数据库中进行数据嵌套和引用的讨论,这让我看到了如何通过精心设计数据模型来优化查询性能,避免了传统关系型数据库中常见的JOIN操作带来的性能瓶颈。
《NoSQL权威指南》这本书,就像是一位经验丰富的老友,在我对NoSQL感到困惑和迷茫时,慷慨地分享了他的智慧和经验。我之前尝试过一些NoSQL数据库,但总是觉得知其然而不知其所以然,对它们的深层原理和最佳实践缺乏深入的理解。这本书的出现,填补了我的知识空白,让我对NoSQL有了更全面、更系统的认识。作者的讲解方式非常扎实,他并没有回避NoSQL的复杂性,而是直面挑战,并提供了详尽的解答。我尤其欣赏书中关于不同NoSQL数据库在数据一致性模型上的深入讨论。它让我明白了CAP理论在NoSQL设计中的重要性,以及在实际应用中如何根据业务需求来权衡一致性、可用性和分区容错性。书中对于分布式系统的设计原则、数据分片策略、以及容错机制的讲解,也为我提供了宝贵的参考。我特别喜欢书中对各种NoSQL数据库的性能调优技巧的探讨。这些技巧并非是泛泛而谈,而是结合了实际的案例和数据分析,具有极强的实操性。这本书让我看到了NoSQL在处理海量数据、高并发访问以及复杂查询场景下的强大能力,也让我对未来的技术发展充满了信心。
像一本索引,从宏观的角度介绍了NoSQL相关的技术。有一些tips,提到的东西不少但多数暂时都用不上,能用上的又讲得不详细,略读即可。@雁栖湖
快速阅读,介绍性质,翻译一般,可能原文也是一般。大概翻过就可以
快速阅读,介绍性质,翻译一般,可能原文也是一般。大概翻过就可以
快速阅读,介绍性质,翻译一般,可能原文也是一般。大概翻过就可以
快速阅读,介绍性质,翻译一般,可能原文也是一般。大概翻过就可以