第1章 数据仓库概述 1
1.1 特别糟糕的一天 2
1.2 当前报表架构存在的问题 3
1.3 目标:业务智能 3
1.4 一个数据自动柜员机 4
1.5 数据仓库定义 6
1.5.1 面向主题 6
1.5.2 集成性 8
1.5.3 稳定性 9
1.5.4 不同时间性 9
1.6 业务智能与事务处理的区别 10
1.7 数据仓库:“一个肮脏的小秘密” 11
1.8 投资回报 12
1.9 用Oracle8i建立数据仓库的原因 14
1.9.1 Oracle8i—关系型数据库 14
1.9.2 Oracle Report和PL/SQL开发工具 14
1.9.3 Oracle Warehouse Builder—ETL 14
1.9.4 Express—多维数据库引擎 15
1.9.5 Discoverer—关系OLAP查询
工具 15
1.9.6 Oracle数据挖掘套件 15
1.10 关于本书 15
1.11 轻轻松松工作 16
第2章 需要考虑的问题 17
2.1 不要轻信我们所说的—要客观 17
2.2 文章和书籍包含的是观点而非事实 17
2.3 谨慎采购 18
2.4 从业务需求开始—而不是技术 18
2.5 什么东西该存入数据仓库 19
2.6 数据集市还是数据仓库 19
2.7 大笨钟和小迭代—开发阶段 21
2.8 参照完整性永存 22
2.9 另一个秘密武器—ROI 23
2.10 查询工具—不仅仅是一个 23
2.11 数据仓库差别—开发者的看法 24
2.12 数据仓库差别—用户观点 25
2.13 授权用户 25
2.14 Oracle数据仓库为什么独占鳌头 26
2.14.1 整体解决方案 26
2.14.2 OLTP和服务器访问 26
2.14.3 一个存储库/多种解决方案 28
2.14.4 现存的关系 28
2.14.5 投资回报 28
第3章 组建开发团队 29
3.1 数据仓库团队角色清单 29
3.2 数据仓库团队所需的角色 32
3.2.1 数据仓库工程主管 32
3.2.2 数据仓库工程管理员 33
3.2.3 数据准备专家. 业务分析员 34
3.2.4 数据仓库工程师 35
3.2.5 数据库管理员 36
3.2.6 系统管理员 37
3.2.7 数据迁移专家 38
3.2.8 数据转换/净化专家 38
3.2.9 数据集市开发负责人 39
3.2.10 质量担保/测试专家 40
3.2.11 基础结构专家 41
3.2.12 超级用户(原有系统专家) 41
3.2.13 培训员 42
3.2.14 技术书记员 42
3.2.15 公关人员 43
3.2.16 企业中的盟友 43
3.2.17 桌面支持人员 43
3.2.18 工具专家 44
3.2.19 经销商关系人员 44
3.2.20 Web站点管理员 44
3.3 招聘数据仓库团体成员的传统战略 45
3.3.1 招聘广告 45
3.3.2 猎头公司 47
3.3.3 员工推荐 49
3.3.4 招聘会 50
3.3.5 用户组织和贸易组织 51
3.3.6 与大学的联系 51
3.3.7 在Internet上建立你自己的站点 52
3.3.8 利用Internet上提供的一些商业
搜索站点 52
3.3.9 员工福利 53
3.3.10 在与候选人会面过程中的
处理方法 53
3.3.11 尽快给出答复 53
第4章 数据仓库工程管理 55
4.1 数据仓库的推动力量 56
4.2 为工程做好准备 57
4.2.1 合适的企业资助人 57
4.2.2 联合业务和技术工程 58
4.2.3 建立数据仓库的正当业务理由 58
4.3 选取一个目标并向它迈进 58
4.3.1 关键业务用户会议 59
4.3.2 会晤关键人员 59
4.4 工程管理的好处 60
4.4.1 工程管理定义 60
4.4.2 什么是工程 62
4.5 工程范围说明书 62
4.6 工作细目结构 64
4.7 工程估算 67
4.8 范围拓展 71
4.9 跟踪工程进度 72
4.9.1 更改请求 72
4.9.2 工程日志 73
4.9.3 用户验收 73
4.9.4 工程会议 73
4.10 庆贺成功 74
4.11 工程管理总结 74
第5章 数据仓库设计方法 79
5.1 信息设施 79
5.2 信息设施的基础结构 79
5.3 数据仓库设计结构 80
5.4 优先选择的结构:综合层和高性能
查询结构 80
5.4.1 数据存储1—源系统 81
5.4.2 数据流1—从数据源到综合层 81
5.4.3 数据存储2—综合层 85
5.4.4 数据流2—从综合层到高性能
查询结构 90
5.4.5 数据存储3—高性能查询结构 91
5.4.6 数据流3—从高性能查询结构到最
终用户报表应用程序 91
5.4.7 数据存储4—最终用户手中的
数据 91
5.5 备选的数据仓库结构 92
5.5.1 备选结构1—不用数据仓库 92
5.5.2 备选结构2—规范化设计 92
5.5.3 备选结构3—仅有数据集市 93
5.6 再谈信息设施 93
第6章 数据仓库开发方法 94
6.1 数据仓库风险 94
6.1.1 技术风险 94
6.1.2 工程管理风险 94
6.1.3 业务风险 95
6.2 方法概述 96
6.3 第一阶段—设想阶段 97
6.3.1 设想阶段目标 97
6.3.2 设想的关键交付项 97
6.3.3 设想流程 99
6.4 第二阶段—探索阶段 100
6.4.1 探索阶段目标 100
6.4.2 探索阶段的关键交付项 100
6.4.3 探索阶段流程 101
6.5 第三阶段—体系结构设计阶段 102
6.5.1 体系结构设计阶段目标 102
6.5.2 体系结构设计阶段的关键交付项 102
6.5.3 体系结构设计阶段流程 103
6.6 第四阶段—构造阶段 104
6.6.1 构造阶段目标 104
6.6.2 构造阶段的关键交付项 104
6.6.3 构造阶段流程 104
6.7 第五阶段—实现阶段 104
6.7.1 实现阶段的目标 105
6.7.2 实现阶段的关键交付项 105
6.7.3 实现阶段流程 105
6.8 第六阶段—审查和反复阶段 106
6.8.1 审查和反复阶段目标 106
6.8.2 审查和反复阶段关键交付项 106
6.8.3 审查和反复阶段流程 106
第7章 数据集市和星形模式设计 107
7.1 数据集市—用户可访问的数据 107
7.1.1 既有数据仓库, 何需数据集市 107
7.1.2 数据集市能代替数据仓库吗 108
7.1.3 典型技术 108
7.2 星形模式设计 109
7.3 设计过程 109
7.3.1 从事实表开始还是从维表
开始设计 111
7.3.2 事实表设计 111
7.3.3 维表设计 112
7.3.4 雪花模式:星形模式的一个变体 115
7.3.5 参照完整性 116
7.4 概要表 116
7.4.1 实例化视图 117
7.4.2 维表的作用 117
7.4.3 确定建立概要的两个规则 118
7.5 通用设计复杂度 118
7.5.1 慢速变化维表 118
7.5.2 非附加事实 119
7.6 包含多事实表的维化数据仓库和
数据集市 121
7.7 结论 122
第8章 物理数据仓库 123
8.1 VLDB 123
8.1.1 时机窗 123
8.1.2 实现一个VLDB 124
8.1.3 表和分区 124
8.2 支持一个星形模式 125
8.2.1 从理论到实践 125
8.2.2 体系的逆规范化 125
8.2.3 星形模式实现 126
8.2.4 维 128
8.3 并行性和物理数据仓库性能 133
8.3.1 大规模并行处理和对称式多处理 134
8.3.2 并行查询 134
8.3.3 并行性和数据仓库 134
8.3.4 并行度 136
8.3.5 在实例级设置并行度 137
8.4 分割表空间 137
8.4.1 系统支持的表空间 137
8.4.2 应用表空间 138
8.4.3 为用户指定表空间 138
8.5 实现物理数据仓库的其他考虑事项 138
8.6 Oracle Internet文件系统 140
8.7 物理实现方法 141
第9章 ETL体系结构基础 142
9.1 ETL基础结构:数据仓库的基础 142
9.2 ETL和数据仓库的基础 142
9.2.1 确定ETL范围 143
9.2.2 对ETL元数据的需求 144
9.2.3 ETL工具和手工开发比较 145
9.2.4 选择一个ETL体系结构 146
9.2.5 确定ETL体系结构 150
9.3 成为ETL的行家里手 150
9.4 从何处开始 151
9.4.1 再谈元数据 151
9.4.2 抽取分析 151
9.4.3 变化数据捕获 153
9.4.4 目标表刷新策略 153
9.4.5 数据转换 159
9.4.6 作业调度 163
9.4.7 平衡 163
9.4.8 成为一个ETL的行家里手 164
第10章 加载Oracle数据仓库 166
10.1 数据库对象 167
10.2 SOL*Loader 168
10.2.1 SOL*Loader特性 168
10.2.2 激活SOL*Loader 169
10.2.3 SOL*Loader的输入和输出 170
10.2.4 控制文件 171
10.2.5 处理定长记录 174
10.2.6 定长记录实例 174
10.2.7 处理变长记录 181
10.2.8 并行和直接加载 182
10.2.9 激活另一个日志 182
10.3 导入和导出 185
10.3.1 操作模式 185
10.3.2 操作方法 185
10.4 导出 186
10.4.1 输入导出程序(Export)
的参数 186
10.4.2 关于导出分区表的一点说明 187
10.4.3 导出实例1 188
10.4.4 导出实例2 190
10.4.5 导出实例3 191
10.5 导入 192
10.5.1 输入导入程序(Import)的参数 193
10.5.2 关于将数据导入分区的一点说明 195
10.5.3 导入实例1 195
10.5.4 导入实例2 196
10.5.5 导入实例3 197
10.6 PL/SQL方法 199
10.6.1 utl_file 202
10.6.2 动态SQL 203
10.7 OWB 205
10.7.1 关于用OWB进行设计的
简单说明 205
10.7.2 用OWB建立数据仓库 206
10.7.3 元数据 209
10.8 其他ETL方案 209
10.9 ETL代码生成器工具 212
10.10 Oracle透明网关 214
10.10.1 网关技术的优点 214
10.10.2 在数据转换中运用网关技术 215
第11章 OWB 216
11.1 OWB软件体系结构 217
11.1.1 元数据存储库 218
11.1.2 用户界面 219
11.1.3 代码生成器 220
11.1.4 集成器 220
11.1.5 Runtime 220
11.2 OWB控制台—引导游览 220
11.2.1 OWB对象 221
11.2.2 操作模式 222
11.2.3 创建工程 223
11.3 使用OWB开发数据仓库工程 224
11.3.1 第1步—定义源数据 224
11.3.2 第2步—设计数据目标 228
11.3.3 第3步—将源数据映射到
目标数据 234
11.3.4 第4步—代码生成 237
11.3.5 第5步—管理数据仓库 238
第12章 数据分区 240
12.1 对数据进行分区的原因 240
12.1.1 常规管理技术 241
12.1.2 易于备份 241
12.1.3 易于重建 241
12.1.4 易于存档/删除 242
12.2 分区对象和未分区对象间的区别 242
12.3 分区决策 244
12.4 Oracle8i分区类型 256
12.4.1 基于范围的分区技术 256
12.4.2 基于范围分区的维护操作 260
12.4.3 散列分区简介 264
12.4.4 组合分区—最好的分区方法 266
第13章 索引数据仓库 268
13.1 索引哪些列 269
13.1.1 考虑列的可选度 269
13.1.2 考虑谓词中涉及的列 270
13.1.3 数据仓库的独特性 271
13.2 单列索引和组合索引 271
13.3 Oracle8i索引方法 271
13.3.1 B-树索引 272
13.3.2 位映像索引 273
13.3.3 索引组织化表 276
13.3.4 换向键索引 278
13.3.5 基于函数的索引 278
13.4 分区表索引 281
13.4.1 局部索引还是全局索引 281
13.4.2 建立局部索引 282
13.4.3 建立全局索引 284
13.5 优化直方图(optimizer histogram) 285
13.6 主键索引 287
13.7 优化索引建立过程 288
13.7.1 建立索引时抑制产生Undo信息 288
13.7.2 快速重建索引 289
13.8 索引建立和维护指南 289
13.8.1 加载数据, 然后建立索引 289
13.8.2 索引建立时分配大量排序空间 289
13.8.3 临时工作空间 290
13.8.4 共享池和索引建立 290
13.8.5 每个表中的索引数目 290
13.8.6 显式地设置存储参数 292
13.8.7 事务项参数 292
第14章 备份数据仓库 294
14.1 备份 294
14.1.1 提供保护机制防止错误 294
14.1.2 数据备份能够提供什么 296
14.1.3 影响备份策略的因素 298
14.1.4 最佳备份时机 302
14.1.5 映像备份 302
14.1.6 无人值守的24/7备份 304
14.1.7 备份技术的发展趋势 306
14.2 数据恢复 307
14.2.1 恢复的种类 307
14.2.2 用映像备份进行恢复 311
14.3 Oracle恢复管理器 312
14.3.1 恢复目录 313
14.3.2 建立恢复目录 313
14.3.3 用RMAN注册数据仓库数据库 314
14.3.4 完整的数据库备份 315
14.3.5 增量备份 318
14.3.6 还原和恢复 319
第15章 数据仓库安全 321
15.1 安全性策略 321
15.1.1 工作站安全 321
15.1.2 窥探 322
15.1.3 链接到Web还是不链接到Web 322
15.1.4 安全性角色 322
15.2 安全性 323
15.2.1 查看数据仓库数据 323
15.2.2 如何在数据仓库中进行
权限管理 324
15.2.3 在何处实现安全 326
15.3 Oracle8i密码安全 326
15.3.1 帐户锁定 326
15.3.2 密码老化和过期 326
15.4 数据库用户管理 327
15.5 Oracle DBA Studio和安全性 328
15.5.1 Users 329
15.5.2 Roles 330
15.5.3 Profiles 332
15.5.4 关于Oracle DBA Studio的
强大功能 332
第16章 存储考虑 334
16.1 Oracle专用术语 334
16.1.1 文件命名规范 334
16.1.2 存储术语 335
16.2 空间分配常见问题 336
16.3 报告空间不足 344
16.3.1 不能扩展的对象 345
16.3.2 非零pctincrease 345
16.3.3 不正常的初始盘区和下一个盘区 346
16.3.4 太接近maxextents的对象 347
16.3.5 当前表空间中的索引重建 347
16.3.6 具有太多空闲空间的表空间 349
16.3.7 表空间中被浪费的空间 351
16.4 其他各种发现空间的方法 354
16.4.1 转储转储文件 354
16.4.2 跟踪文件 355
16.4.3 释放未使用的版本占用的空间 356
16.4.4 O和0 356
第17章 优化数据访问 358
17.1 共享池 358
17.1.1 两个共享池参数 360
17.1.2 确定这些参数的值 360
17.1.3 正确分配共享池的大小 361
17.2 大型池 362
17.3 数据高速缓存中的池 362
17.3.1 定义保留和回收缓冲区池 363
17.3.2 对象缓冲区分配 364
17.4 有关优化的各种特性 364
17.4.1 只读表空间 365
17.4.2 临时表空间 367
17.4.3 本地管理的表空间 368
17.4.4 并行感知的优化器 369
17.4.5 读优先机制 369
17.4.6 导出程序的直接路径存取选项 369
17.4.7 散列连接处理 370
17.5 主管程序 372
17.5.1 建立一个配置文件 372
17.5.2 分配配置文件 373
17.5.3 更改参数配置文件和重新
设置用户 374
17.6 初始化参数文件 375
17.6.1 参数项类型 375
17.6.2 重要参数描述 376
17.7 使用不同的初始化参数文件启动
数据仓库 380
17.7.1 线模式服务器管理程序 380
17.7.2 DBA Studio 381
第18章 把数据发布给用户 383
18.1 查询工具特征 385
18.1.1 易于使用 386
18.1.2 性能 386
18.1.3 多个数据源 387
18.1.4 集中式管理 387
18.1.5 数据安全性 388
18.1.6 可以使用Web 389
18.1.7 集成化分析 389
18.2 使用SQL*Plus生成报表 390
18.3 Cognos Impromptu 391
18.3.1 定义与数据库的连接 392
18.3.2 建立目录 392
18.3.3 增加所需的表 393
18.3.4 定义所需的连接 393
18.3.5 建立文件夹结构 394
18.3.6 添加参数配置文件 395
18.4 从终端用户的角度看Impromptu 395
18.4.1 启动 395
18.4.2 操作报表 396
18.5 小结 397
第19章 Oracle概要特性 398
19.1 视图 398
19.2 实例化视图 399
19.2.1 谁能够建立实例化视图和快照 400
19.2.2 主机站点设置 400
19.2.3 远程站点设置 402
19.2.4 建立快照 403
19.2.5 为什么使用快照 405
19.2.6 对数据字典的影响 405
19.2.7 快照管理 408
19.3 其他聚集操作 412
19.3.1 rollup函数 414
19.3.2 cube函数 415
19.3.3 等级评定函数 416
19.3.4 分窗函数 420
19.3.5 统计函数 422
第20章 OLAP 424
20.1 MOLAP. ROLAP和DOLAP 426
20.2 MOLAP还是ROLAP 426
20.3 为什么需要OLAP 427
20.4 OLAP工具 428
20.4.1 评价OLAP工具 429
20.4.2 使用Cognos Transformer
建立OLAP模型 430
20.4.3 Cognos的PowerPlay 434
20.5 向企业解决方案迁移 438
20.5.1 Cognos解决方案 439
20.5.2 MicroStrategy解决方案 443
20.6 Oracle和OLAP市场 445
第21章 关系型OLAP和聚集导航器 447
21.1 OLAP:仅仅是四个单词吗 447
21.1.1 多维性 447
21.1.2 下钻 448
21.1.3 旋转 451
21.1.4 多视图模式 452
21.1.5 OLAP小结 452
21.2 ROLAP与MOLAP 453
21.2.1 多维数据库 454
21.2.2 关系型数据库 455
21.2.3 回到特洛伊:ROLAP
与MOLAP 457
21.2.4 ROLAP与MOLAP的和平共处 461
21.3 提高ROLAP性能的非传统数据建模 462
21.4 结论 463
第22章 Oracle Discoverer方案 464
22.1 Discoverer综述 464
22.2 Discoverer组件 465
22.2.1 终端用户层 466
22.2.2 管理员版本 466
22.2.3 用户版本 469
22.2.4 查看器版本 472
22.2.5 Discoverer服务器 473
第23章 Oracle Express方案 474
23.1 什么是Express 474
23.2 为什么要使用Express 474
23.2.1 多维形式更加接近于用户的
思维习惯 474
23.2.2 一步到位的方案 475
23.2.3 Oracle Express是成熟的工具 475
23.2.4 可以通过SPL进行扩展 475
23.3 Express在数据仓库环境中的角色 475
23.3.1 Express代表一个稳定的数据
仓库快照 475
23.3.2 Express在数据仓库中的
体系结构 476
23.3.3 与Oracle Warehouse Builder
的集成 477
23.4 Oracle Express服务器 477
23.4.1 概述 477
23.4.2 通信基础结构 478
23.4.3 存储过程语言 479
23.5 Express数据模型和对象 479
23.5.1 维 479
23.5.2 变量 479
23.5.3 关系 480
23.5.4 公式 480
23.5.5 值集 480
23.5.6 程序 481
23.6 Oracle Express实例管理器 481
23.7 批处理管理器 483
23.8 Oracle Express管理员(ADMIN) 483
23.8.1 建立新的数据库 483
23.8.2 操作一个已有的数据库 485
23.9 把数据加载到Express 486
23.9.1 从平面文件中读入数据 486
23.9.2 从EIF文件中导入数据 486
23.9.3 从Discoverer文件中导入数据 486
23.9.4 执行Express SPL命令 487
23.9.5 从关系表中加载数据 487
23.10 关系型访问管理器 487
23.10.1 关系型访问管理员 488
23.10.2 构建模块 488
23.10.3 运行时模块 488
23.10.4 查询统计模块 489
23.10.5 使用关系型访问管理员 489
23.11 操作Express数据—前端方案 490
23.12 Oracle Express分析器 490
23.12.1 主窗口工具栏 490
23.12.2 简报浏览器 492
23.12.3 页视图 492
23.12.4 数据库浏览器 492
23.13 Express Excel插件 492
23.14 Oracle Express对象 493
23.14.1 OEO综述 493
23.14.2 OEO对象之旅 494
23.15 当前的Express Web技术 497
23.15.1 Express Web Agent开发者
工具包 497
23.15.2 Express Web发布程序 499
23.16 Express应用 500
23.16.1 定制应用 501
23.16.2 Oracle预建立的应用 502
第24章 数据挖掘 506
24.1 什么是数据挖掘 506
24.1.1 发现 507
24.1.2 关系 509
24.1.3 模式 509
24.2 数据挖掘带来的收益 511
24.2.1 欺诈检测 511
24.2.2 投资回报 512
24.2.3 电子化方案的可伸缩性 512
24.3 数据挖掘辅助决策制定过程 513
24.4 数据挖掘技术 513
24.4.1 神经网络 513
24.4.2 关联发现 515
24.4.3 分类 515
24.4.4 聚类 516
24.4.5 序列发现 516
24.5 数据挖掘方案检查表 517
24.5.1 对Oracle数据库的直接访问 517
24.5.2 可视化分析能力 517
24.5.3 吸收大量数据的能力 518
24.5.4 对数据质量的敏感性 519
24.6 数据挖掘的前景 519
第25章 webhousing 520
25.1 webhousing的原则 520
25.1.1 不同的方法 521
25.1.2 规划 522
25.2 硬件 523
25.3 我需要安装什么呢 525
25.4 我需要什么类型的服务器来运行
所有这些功能 526
25.5 安装PPES 527
25.6 配置PowerPlay 528
25.6.1 企业服务器 528
25.6.2 确保数据安全 528
25.6.3 添加用户 528
25.6.4 为立方体增加安全机制 530
25.6.5 配置PowerPlay企业服务器 531
25.7 从用户角度看PowerPlay 533
25.7.1 Upfront 533
25.7.2 PowerPlay Web 534
25.8 总结 539