引言
NoSQL权威指南
“没有什么会比引入新秩序更难,因为创新者必须要面对那些在旧环境中已经做得很好的对手,以及那些在新环境中做得很好的冷漠者。”
——Niccolo Machiavelli [1]
在过去的几十年,我已经通过Elsevier/Morgan Kaufmann出版社出版了一系列的书,这些书几乎全部是关于SQL和RDBMS的。而这本书对行业媒体中所谓的大数据、新SQL或NoSQL(我们这些极客非常喜欢流行语)做了一些概述。第一个创造或挖掘了新名词的专栏作家或博主很可能会在维基百科上有对其(新名词)进行的阐述,甚至可能会写成一本书来讨论。
由于SQL模型是事实上的主导数据库模型,因此任何其他模型都会被认为是挑战者。但是,我们应该用什么流行词来表示这种新的模型呢?我们已经在SQL中存放数PB的数据很多年了,因此,“大数据”这个词看起来并不合适。而且,SQL每五年会引入一个新的ANSI/ISO标准并发布,并不是一夜之间就从“旧SQL”变为“新SQL”的。“新SQL”这个名词让我想起了新可口可乐(New Coke[2
]),新可口可乐并没有激发用户的信心,也没有获得成功
目录
第1章 NoSQL和事务处理
1.1 批处理中的数据库事务处理
1.2 磁盘处理中的事务处理
1.3 ACID
1.4 悲观并发详解
1.5 CAP定理
1.6 BASE
1.7 服务器端一致性
1.8 错误处理
1.9 为什么在这些场景下SQL不能发挥作用
第2章 列式数据库
2.1 列式数据库的历史
2.2 技术原理
2.3 查询优化
2.4 多用户和硬件
2.5 执行一个ALTER语句
2.6 数据仓库和列式数据库