NoSQL精粹

出版社:机械工业出版社
出版日期:2013-8
ISBN:9787111433033
作者:[美]Pramod J. Sadalage,[美]Martin Fowler
页数:176页

内容概要

Pramod J. Sadalage,ThoughtWorks公司首席顾问,致力于消弭数据库专业人员与应用程序开发者之间的鸿沟,他在这一鲜有人问津的领域中独享其乐。Sadalage先生经常接受客户咨询,为他们所面临的那些依赖新工艺、新科技,且极有挑战性的数据需求出谋划策。他研发出一项前沿技术,以受版本控制的数据迁移操作渐进地设计关系型数据库。Sadalage先生与Scott Ambler先生合著的《数据库重构》一书荣获2007年Jolt生产效率大奖。
Martin Fowler,世界级软件开发大师,软件开发“教父”,敏捷开发方法的创始人之一,在面向对象分析与设计、UML、模式、极限编程、重构和DSL等领域都有非常深入的研究,并为软件开发行业做出了卓越贡献。他乐于分享,撰写了《企业应用架构模式》(荣获2003年Jolt生产效率大奖)、《重构:改善既有代码的设计》、《分析模式:可复用的对象模型》、《UML精粹:标准对象建模语言简明指南》、《领域特定语言》等在软件开发领域颇负盛名的著作。
译者简介
爱飞翔,资深软件开发工程师,擅长Web开发、移动开发和游戏开发,有10余年开发经验,曾主导和参与了多个手机游戏和手机软件项目的开发,经验十分丰富。他是手机软件开发引擎AgileMobileEngine的创始人兼项目经理,同时也是CatEngine手机游戏开发引擎的联合创始人兼代码维护员。他对极限编程、设计模式、重构、测试驱动开发、敏捷软件开发等也有较深入的研究,目前负责敏捷移动开发网(http://www.agilemobidev.com/)的运营。业余爱好文学和历史,有一定的文学造诣。翻译并出版了《Android游戏开发实践指南》、《测试驱动的iOS开发》、《HTML5 Canvas核心技术:图形、动画与游戏开发》和《JavaScript应用开发实践指南》等书。

书籍目录

译者序
前言
第一部分 概 念
第1章 为什么使用NoSQL
1.1 关系型数据库的价值
1.1.1 获取持久化数据
1.1.2 并发
1.1.3 集成
1.1.4 近乎标准的模型
1.2 阻抗失谐
1.3 “应用程序数据库”与“集成数据库”
1.4 蜂拥而来的集群
1.5 NoSQL登场
1.6 要点
第2章 聚合数据模型
2.1 聚合
2.1.1 关系模型与聚合模型示例
2.1.2 面向聚合的影响
2.2 键值数据模型与文档数据模型
2.3 列族存储
2.4 面向聚合数据库总结
2.5 延伸阅读
2.6 要点
第3章 数据模型详解
3.1 关系
3.2 图数据库
3.3 无模式数据库
3.4 物化视图
3.5 构建数据存取模型
3.6 要点
第4章 分布式模型
4.1 单一服务器
4.2 分片
4.3 主从复制
4.4 对等复制
4.5 结合“分片”与“复制”技术
4.6 要点
第5章 一致性
5.1 更新一致性
5.2 读取一致性
5.3 放宽“一致性”约束
5.4 放宽“持久性”约束
5.5 仲裁
5.6 延伸阅读
5.7 要点
第6章 版本戳
6.1 “商业事务”与“系统事务”
6.2 在多节点环境中生成版本戳
6.3 要点
第7章 映射-化简
7.1 基本“映射-化简”
7.2 分区与归并
7.3 组合“映射-化简”计算
7.3.1 举例说明两阶段“映射-化简”
7.3.2 增量式“映射-化简”
7.4 延伸阅读
7.5 要点
第二部分 实 现
第8章 键值数据库
8.1 何谓“键值数据库”
8.2 键值数据库特性
8.2.1 一致性
8.2.2 事务
8.2.3 查询功能
8.2.4 数据结构
8.2.5 可扩展性
8.3 适用案例
8.3.1 存放会话信息
8.3.2 用户配置信息
8.3.3 购物车数据
8.4 不适用场合
8.4.1 数据间关系
8.4.2 含有多项操作的事务
8.4.3 查询数据
8.4.4 操作关键字集合
第9章 文档数据库
9.1 何谓文档数据库
9.2 特性
9.2.1 一致性
9.2.2 事务
9.2.3 可用性
9.2.4 查询功能
9.2.5 可扩展性
9.3 适用案例
9.3.1 事件记录
9.3.2 内容管理系统及博客平台
9.3.3 网站分析与实时分析
9.3.4 电子商务应用程序
9.4 不适用场合
9.4.1 包含多项操作的复杂事务
9.4.2 查询持续变化的聚合结构
第10章 列族数据库
10.1 何谓列族数据库
10.2 特性
10.2.1 一致性
10.2.2 事务
10.2.3 可用性
10.2.4 查询功能
10.2.5 可扩展性
10.3 适用案例
10.3.1 事件记录
10.3.2 内容管理系统与博客平台
10.3.3 计数器
10.3.4 限期使用
10.4 不适用场合
第11章 图数据库
11.1 何谓图数据库
11.2 特性
11.2.1 一致性
11.2.2 事务
11.2.3 可用性
11.2.4 查询功能
11.2.5 可扩展性
11.3 适用案例
11.3.1 互联数据
11.3.2 安排运输路线、分派货物和基于位置的服务
11.3.3 推荐引擎
11.4 不适用场合
第12章 模式迁移
12.1 模式变更
12.2 变更关系型数据库的模式
12.2.1 迁移全新项目
12.2.2 迁移既有项目
12.3 变更NoSQL数据库的模式
12.3.1 增量迁移
12.3.2 迁移图数据库的模式
12.3.3 改变聚合结构
12.4 延伸阅读
12.5 要点
第13章 混合持久化
13.1 各异的数据存储需求
13.2 混用各类数据库
13.3 将直接数据库操作封装为服务
13.4 扩展数据库以增强其功能
13.5 选用合适的数据库技术
13.6 企业使用混合持久化技术时的考量
13.7 部署复杂度
13.8 要点
第14章 超越NoSQL
14.1 文件系统
14.2 事件溯源
14.3 内存映像
14.4 版本控制
14.5 XML数据库
14.6 对象数据库
14.7 要点
第15章 选择合适的数据库
15.1 程序员的工作效率
15.2 数据访问性能
15.3 继续沿用默认的关系型数据库
15.4 抽离数据库策略以降低风险
15.5 要点
15.6 结语
参考资料

作者简介

《NoSQL精粹》为考虑是否可以使用和如何使用NoSQL数据库的企业提供了可靠的决策依据。它由世界级软件开发大师和软件开发“教父”Martin Fowler与Jolt生产效率大奖图书作者Pramod J. Sadalage共同撰写。书中全方位比较了关系型数据库与NoSQL数据库的异同;分别以Riak、MongoDB、Cassandra和Neo4J为代表,详细讲解了键值数据库、文档数据库、列族数据库和图数据库这4大类NoSQL数据库的优劣势、用法和适用场合;深入探讨了实现NoSQL数据库系统的各种细节,以及与关系型数据库的混用。
全书分为两部分,共15章:第一部分(第1~7章)主要讲述NoSQL的核心概念。其中第1章解释了NoSQL发展迅速的原因;第2章描述了在NoSQL领域的三种主要的数据模型中如何体现“聚合”这一概念;第3章介绍了聚合的缺点;第4章描述了数据库如何在集群中分布数据;第5章论及了更新与读取操作对一致性的影响;第6章讨论了版本戳;第7章描述了适合用在NoSQL系统中的“映射-化简”操作。第二部分(第8~15章)讲述了如何实现NoSQL数据库系统。其中第8章~第11章每章各以一种NoSQL数据库为例,演示了如何实现第一部分介绍的概念;第12章解释了数据如何在强模式系统与无模式系统之间迁移;第13章着眼于混合持久化领域的趋势;第14章探讨了在混合持久化领域中会考虑到的其他一些技术;第15章提供了选择数据库时可以参考的一些建议。


 NoSQL精粹下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计7条)

  •     相当于一本NoSQL的普及文本,很适合入门看,简略地讲述了NOSQL和关系型数据库之间的一些区别和联系,不过很基础,不适合深入学习。并且书籍翻译也不错,值得推荐,就像有些豆友说的,在学NOSQL之前还是看看吧,不要一开始就去研究某一个具体的NOSQL,先把NOSQL的大致思路理清了学习起来更有针对性;
  •     第一章 FS vs Sql vs NoSql1.文件系统和数据系统对比a.文件系统和数据库是对数据不同层次上的抽象。文件系统完全不了解数据的文件内容的结构。数据库在一定程度上了解数据的结构,比如关系型数据库知道数据是由哪些字段组成的。数据库有很多类型,每种的数据模型都不同,是对不同类型的数据的抽象,所以才会有关系数据库,键值数据库,图数据库等等。但这几种数据抽象不是互斥的,而是看应用数据/场景和哪种数据模型更匹配。b.查询,并发控制等的粒度不同因为文件系统不了解数据的结构,所以对数据的操作粒度只能在文件级别上(对整份数据进行操作)。数据库可以对数据进行更精细的操作,比如关系数据库在查询时可以指定列,并发控制可以达到行锁的粒度等。2.关系数据库的阻抗失衡问题表是把数据抽象成二维的:行,列编程语言是把数据成三维的:行,列,层次ORM可以解决这个问题3.关系型数据库的致命缺陷和nosql的登场a.关系型数据库不适应集群场景b.nosql登场i)nosql数据库不使用sql但Cassandra的CQL和SQL很像(说明Cassandra提供对value的查询)ii)nosql不使用模式键值,文档,列族,通过名称可以知道,这些对value的抽象不同。键值完全不了解value的结构。文档和列族应该知道value结构?iii)nosql也可以是not only sql这样nosql不仅仅是一种技术,也是一场技术变革。
  •     这本书的作者是数据库重构的作者,可见对数据库的功力是可以的。书中的精华是前面6章。关系数据库被称为关系数据库,是因为关系太重要的。所有的数据库都避免不了。一种方式是关系分散到各个地方,通过外键关联,这个是普通关系数据库。一种是聚合关系,把关系放在一起,这种有kv数据库和文档数据库以及图数据库,列族数据库。关系的聚合,可以理解为对象,对于面向对象的应用层来说是很用好的。但是这些新的数据库都没有去完全实现多行事务。一个解决办法是尽量聚合在一起,这样保证单个对象的事务就可以了。对于分布式数据库来说cap也是难以回避的。一般保证一致性的代价太高,会选择牺牲一点一致性,来提高一点可用性。在事务和读写效率做权衡的时候会用到仲裁,一般是超过半数通过就可以了。R+W>N,调整不同的r和w来做权衡。分布式实现事务也一般会用到版本戳。在分布式模型中接触最多的应该是分片和复制了。分别是纵向和横向的扩张。复制可以降低压力,但是必然会存在延时,不管是主从复制还是对等复制。延时就会带来不一致。非关系型数据库的分片有个优点,分片时候关联的数据还是在一起。如果是关系数据库没处理好的话,join的数据在不同的机器,那个就比较蛋疼了。关系型数据库说白了是没有固定关系的,你可以通过不同的关联去产生不同的关系。这个是优点,但是要去关联,这个是个比较复杂的事情。nosql一般会存储的时候就把关系写在一起,对于应用程序来说是很方便的,但是应用程序需要多个关系的时候呢,这时候就比较麻烦了。所以nosql一般适用于简单的场景。列族数据库我也是认为比较有意思的。他把多行看成一个整体,称为列族。他跟关心列本身,一般的数据库更关心行。他有kv数据库的优点,能通过key获取。有文档数据库的有点,他的列是可以扩展的。从面向对象的角度来看,可以理解为他更关心子对象的集合。他的一个核心优势是处理集合,而且处理的是子对象,粒度更细也更有效率。

