如今,我们要面对和使用的数据正在变得越来越庞大和复杂。如果说数据是新的石油。那么数据库就是油田、炼油厂、钻井和油泵。作为一名现代的软件开发者,我们需要了解数据管理的新领域,既包括rdbms,也包括nosql。
《七周七数据库》遵循《七周七语言》的写作风格和体例,带领你学习和了解当令最热门的开源数据库。在简单的介绍之后,本书分章介绍了7种数据库。这些数据库分别属于5种不同的数据库风格,但每种数据库都有自己保存数据和看待世界的方式。它们依次是postgresql、riak、apache hbase、mongodb、apache couchdb、neo4j和redis。本书将深入每一种数据库,介绍它们的优势和不足,以及如何选取一种最符合你的应用需求的数据库。
《七周七数据库》适合数据库架构师、数据库管理员,以及想要了解和学习各种nosql数据库技术的程序员阅读。本书将帮助读者了解、选择和应用这些数据库,从而更好地发挥日益增长的大数据的能力。
《七周七数据库》适用于数据库架构师、想要学习nosql数据库技术的程序员、数据库管理员。
第1章 概述 1
1.1 从一个问题开始 1
1.2 风格 2
1.2.1 关系数据库 3
1.2.2 键-值数据库 3
1.2.3 列型数据库 4
1.2.4 文档型数据库 5
1.2.5 图数据库 5
1.2.6 混合使用多种数据库 6
1.3 前进和提升 6
第2章 postgresql 7
2.1 这就是post-gres-q-l 7
2.2 第1天:关系、crud和联接 8
2.2.1 从sql开始 10
2.2.2 使用表 10
2.2.3 使用联接的查询 13
2.2.4 外联接 15
2.2.5 使用索引快速查找 16
2.2.6 第1天总结 18
.2.2.7 第1天作业 18
2.3 第2天:高级查询、代码和规则 19
2.3.1 聚合函数 19
2.3.2 分组 20
2.3.3 窗口函数 21
2.3.4 事务 22
2.3.5 存储过程 24
2.3.6 触发器 26
2.3.7 视图 27
2.3.8 规则是什么 28
2.3.9 联表分析 30
2.3.10 第2天总结 32
2.4 第3天:全文检索和多维查询 32
2.4.1 模糊搜索 34
2.4.2 sql标准的字符串匹配 34
2.4.3 字符串相似比较算法 levenshtein 35
2.4.4 三连词 36
2.4.5 全文检索 37
2.4.6 组合使用字符串匹配方法 42
2.4.7 把电影风格表示成多维超立方体 42
2.4.8 第3天总结 45
2.5 总结 46
2.5.1 postgresql的优点 46
2.5.2 postgresql的缺点 47
2.5.3 结束语 47
第3章 riak 48
3.1 riak喜欢web 48
3.2 第1天:crud、链接和mime 49
3.2.1 rest是最棒的(或用curl时) 51
3.2.2 将值放于桶中 52
3.2.3 链接 54
3.2.4 riak的mime类型 58
3.2.5 第1天总结 58
3.3 第2天:mapreduce和服务器集群 59
3.3.1 填充脚本 59
3.3.2 mapreduce介绍 60
3.3.3 riak中的mapreduce 63
3.3.4 关于一致性和持久性 69
3.3.5 第2天总结 75
3.4 第3天:解决冲突和扩展riak 76
3.4.1 以向量时钟解决冲突 76
3.4.2 扩展riak 83
3.4.3 第3天总结 87
3.5 总结 87
3.5.1 riak的优点 88
3.5.2 riak的缺点 88
3.5.3 riak之于cap 88
3.5.4 结束语 89
第4章 hbase 90
4.1 介绍hbase 91
4.2 第1天:crud和表管理 91
4.2.1 配置hbase 92
4.2.2 hbase的shell 93
4.2.3 创建表 93
4.2.4 插入、更新和读取数据 95
4.2.5 修改表 96
4.2.6 通过编程方式添加数据 99
4.2.7 第1天总结 100
4.3 第2天:处理大数据 101
4.3.1 导入数据,调用脚本 101
4.3.2 流式xml 102
4.3.3 流式维基百科 103
4.3.4 压缩和bloom过滤器 105
4.3.5 开始 106
4.3.6 区域和监控磁盘使用简介 107
4.3.7 区域的问讯 108
4.3.8 扫描一个表来建立另一个表 111
4.3.9 构建扫描程序 112
4.3.10 运行脚本 114
4.3.11 检查输出 114
4.3.12 第2天总结 116
4.4 第3天:放入云端 117
4.4.1 开发thrift协议的hbase应用 117
4.4.2 whirr简介 121
4.4.3 设置ec2 121
4.4.4 准备whirr 122
4.4.5 配置集群 122
4.4.6 启动集群 123
4.4.7 连接集群 124
4.4.8 销毁集群 125
4.4.9 第3天总结 125
4.5 总结 126
4.5.1 hbase的优点 126
4.5.2 hbase的缺点 127
4.5.3 hbase on cap 127
4.5.4 结束语 128
第5章 mongodb 129
5.1 其大无比 129
5.2 第1天:crud和嵌套 130
5.2.1 命令行的乐趣 131
5.2.2 mongo的更多有趣内容 134
5.2.3 深入挖掘 136
5.2.4 更新 140
5.2.5 引用 142
5.2.6 删除 143
5.2.7 用代码来读取 144
5.2.8 第1天总结 145
5.3 第2天:索引、分组和mapreduce 146
5.3.1 索引:如果还不够快 146
5.3.2 聚合查询 150
5.3.3 服务器端命令 152
5.3.4 mapreduce(以及finalize) 155
5.3.5 第2天总结 159
5.4 第3天:副本集、分片、地理空间和gridfs 159
5.4.1 副本集 159
5.4.2 偶数节点的问题 162
5.4.3 分片 163
5.4.4 地理空间查询 165
5.4.5 gridfs 167
5.4.6 第3天总结 168
5.5 总结 168
5.5.1 mongo的优点 168
5.5.2 mongo的缺点 169
5.5.3 结束语 169
第6章 couchdb 170
6.1 在沙发上放松 170
6.2 第1天:crud、futon与curl redux 171
6.2.1 享受futon 171
6.2.2 用curl执行基于rest的crud操作 175
6.2.3 用get读取文档 175
6.2.4 用post新建文档 176
6.2.5 用put更新文档 177
6.2.6 用delete移除文档 178
6.2.7 第1天总结 178
6.3 第2天:创建/查询视图 179
6.3.1 通过视图访问文档 179
6.3.2 编写你的第一个视图 181
6.3.3 将视图另存为“设计文档” 183
6.3.4 由name查找artists 184
6.3.5 由name查找albums 184
6.3.6 查询自定义的artist与album视图 185
6.3.7 使用ruby将数据导入couchdb 187
6.3.8 第2天总结 192
6.4 第3天:进阶视图、changes api以及复制数据 192
6.4.1 用规约器创建进阶视图 193
6.4.2 规约器调用详解 195
6.4.3 监控couchdb的变化 196
6.4.4 连续监控变化 201
6.4.5 在couchdb中复制数据 204
6.4.6 第3天总结 208
6.5 总结 209
6.5.1 couchdb的优点 209
6.5.2 couchdb的缺点 209
6.5.3 结束语 209
第7章 neo4j 211
7.1 neo4j,白板友好的数据库 211
7.2 第1天:图、groovy和crud 212
7.2.1 neo4j之web接口 213
7.2.2 通过gremlin操作neo4j 215
7.2.3 pipe的威力 218
7.2.4 pipeline与顶点 221
7.2.5 无模式的社会性数据 221
7.2.6 垫脚石 223
7.2.7 引入groovy 225
7.2.8 特定领域的步骤 227
7.2.9 更新、删除与完成 229
7.2.10 第1天总结 230
7.3 第2天:rest、索引与算法 230
7.3.1 引入rest 230
7.3.2 用rest新建节点与关系 231
7.3.3 查找路径 232
7.3.4 索引 233
7.3.5 rest与gremlin 235
7.3.6 大数据 235
7.3.7 功能全面的算法 237
7.3.8 第2天总结 242
7.4 第3天:分布式高可用性 243
7.4.1 事务 243
7.4.2 高可用性 244
7.4.3 ha集群 245
7.4.4 备份 250
7.4.5 第3天总结 251
7.5 总结 251
7.5.1 neo4j的优点 251
7.5.2 neo4j的缺点 252
7.5.3 neo4j之于cap 252
7.5.4 结束语 252
第8章 redis 254
8.1 数据结构服务器存储库 254
8.2 第1天:crud与数据类型 255
8.2.1 入门指南 255
8.2.2 事务 257
8.2.3 复杂数据类型 258
8.2.4 到期 265
8.2.5 数据库命名空间 266
8.2.6 更多命令 267
8.3 第2天:高级用法、分布 268
8.3.1 一个简单的接口 268
8.3.2 服务器信息 271
8.3.3 redis配置 272
8.3.4 aof(append only file) 274
8.3.5 主从复制 276
8.3.6 数据转储 277
8.3.7 redis集群 279
8.3.8 bloom过滤器 280
8.3.9 setbit和getbit 282
8.3.10 第2天总结 283
8.4 第3天:与其他数据库合作 284
8.4.1 多持久并存服务 284
8.4.2 数据填充 285
8.4.3 关系存储 291
8.4.4 服务 293
8.4.5 第3天总结 296
8.5 总结 297
8.5.1 redis的优点 297
8.5.2 redis的缺点 297
8.5.3 结束语 298
第9章 结束语 299
9.1 类型终极版 299
9.1.1 关系型 299
9.1.2 键-值存储库 300
9.1.3 列型 301
9.1.4 文档型 301
9.1.5 图 302
9.2 选择 303
9.3 我们将走向哪里 303
附录a 数据库概述表 305
附录b cap定理 307
《《朱子家训 朱子家礼》读本》内容简介:家训,是古人对家人以及子孙后代的告诫、约束形式。历代家训往往以简明扼要又朗朗上口的方
本书全面而深入地介绍了GNU/Linux编程。首先介绍了在Linux上编程必备的编程工具,然后在库函数、系统调用以及内核上阐述Linux编程
《团队拓展训练游戏》内容简介:本书通过游戏形式详细说明了如何通过团队合作取得成功。在当今充满挑战的时代,团队建设能力是管理
为使自己倾心倾力建造的东西真正成为建筑,是雇用建筑师?还是成为建筑师?抑或是学会像建筑师那样思考?三种选择虽道理各异,却
《认知心理学》内容简介:中国心理学家对认知心理学的兴趣,主要表现在两个方面。在理论方面,认知心理学有助于揭示人的认识过程
《读得懂的医学:消化的秘密》内容简介:本书由资深胃肠外科专科医生为大家普及一些常见的消化系统知识,通过真实的事例带您了解消
《CSS入门经典(第2版)》主要内容:CSSLevel1、2、2.1和3规范的相关知识、操纵文本和选择字体效果的方式、IE6和IE7的Bug及解决方案
《文化翻译与经典阐释(增订本)》内容简介:本书是作者的一部专题研究文集,分为上中下三编:上编“翻译的文化学反思”,首次在中
Apple公司的iPhone已经开创了移动平台新纪元!它与AppStore的绝配也为全世界的程序员提供了一个施展才华的全新大舞台。只要有新奇
《大中东行纪(修订版)》内容简介:恐怖主义为何主要在大中东猖獗? 突尼斯小贩自焚何以点燃北非局势的燎原之火? 巴勒斯坦、黎巴
《我爱问连岳之少年问答》内容简介:说到“少年”,我们常常会哼起那首熟悉的旋律:“小小少年,很少烦恼,眼望四周阳光照”。曾经
Excel数据处理与分析-(附1DVD.含自学视频.技巧视频.应用案例.报表资源.设计素材.PPT资源等) 本书特色《excel数据处理与分析》从全新的角度全面...
Learnfromtheaward-winningprogrammingseriesthatinspiredtheElixirlanguage.Hearhowo...
本书从2001年世界电信业的那场危机谈起,解读了电信行业领先者成国的奥秘,探寻了成功的电信市场进入战略,调查了良好合作的真相
本书全部实例代码及相关工具。基于ARM9+Linux206平台,从基础讲起,引导读者快速入门,实例丰富,可直接应用于工程实践。本书全面
《跑赢危机》内容简介:这是一本全媒体时代品牌危机管理的实战方法论。在全媒体时代,每个组织或个人都可能深陷舆论漩涡,面临“全
《世界阅读日推荐图书:阅读的未来》内容简介:搜索引擎一家独大、野心勃勃,电子阅读终端产品高歌猛进,阅读的未来是否意味着印刷
《破茧成蝶2——以产品为中心的设计革命》内容简介:互联网下半场来袭,从业者需要做出怎样的变化,以应对风云突变的大环境呢?本书
算法设计与分析(高级教程) 本书特色 本书深入浅出、通俗易懂地介绍了以下主要内容:第1章简单介绍一些本书中需要用到的数学基础、问题的复杂性以及规划问题的一些预备...
《中国工艺美学史》包括主体人、人与自然、道与器、生活需要、物的功能、功能与装饰等方面,这是对中国工艺美学的本质的剖析,反