标题：数据仓库结构设计与实施:建造信息系统的金字塔
内 容 简 介
本书共分5章，涉及数据仓库的基本概念、定义及主要特点；根据数据仓库的基础技术和结构概念，采用从元数据、多维数据结构、联机分析处理、数据挖掘、数据仓库的基础部件到联机和成品分析报告一条龙的方法，描述了数据仓库设计与开发生命周期的各个阶段以及相应的技术结构框架；另外，还提供了大量的应用实例，如支票信用认可网络系统、某飞机制造公司单源生产数据、汽车销售管理网络系统等多个工程开发的成功案例；同时，本书还介绍了数据仓库开发过程和策略，主要有跳跃（蛙跳）式发展、数据仓库系统多层次的结构平台——内核与外壳、数据仓库应用开发的要点与特征、数据仓库设计、质量保障、任务、资源、团队、技能等基本内容；最后，通过一系列程序实例，讲解了数据仓库设计与应用开发的建立过程，以及SQL程序在Oracle 9i和SQL Server 分析服务器平台上的实施情况，包括概念设计、物理设计、ETL、总合管理、联机分析、SQL分析和报表构架等详细技术说明。
本书以成功实践为基础，理论与技术实践密切结合，结构紧凑，内容新颖，图文并茂，论述精辟，可作为高等院校信息技术和管理专业、数据库专业教学与研究的教材；同时也适合从事信息系统研究与工程应用开发的广大科技人员作为学习与指导的参考读物。
前    言
随着信息技术处理的迅速发展，尤其是管理决策分析支持系统的迫切需要，数据仓库（Data Warehousing，简称DW）的新概念、新方法、新技术在信息技术领域已成为研究和应用的热点，并日益成熟，成为信息技术应用领域的前沿技术。实践证明，数据仓库在提高决策支持水平、信息质量、应变能力等方面具有重要意义。信息处理技术已从单纯的联机事务处理，进入了数据仓库、联机分析处理、数据挖掘、业务智能的时代。
在本书中引用了《孙子兵法》的一些论述。众所周知，《孙子兵法》是中国古代的战略思想的结晶。令人惊讶的是，孙子的许多论述和思想仍然适用于我们今天丰富多彩的生活与斗争，包括在信息技术开发领域。比如其庙算说(战前策划计算)是决战决胜的先决条件，非常类似今天的联机分析和决策支持的意义和作用；如治众如治寡是用来解决现实世界的复杂性的法宝，在这里提出和大家共勉。
在本书的编写过程中，曾得到国内许多人士的大力帮助和支持。罗晓沛教授提出了很有价值的指导意见，刘德贵研究员为本书的审编作了重要的工作。池太峰、赵玉梅、张之丰、朱军、朱炜等人在本书的编写、命题论证以及审编校对等方面提供了大力帮助和支持，作了大量的工作，使本书得以完成，在此深表谢意。
因作者水平有限，错漏之处在所难免，希望读者批评指正。
池太崴  
2008年12月
概  述
数据仓库技术在操作型数据库的基础上对数据的进一步集成和分析提出了更明确的目标和解决方案，其概念、方法、应用技术、功能得到了广泛应用，给用户带来了巨大的竞争优势。对我国各领域和各企业而言，在建立或发展自己的信息系统的过程中，进行全面而长远的规划尤其重要，它能够加快信息技术实施速度并少走弯路，避免时间、人力、资源的浪费及重复建设。如何在现有的数据库上建立数据仓库，如何考虑它的结构、外部环境和内在关系，如何使数据仓库真正成为战略决策的基础系统等问题显得日益突出。
数据仓库是管理信息系统的“上层建筑”，它集成了许多不同的源数据系统，从而构成中央式的信息集成平台，同时也是信息的转化平台，它将原生数据转化为信息，进一步转化为有用的知识和业务智能，并实现了对管理决策分析的支持。今天，越来越多的部门和机构开始接受并开发数据仓库，并把它作为信息集成的解决方案和决策支持系统工具，以迎接日趋激烈的社会和商业管理的挑战和竞争。
本书将从数据仓库技术背景、技术结构框架、开发和应用等方面，结合作者在数据仓库技术实施过程中的实际经验，深刻阐述数据仓库开发生命周期在各个阶段的特点和策略运用，以及在管理信息系统中的位置和作用。
无论我们打造一个什么样的信息系统，结构总是一个需要认真考虑的首要问题，本书旨在介绍和探索数据仓库的基础技术和结构概念（如多层次结构），因为结构设计为数据仓库开发以及各种决策支持系统奠定基础。当我们对许多信息系统开始进行以集成为目标的基础结构改造的时候，它将变得更为重要。希望读者能够从中获益，有所借鉴。
笔者于20世纪90年代初，在美国麦克尼斯州立大学计算机系获得硕士学位。过去的十几年至今，一直在数据仓库建立和开发的前沿，在北美许多领域中完成或参与了多个大型应用项目，并指导过许多项目的设计与开发，取得了显著的成效。在数据仓库、数据库设计和系统分析与集成方面经历了许多实战的磨练和理论知识教育。同时也积累了很多有价值的总体系统规划实践及大型项目的开发和研究经验，包括正反两方面的经验教训。为了把这些成功的实施经验介绍给国内的广大读者和应用开发研究人员，本着从繁到简、从具体到一般的原则，运用抽象化的图形描述和具体程序示例，编写了本书。实践经验的总结、案例的阐述说明和通俗易懂的图形描述是本书的最大特点
目    录
第1章  数据仓库技术与应用概述1.1  数据仓库的基本概念    2
1.1.1  数据仓库的系统体系    2
1.1.2  数据仓库的应用目标    3
1.2  数据仓库与常规事务处理数据库的区别与联系    3
1.2.1  从数据仓库到操作型数据库——数据仓库的根与源    3
1.2.2  数据仓库与传统数据库的区别    4
1.3  数据仓库的产生原因    4
1.3.1  数据囚笼现象    5
1.3.2  信息孤岛现象    6
1.3.3  相互矛盾的信息流    6
1.3.4  集成的解决办法    7
1.3.5  动力和动机    8
1.4  管理信息系统的“上层建筑”    9
1.4.1  管理层次的概念    9
1.4.2  中层和上层管理存在的系统真空    10
1.4.3  数据仓库系统应用的基本作用    10
1.4.4  数据仓库应用的基本目标    12
1.4.5  数据仓库应用成功的保障    12
1.5  电子商务与电子政务    12
1.5.1  现代社会中的电子商务与电子政务    13
1.5.2  以客户为中心的现代社会环境    14
1.5.3  电子商务与电子政务提高了服务效率    15
1.6  数据仓库的ROI（回报投入比）    17
1.7  联机综合分析系统中数据仓库的应用    19
1.8  挑战和趋势    20
第2章  数据仓库的总体结构2.1  金字塔结构    25
2.2  数据仓库的结构与环境    29
2.3  准备区——数据源和数据仓库之间的过渡    32
2.4  元数据与模型    32
2.4.1  元数据的定义    34
2.4.2  元数据的作用    34
2.4.3  元数据和模型的整建    35
2.4.4  命名法    35
2.4.5  元数据存储区    36
2.4.6  元数据的维护和应用    37
2.4.7  元数据的定义和管理    39
2.4.8  统一元数据标准和元数据交换    43
2.5  多维数据结构    46
2.5.1  星型结构    46
2.5.2  雪花型结构    48
2.5.3  混杂型结构    49
2.5.4  度量应用举例    50
2.6  映像    50
2.6.1  映像的含义    52
2.6.2  数据迁移和转换的过程    52
2.6.3  抽象与映像层次    54
2.6.4  应变式映像策略    57
2.6.5  映像类型    58
2.7  滚动综合数据    59
2.8  联机分析处理    63
2.8.1  联机分析处理——数据仓库的自然延伸    64
2.8.2  联机分析处理系统的集成    64
2.8.3  维的作用    65
2.8.4  对多维数据方阵的链接和分析    65
2.8.5  方阵系列的设计要点    66
2.8.6  总计数据的自动更新    67
2.8.7  报表构架    67
2.8.8  联机分析处理（OLAP）的解决办法    67
2.8.9  表示工具    68
2.8.10  表示工具的预处理    68
2.9  数据发掘    69
2.9.1  数据发掘的重要性    69
2.9.2  数据发掘的方法与技术    70
2.10  实现闭环的联机分析处理    71
2.11  卸载操作型数据库与保护数据源    74
2.11.1  数据源——企业最重要的信息资产    74
2.11.2  操作型事务处理数据库的特征    74
2.11.3  决策支持数据库系统的特点    74
2.11.4  两种作业混合的弊端    75
2.11.5  回顾过去作业的局限性    75
2.11.6  卸载    76
2.11.7  双赢的解决办法    78
2.12  数据仓库的三要素    79
2.13  多维总计方阵    81
2.13.1  从基本数据到综合信息    81
2.13.2  方阵是联机分析的基础结构    81
2.13.3  方阵的类型    82
2.13.4  方阵的卸载与底层数据表的屏蔽    85
2.13.5  刷新    86
2.13.6  方阵的设计要点    87
2.13.7  从数据仓库基本数据（事实/维）到最终分析报告的映像    88
2.14  ETL（提取—转换—加载）从数据源到目标    89
2.14.1  数据的启程    90
2.14.2  数据标准化的准备工作和数据清洗的工具字典    90
2.14.3  粒度与聚合数据    90
2.14.4  魔力无边的巨型章鱼    91
2.14.5  数据仓库的数据追加    91
2.14.6  提取—转换—加载处理的映像过程    92
2.14.7  作业顺序、依赖关系和进程控制    92
2.14.8  从数据源进入数据仓库到以分析报表输出    93
2.14.9  数据提取—转换—加载的主要流程和会话期流程    94
2.15  从数据源到目标——Informatica    97
2.16  数据仓库在因特网环境下的应用    98
2.16.1  客户-服务器系统的特点    99
2.16.2  因特网数据仓库的特点    100
2.16.3  设计指南    101
2.16.4  安全性技术    102
第3章  数据仓库应用实例3.1  分布式数据仓库——独立的数据库接口    104
3.2  共享式数据仓库——共享式支票信用认可网络    107
3.3  某飞机制造公司——单源生产数据    108
3.4  汽车销售管理网络——数据仓库支持下的联机分析报表    109
第4章  数据仓库应用开发的策略与过程4.1  数据仓库开发策略    111
4.2  跳跃（蛙跳）式发展    113
4.2.1  数据仓库的演变史    113
4.2.2  建立真正的数据仓库    114
4.3  数据仓库系统平台    115
4.3.1  观察数据仓库系统的基本结构    116
4.3.2  多层结构环境    116
4.3.3  多层次、多分区系统    117
4.3.4  坚实的胡桃    117
4.3.5  表示层与内核的部署    118
4.3.6  应用软件的基本结构    118
4.4  数据仓库应用开发的要点与特征    121
4.4.1  数据仓库应用的命题/主题确定    123
4.4.2  往复循环式开发数据仓库    127
4.4.3  建立数据集市    133
4.5  数据仓库设计质量    134
4.5.1  数据仓库质量的重要性    134
4.5.2  数据质量保障    134
4.5.3  数据质量保障的环境和各个处理环节    135
4.5.4  错误检测    136
4.5.5  质量保障系统    137
4.5.6  及时发现错误    138
4.5.7  错误追踪    138
4.5.8  解决劣质数据    144
4.6  数据仓库应用开发保障技术    144
4.6.1  知识与知识产权的维护    145
4.6.2  团队    147
4.7  数据仓库安全性与有关技术    152
4.7.1  识别安全威胁的类型与攻击方法    153
4.7.2  安全性防范思想与布局    155
4.7.3  安全性策略与技术    155
4.7.4  数据仓库安全性的应用结构设计技术    157
第5章  数据仓库设计与应用开发5.1  数据仓库的概念设计    161
5.1.1  概念设计    162
5.1.2  元数据定义及管理    162
5.1.3  数据结构概图    163
5.1.4  数据仓库的基本表    164
5.1.5  从逻辑设计到物理设计    165
5.2  数据仓库的物理设计    165
5.2.1  事实表设计    166
5.2.2  维数    169
5.2.3  分区    173
5.2.4  索引设计    175
5.2.5  完整性约束设计    176
5.2.6  实体化视图设计    177
5.3  数据提取—转换—加载（ETL）    188
5.3.1  建立事件映像    189
5.3.2  建立视图或实体化视图与视图模拟    189
5.3.3  ETL过程举例    189
5.3.4  提取—转换—加载的方法    192
5.3.5  数据的标准化与规范化    193
5.3.6  数据清洗与实例    195
5.3.7  数据提取—转换—加载工具    198
5.3.8  数据提取    200
5.3.9  加载和转换    204
5.3.10  数据提取—转换—加载的主流程    209
5.4  综合管理    212
5.4.1  总体构架    212
5.4.2  汇总准备    214
5.4.3  报表准备工作的基础——从数据仓库生成并刷新实体化视图    214
5.4.4  刷新实体化视图    214
5.4.5  监控数据仓库的刷新    216
5.4.6  实体化视图的管理要点    218
5.5  联机分析处理（OLAP）    219
5.5.1  SQL与综合函数    219
5.5.2  多维分析技术    220
5.5.3  数据仓库SQL总计分析语句结构与流程    221
5.5.4  综合SQL和函数的应用    222
5.5.5  SQL和分析函数    235
5.6  报表发布    242
5.6.1  表示系统软件工具的联用——从后台到前台    242
5.6.2  建立报表的过程    244
5.6.3  对多维方阵的钻入/聚合操作    244
5.6.4  表示工具的预处理    245
5.6.5  应用SQL分析服务器    245
5.7  报表系统构架    250
5.7.1  报表系统构架及其支撑结构    251
5.7.2  从数据库生成XML数据    251
5.7.3  建立报表函数库    259
5.7.4  建立报表程序库    288
5.7.5  报表系统构架及其支撑结构    301
5.7.6  应用表函数    312