精彩短评 (总计50条)

  •     一本100多页的书,言简意赅的阐述了NoSQL各种数据库特性以及它们适用的场合,并且给出了很多应用方面的建议,非常值得一读。
  •     NoSQL扫盲
  •     把时下NoSQL相关的一些实现特点和产品概括的很精辟,但是谈的太泛,需要深入阅读每种技术,可作为技术引导概要来阅读
  •     简单明了
  •     看完了第一部分“概念”,前面的章节觉得讲得不错有收获,估计因为自己懂得少,到了“映射-化简”那章发现居然能把map-reduce讲得那么抽象那么学术,要是一点实践经验都没有很难理解透呀,虽然叫精粹但是不能太深邃。。。
  •     关注的都是比较理论的知识,对我帮助不大
  •     科普入门书籍。
  •     短篇幅阐述NoSQL思想,并对比关系型数据库,充分体现出当下NoSQL的创新点和应用场景;没有使用各NoSQL数据库的方法,只针对其特征进行剖析,一定程度上给读者感性的认识。
  •     高屋建瓴,客观务实。
  •     可以感觉到坐着在数据库领域还是有很深的造诣和丰富的经验的,全书体现了作者精粹的想法,但在各章内容组织却显得有些杂乱,更像是作者关于NoSQL粗略规范化的意识流
  •     很快看完,都是介绍性的东西,没有深入进去,对NoSQL有了大致了解,想继续深入还是要上手实践。翻译的挺好的,看得很流畅,除了map-reduce那里感觉翻译得有一点点别扭
  •     很精简但说的很透彻,适合作为总论来读
  •     书太薄,内容太浅了:(
  •     8-11章存在的意义不大, "一致性"那一章节不错.
  •     很精练,对于选择某种数据库提供了很有逻辑的建议,是对现有Nosql数据库的一个良好总结
  •     介绍了 1.NoSQL的出现,以及想解决的问题 2.粗略介绍了几种NoSQL,介绍了这几种NoSQL的一些简要特性
  •     在NoSQL被炒得火热,而又没多少人能说清楚它是什么的时候,能客观地分析它与传统数据库的优劣,无论对于初学入门、还是进一步深入,都是大有裨益的。本书的好处就在这里。
  •     一本小册子,快速过一遍,可以对现在的各种新的数据库技术有个大概的了解。
  •     翻译水平真是……不知所云
  •     断断续续读了半年多,可以让大家对nosql数据库有所了解
  •     读这本书读得太晚了,在 NoSQL 已经遍地开花的时候,发现之前零零碎碎获得的知识还是不如在这本薄薄的书里面概括得有条理。
  •     数据库 NOSQL
  •     太精粹了點
  •     能了解个大概吧,真想学习还是直接上手写最好。
  •     介绍NoSQL的书籍,比较全面,对分布式也有介绍。
  •     干货略少,通读下来的结论是nosql暂时还无法替代关系型数据库
  •     比较适合初学者,对于各种类型的NoSQL数据库的基本情况都介绍了,对于数据库选型有一定帮助。
  •     书如其名,短短的一百多页讲明白NoSQL数据库显然是不切实际的。两位作者从理论和实例两部分提取了NoSQL数据库中的关键点,而且对待关系型数据库的态度十分客观公正。当然,最深的体会一定是有过实际系统开发经验或者接触过实际系统后再来通读本书。对于我这样的数据库初学者,启发很多。
  •     再读一遍。 短小精悍。 最后毕设用 MongoDB 坑了自己。
  •     短小精悍,读完对nosql有一个整体的认识。对于适用场景的分析非常有价值。
  •     主要是讲大框架的,读完能对noSQL有个大体了解
  •     站在另外一个nosql的角度去看待分布式模型。前四章精华,从分布式模型开始引入到分布式的一致性和CAP概念~~引人入胜、高瞻远瞩。后半部分介绍各种nosql数据库可以略过。
  •     简单明了,适合入门了解NoSQL,好书
  •     翻译水平很差
  •     从概念视角解读NoSQL,有所收获,推荐
  •     很好的NoSql全景图,快速了解4类数据库的特点和使用场景
  •     很薄,没有什么实践的内容,都是原理。 2017.02
  •     买了两三年了,最近拿出来读了一下,感觉不错,对各种数据库的特性和区别有了更多的了解
  •     从rdbms到分布式存储的思维过度精粹
  •     一点都不深入,范范而谈,我就想问下谁给这本书打的高分啊,都没看过分布式理论么?
  •     书太贵。
  •     书写得挺好,有些东西没看懂,但是从中了解了,负载均衡,主从模式这些设计的东西。其实如结语所言,更多的是给了思路上的启发。
  •     可算是看完了,发现 Redis 哈希真是数据库届的奇葩,存储方式,表结构,性能都是特立独行的(差),然而却不得不用到。。。
  •     介绍了NoSQL 的种类,以及各种NoSQL数据库的使用场景,CAP 理论应用 ,作者还是比较客观的 “能使用RDBMS 解决的,尽量使用RDBMS .”
  •     对我这样的外行来说,也就大致了解一下基本概念的程度吧
  •     当年读的,很好的概览,讲了一些原理
  •     还行,挺科普的
  •     浅尝辄止 科普型
  •     对系统化的了解NoSQL很有帮助
  •     扫盲
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024