第1章 NoSQL和事务处理 1
简介 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 PigLatin 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 GROUPBYGGROUPING 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 SQLServer 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