第1章 绪论 1
1.1 数据仓储与数据 1
1.2 数据仓储的上下文 3
1.3 数据仓储的分类 5
1.3.1 拓扑结构/后台分类 5
1.3.2 组织机构/前端分类 6
1.3.3 时间性/更新分类 7
1.3.4 地理特性/位置分类 7
1.4 数据仓储需满足的要求 8
1.4.1 功能性要求 8
1.4.2 信息性要求 9
1.4.3 操作性要求 9
1.4.4 经济性要求 10
1.4.5 安全性要求 10
1.5 数据仓储方法论 11
1.5.1 教条的开发方法:自上而下 12
1.5.2 实用的开发方法:自下而上 12
1.5.3 有效的方法:居顶不下 13
1.6 数据仓储构建的方法 13
1.6.1 老方法:手工ELT法 13
1.6.2 新方法:工具辅助的ETL法 15
1.6.3 现代方法:工具辅助的ELT法 17
1.6.4 未来的方法:基于MGO的ELT法 18
1.7 构建本书同时构建一数据仓储 20
第一篇 设计问题、概念和体系结构 25
第2章 体系结构概要 25
第3章 预备域 28
3.1 源应用系统 28
3.1.1 分析 28
3.1.2 接口 33
3.2 预备域 34
3.2.1 平面文件区 34
3.2.2 原始表区 35
3.2.3 已预备表区 36
3.2.4 平面文件加载 36
3.2.5 错误拒绝 39
3.2.6 变化量识别 40
3.2.7 列清洗和域完整性的保证 42
3.2.8 行过滤 43
3.2.9 操作识别 46
3.2.10 最小设计原则 46
第4章 处理域 48
4.1 数据 48
4.1.1 代码数据 48
4.1.2 对象数据 49
4.1.3 事件数据 50
4.2 时间性 52
4.2.1 历史化 52
4.2.2 归档 59
4.2.3 三时维 60
4.3 数据完整性 61
4.3.1 参照完整性 62
4.3.2 实体完整性 63
4.4 收集 64
4.4.1 事件数据归档 65
4.4.2 对象数据历史化 65
4.4.3 代码数据历史化 66
4.5 整合 67
4.5.1 对象标识转换 68
4.5.2 列数据转换 72
4.5.3 表模式转换 73
4.6 完整性保证 74
4.6.1 参照完整性保证 75
4.6.2 实体完整性保证 79
4.7 错误处理 81
4.8 处理域组件 81
第5章 存储域 84
5.1 中央存储区 84
5.1.1 逻辑数据模型和规范化 84
5.1.2 物理数据模型和去规范化 87
5.2 分析展示层 89
5.3 效能强化区 90
5.3.1 维度数据模型 91
5.3.2 特殊结构 95
5.3.3 模型转换 95
5.4 使用数据区 95
5.5 访问控制层 97
5.6 存储域组件 100
第6章 基础设施 102
6.1 进程管理 102
6.1.1 依赖关系图 102
6.1.2 事务模型 103
6.2 元数据管理 105
6.2.1 元数据 105
6.2.2 采集、管理和利用 106
6.3 对象组织 106
第二篇 组件、算法与技术 111
第7章 数据预备 111
7.1 平面文件加载 111
7.1.1 平面文件加载器 111
7.1.2 平面文件加载脚本 112
7.2 变化量识别 113
7.3 列清洗 115
7.3.1 缺省值 115
7.3.2 列清洗器 116
7.4 行过滤 117
7.4.1 日志机制 118
7.4.2 行过滤器 119
7.5 数据导出 120
第8章 数据处理 122
8.1 数据收集 122
8.1.1 对象建史器 123
8.1.2 事件归档器 124
8.1.3 行存储器 126
8.1.4 行移除器 128
8.2 数据整合 129
8.2.1 代理键生成器 129
8.2.2 键转换器 131
8.2.3 列数据转换器 132
8.2.4 关系代数运算符 134
8.2.5 连接构建器 137
8.3 参照完整性保证 141
8.3.1 等待空间管理器 141
8.3.2 外键处理器 143
8.3.3 代码表补充器 147
8.4 实体完整性保证机制 148
8.4.1 重叠检测器 149
8.4.2 优先权决定器 150
8.4.3 双时维重叠的基本组合 153
8.4.4 基本矩形分解器 154
8.4.5 重叠消除器 157
8.4.6 重叠解决举例 158
8.4.7 分析 161
第9章 数据存储 166
9.1 关系数据操作 166
9.1.1 IS-A关系 166
9.1.2 递归关系 169
9.1.3 一个现实世界的模式 171
9.1.4 主从关系 173
9.1.5 物理处理 174
9.2 维度数据处理 177
9.2.1 M:N关系 177
9.2.2 多层去规范化器 178
9.2.3 时间段分割器 179
9.2.4 时间链压缩器 183
9.2.5 事实处理 190
9.3 访问控制 191
第三篇 构建范式及元数据驱动通用操作器 197
第10章 范式基础 197
10.1 传统范式 197
10.2 信息基础:通用知识及元数据 199
10.2.1 通用知识 200
10.2.2 元数据 201
10.3 抽象基础:操作符操作于操作数 202
10.4 管理基础:解释器与编译器 204
10.4.1 MG操作器的实质 204
10.4.2 基于元数据的通用方法的比较 206
10.5 体系结构基础:转换配置 208
10.5.1 分布式转换和集中式转换 209
10.5.2 ETL服务器和数据库服务器 211
10.6 新范式的设计原则 211
第11章 元数据驱动的通用操作器 215
11.1 概述 215
11.1.1 第一级OoO-观察 215
11.1.2 第二级OoO-观察 216
11.2 平面文件加载器 217
11.2.1 描述 217
11.2.2 构建 218
11.3 过滤清洗操作器 219
11.3.1 描述 219
11.3.2 构建 220
11.4 变化量识别器 221
11.4.1 描述 221
11.4.2 构建 222
11.5 数据导出器 223
11.5.1 描述 223
11.5.2 构建 223
11.6 代理键生成器 224
11.6.1 描述 224
11.6.2 构建 224
11.7 数据处理器 225
11.7.1 描述 225
11.7.2 构建 225
11.8 行存储器 227
11.8.1 描述 227
11.8.2 构建 227
11.9 行移除器 228
11.9.1 描述 228
11.9.2 构建 228
11.10 重叠解除器 229
11.10.1 描述 229
11.10.2 构建 229
11.10.3 计算效率 233
11.10.4 用法 234
11.11 代码补充器 236
11.11.1 描述 236
11.11.2 构建 236
11.12 维度加载器 237
11.12.1 描述 237
11.12.2 构建 237
11.13 数据抽取器 238
11.13.1 描述 239
11.13.2 构建 240
11.14 工具操作器 241
11.14.1 索引顾问 241
11.14.2 统计顾问 242
11.14.3 计划生成器 243
第四篇 生存环境及更多 249
第12章 基础设施环境 249
12.1 进程管理和异常处理 249
12.1.1 进程管理和并发控制 249
12.1.2 异常处理 253
12.1.3 日志管理 257
12.2 数据错误及拒绝处理 258
12.3 元数据管理 259
12.3.1 元数据表总结 259
12.3.2 元数据维护 262
12.3.3 元数据语言的表达力 265
12.3.4 特例处理 266
第13章 方法论与经济学上的分析 268
13.1 V-模型 268
13.2 两种方法的经济比较 269
13.2.1 传统方法 270
13.2.2 MGO方法 272
13.3 效率分析 275
13.4 启用MGO 277
13.5 从旧系统过渡到新系统 279
第14章 结束语 282
14.1 一个真实世界的案例 282
14.1.1 前映像 282
14.1.2 后映像 286
14.2 MGO特色的总结 287
14.2.1 MGO方法的优点 288
14.2.2 MGO方法的缺点 289
14.3 展望 290
14.4 致谢 291
索引 292