搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
NoSQL精粹
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787111433033
  • 作      者:
    (美)Pramod J. Sadalage,Martin Fowler著
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2013
收藏
编辑推荐
  

  世界级软件开发大师和软件开发“教父”Martin Fowler与Jolt生产效率大奖图书作者Pramod J. Sadalage新力作,毋庸置疑
  全方位比较关系型数据库与NoSQL数据库的异同,详细讲解4大主流NoSQL数据库的优劣势、用法和适用场合,深入探讨实现NoSQL数据库系统的各种细节

海报:

 

展开
作者简介
  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应用开发实践指南》等书。
展开
内容介绍
  《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章提供了选择数据库时可以参考的一些建议。
展开
精彩书摘
    在理想情况下,不同的服务器节点会服务于不同的用户。每位用户只需与一台服务器通信,并且很快就能获得服务器的响应。网络负载相当均衡地分布于各台服务器上。比方说,如果有10台服务器,那么每台服务器只需分担10%的负载。
    理想状况当然比较罕见。为了获得近乎理想的效果,必须保证需要同时访问的那些数据都存放在同一节点上,而且节点必须排布好这些数据块,使访问速度最优。
    要解决这个问题,首先得考虑:怎样存放数据,才能保证用户基本上只需要从一台服务器中获取它。若使用面向聚合的数据库,那就非常方便了。之所以设计“聚合”这一结构,就是为了把那些经常需要同时访问的数据放在一起。因此,显然可以把聚合作为分布数据的单元。
    在节点的数据排布问题上,有若干个与性能改善相关的因素。若是能够确定聚合的访问者基本上都处在某个地理范围内,那么就可以把数据放得离访问者近一些。如果查询订单数据的用户住在波士顿,那么可以把该用户所需的数据放在美国东部的数据中心。
    另外一个因素就是要保持负载均衡。意思就是,要把聚合数据均匀地分布在各个节点中,让它们需要处理的负载量相等。负载分布情况可能会随着时间变化,例如某些数据的访问量可能集中在一周的某几天内。因此,可能需要使用一些“领域特定规则”(domain—specific rule)。
    在某些情况下,可以把有可能需要依次读取的聚合放在一起。Bigtable论文[Chang,etc.]中说,可以按照“字典顺序”e排列表中的“行”,以“逆域名”(reverseddomain name,例如com.martinfowler)为序来排列网址。如果要同时访问跨越多个页面的数据,那么此方式有助于改善处理效率。
    以前很多人都把分片工作放在应用程序的逻辑里实现。可以把姓氏首字母为A~D的客户放在一个分片,而把姓氏首字母为E~G的客户放在另一个分片。这就使编程模型变复杂了,因为应用程序的代码必须负责把查询操作分布到多个分片上。此外,若想重新调整分片,那么既要修改程序代码,又要迁移数据。很多NoSQL数据库都提供了“自动分片”(auto—sharding)功能,可以让数据库自己负责把数据分布到各分片,并且将数据访问请求引导至适当的分片上。 
展开
目录
译者序
前言

第一部分 概 念

第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 结语
参考资料
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证