1、厦门大学软件学院毕业论文本科毕业论文(科研训练、毕业设计)题 目:基于 IBM DB2 的数据仓库设计与实现姓 名:学 院:软件学院系:专 业:软件工程年 级:学 号:指导教师(校内): 职称: 2019 年 4 月 3 日厦门大学软件学院毕业论文- I -基于 IBM DB2 的数据仓库设计与实现摘要 当今,数据仓库技术不再仅仅是理论研究,而是过渡到实际应用发展的阶段,许多企业已经在数据仓库的环境下进行业务增值,由于数据仓库的产生,信息获取的能力大大提升,使数据仓库成为当今企业中重要的管理系统。本文首先介绍了数据仓库的发展历史,应用现状,基本特征和一般体系结构等概念。然后基于IBM DB2数
2、据库系统,通过一些实例,把抽象的理论具体化,并进行了数据仓库的设计。在设计中,分成确定主题,准备数据和设计模型等步骤。最后对通信业务系统原型提出了设计方案。通过IBM DB2工具将设计方案实施,本文简要介绍了一些DB2的相关工具,然后逐步将数据的抽取、转换、加载过程,OLAP操作,立方体的概念等部分进行描述,最后提出了数据仓库发展的必然趋势和最终目的,对数据仓库整体设计和实现进行了总结。关键词 数据仓库 OLAP 联机分析处理厦门大学软件学院毕业论文- II -The Design and Implement of Data Warehouse in DB2Abstract Nowadays,
3、 the warehouse technology is not only merely theoretical, but also the transition to the stage of the development of practical applications. Many enterprises got more business values in the environment of data warehouse. With enhanced the ability of accessing to information, the data warehouse has b
4、ecome an important management system in the business. This paper introduces some data concept, including the history of warehouse, the basic characteristics of database and the general data warehouse architecture. Based on the IBM DB2 database system, I had design a data warehouse. I made the whole
5、plan for dividing the whole procedure into some parts, which were definition the theme, preparation of the data and model design. Finally, I Proposed design options for Business communications systems.The design was implemented through IBM DB2 tools. The paper outlined some DB2 related tools, and th
6、en explained the ETL system, the operation of OLAP and the concept of cube. In the end, I made a conclusion on design and realization of data warehouse.Key words data warehouse OLAP厦门大学软件学院毕业论文- III -目 录第一章 引言 11.1. 数据仓库的概念 11.1.1. 数据仓库的起源 11.1.2. 从数据库到数据仓库的演化 21.2. 数据仓库的发展趋势 21.2.1. 计算机技术对数据仓库发展的影响
7、 31.2.2. 商业对数据仓库发展的影响 3第二章 数据仓库原理 32.1. 数据仓库的定义与特征 32.2. 数据仓库体系结构 42.3. 数据仓库的组成 52.3.1. 数据仓库数据库 52.3.2. 数据抽取工具 52.3.3. 元数据 62.3.4. 访问工具 62.3.5. 数据集市 62.4. 联机分析处理技术 62.4.1. 联机处理分析的概念 62.4.2. 联机分析处理的特点 72.4.3. OLAP 的典型操作 .82.4.4. OLAP 的多维数据结构 .8第三章 数据仓库平台设计 .1031 构建数据仓库 113.1.1. 数据仓库开发流程 .113.2. 数据仓库实
8、施框架 .113.3. 数据源的分析 .123.3.1. 来自业务系统的实时数据 .123.3.2. 汇总数据 .123.4. 数据仓库模型设计 .133.4.1. 数据仓库的建模技术 .133.4.2. 实体关系模型 .13厦门大学软件学院毕业论文- IV -3.4.3. 维度建模 .143.5. 数据抽取/转换/加载(ETL)过程 153.5.1. 数据抽取 .163.5.2. 数据转换 .163.5.3. 数据加载 .17第四章 数据仓库基于 IBM DB2 的实现 .184.1. IBM 的数据仓库解决方案 184.1.1. 主要工具介绍 .184.1.2. DB2 数据仓库的 OLA
9、P 服务 204.2. OLAP 实例分析 224.2.1. 确定分析主题 .234.2.2. 确定分析方法 .234.2.3. 定义维度 .224.2.4. 构造分析立方体或星型结构 .234.3. MOLAP(Multidimensional OLAP)的实现 .234.3.1. 创建立方体模型事实表 .244.3.2. 创建模型的维 .244.3.3. 为维创建层次结构 .244.3.4. 为每个层次结构创建层 .244.3.5. 创建立方体 .24第五章 结论 .265.1. 总结 .265.2. 展望 .27致谢语 28参考文献 29厦门大学软件学院毕业论文- 1 -第一章 引言1.
10、1.数据仓库的概念随着市场竞争的日趋激烈,信息对于企业的生存和发展发挥着越来越重要的作用。由于计算机技术的普遍应用,承载信息的数据随着时间的推移而不断的增加,并且数据分布在不同的系统平台上,具有多种存储形式。能否从纷繁复杂、大量沉淀的数据中得到有用的决策信息,及时做出正确的分析和决策,己成为企业生存与发展至关重要的课题。自从20世纪70年代提出决策支持的概念以来,人们在决策支持系统(Decision Support System,DSS)理论及应用上做了大量的研究工作,并且在企业决策中发挥了积极的作用。然而,传统的数据库管理系统因自身的局限性已无法满足决策支持系统对数据的要求。因此,适用于决策
11、支持系统的数据组织与管理技术数据仓库技术(Data Warehouse)应运而生,并逐渐成为支持分析与决策的重要技术。1.1.1.数据仓库的起源数据仓库和决策支持系统(Decision Support System,DSS)处理的起源可以追溯到计算机与信息系统发展的初期。60 年代,IBM 公司开发了第一个通用的 DBMS 系统 IMS,这是一个层次数据库系统,在数据库系统发展史上有着重要的地位。到了 1969 年,E.F.Codd 博士发表了他著名的关系数据模型的论文。此后,关系数据库的出现开创了数据管理的一个新时代。大量新技术、新思路的涌现出来并被用于关系型数据库系统的开发和实现,SQL
12、的使用已成为一个不可阻挡的潮流,加上计算机硬件的处理能力呈数量级的递增,关系数据库最终成为联机事务处理系统的主宰。整个 80 年代直到 90 年代初,联机事务处理一直是数据库应用的主流。然而,应用在不断地进步。当联机事务处理系统应用到一定阶段后,用户便发现单靠拥有联机事务处理已经不足以获得市场竞争的优势,他们需要对其自身业务的运作以及整个市场相关行业的情况进行分析,而做出有利的决策。这种决策需要对大量的业务数据包括历史业务数据进行分析才能得到。在如今这样激烈的市场竞争环境下,这种基于业务数据的决策分析,称为联机分析处理。为了让联机事务处理在业务中有更方便,快捷的应用,人们为业务的统计分析建立一
13、个数据中心,这个数据中心是一个联机的系统,它是专门为分析统计和决策支持应用服务的,通过它可以满足决策支持和联机分析应用所要求的一切。这个数据中心也就是数据仓库的原型。总体来说,数据仓库是一个作为决策支持系统和联机分厦门大学软件学院毕业论文- 2 -析应用数据源的结构化数据环境。数据仓库所要研究和解决的问题就是从数据库中获取信息的问题。 1.1.2.从数据库到数据仓库的演化传统的数据库技术是以单一的数据资源,即数据库为中心,进行事务处理、批处理、决策分析等各种数据处理工作,主要的划分为两大类:操作型处理和分析型处理(或信息型处理)。 操作型处理也叫事务处理,是指对数据库联机的日常操作,通常是对一
14、个或一组纪录的查询和修改,主要为企业的特定应用服务的,注重响应时间,数据的安全性和完整性;分析型处理则用于管理人员的决策分析,经常要访问大量的历史数据。而传统数据库系统优于企业的日常事务处理工作,而难于实现对数据分析处理要求,已经无法满足数据处理多样化的要求。操作型处理和分析型处理的分离成为必然。近年来,随着数据库技术的应用和发展,人们尝试对数据库中的数据进行再加工,形成一个综合的,面向分析的环境,以更好支持决策分析,从而形成了数据仓库技术(Data Warehousing,DW),作为决策支持系统。数据仓库弥补了原有的数据库的缺点,将原来的以单一数据库为中心的数据环境发展为一种新环境:体系化
15、环境。数据仓库与传统的数据库系统相比,有着本质的不同。数据库是一种通用平台,建立于严格的数学模型之上,用来管理企业数据,进行事务处理,完成相关业务;而数据仓库没有严格的数据理论,更偏向于工程,它不是花钱就可购买到的成品,而是企业一个日积月累的建立过程,它的应用对象是不同层次的管理者,它的数据源是多种数据源,库中数据无须修改删除,主要是大规模查询和分析,因此要求有大量的历史数据和汇总数据。1.2.数据仓库的发展趋势数据仓库是数据管理技术和市场上一个方兴未艾的领域,有着良好的发展前景。在此,我们将从技术、应用、市场等几个方面探讨数据仓库的未来发展。数据仓库的发展自然包括数据抽取、存储管理、数据表现
16、和方法论等方面。在数据抽取方面,未来的技术发展将集中在系统集成化方面。它将互连、转换、复制、调度、监控纳入标准化的统一管理,以适应数据仓库本身或数据源可能的变化,使系统更便于管理和维护。在数据管理方面,未来的发展将使数据库厂商明确推出数据仓库引擎,作为服务器产品与数据库服务器并驾齐驱。在这一方面,带有决策支持扩展的并行关系数据库将最具发展潜力。在数据表现方面,数理统计的算法和功能将普遍集成到联机分析产品中,同时与 Internet/Web 技术紧密结合,推出适用于 Intranet、终端免维护的数据仓库访问前端。在这个方面,按行业应用特征细化的数据厦门大学软件学院毕业论文- 3 -仓库用户前端
17、软件将成为产品作为数据仓库解决方案的一部分。数据仓库实现过程的方法论将更加普及,将成为数据库设计的一个明确分支,成为管理信息系统设计的必备。1.2.1.计算机技术对数据仓库发展的影响计算机应用发展的数据仓库倾向是数据仓库发展的推动力。传统的联机事务处理系统并不单独考虑数据仓库,但实际应用对数据仓库所能提供的功能却早有需求。因此,许多事务处理系统近年来陷入一个两难的境地:在现有系统上增加有限的联机分析功能,包括复杂的报表和数据汇总操作;一方面严重影响了事务处理联机性能,另一方面统计分析又因系统结构上的种种限制而不能充分体现。其结果是:应用技术的发展是朝着更加细化,更加专业的方向。在新一代的应用系
18、统中,数据仓库在一开始便被纳入系统设计的考虑,联机分析应用于普遍的事务处理系统之中。在数据管理上,联机事务处理和数据仓库在应用中相对独立,使联机事务处理系统本身更加简洁高效,同时分析统计也更为便利。面向行业的数理统计学向更为普遍的应用发展,并集成到应用系统的数据仓库解决方案中。它们将立足于数据仓库提供的丰富信息,更好地为业务决策服务。1.2.2.商业对数据仓库发展的影响在未来的商业中,数据管理不仅在传统领域,如金融、保险、电信,发挥巨大的作用,而且数据仓库的应用随着现代社会商业模式的变革而进一步普及和深入。当一些专家预测数字化定制经济模式可能成为今后企业生产的组织原则,那么在未来大规模定制经济
19、环境下,数据仓库,特别是基于数据管理和利用的综合性技术和解决方案,将成为企业获得竞争优势的关键武器。厦门大学软件学院毕业论文- 4 -第二章 数据仓库原理2.1.数据仓库的定义与特征数据仓库概念创始人 W.H.Inmon 在建立数据仓库一书中对数据仓库的定义是:数据仓库就是面向主题的、集成的、不可更新的(稳定性)、随时间不断变化(不同时间)的数据集合,用以支持经营管理中的决策制定过程。数据仓库的特征:1、面向主题操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织。主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一
20、个主题通常与多个操作型信息系统相关。2、集成的面向事务处理的操作型数据库通常与某些特定的应用相关,数据库之间相互独立,并且往往是异构的。而数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。 3、相对稳定的操作型数据库中的数据通常实时更新,数据根据需要及时发生变化。数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。
21、4、反映历史变化操作型数据库主要关心当前某一个时间段内的数据,而数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。2.2.数据仓库体系结构数据源是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部厦门大学软件学院毕业论文- 5 -信息。内部信息包括存放于 RDBMS 中的各种业务处理数据和各类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息等等。1数据的存储与管理是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管理。数据仓库的组
22、织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库。2OLAP 服务器对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。其具体实现可以分为:ROLAP、MOLAP 和 HOLAP。ROLAP 基本数据和聚合数据均存放在 RDBMS 之中;MOLAP 基本数据和聚合数据均存放于多维数据库中;HOLAP 基本数据存放于
23、RDBMS 之中,聚合数据存放于多维数据库中。3前端工具主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以数据挖掘及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对 OLAP 服务器,报表工具、数据挖掘工具主要针对数据仓库。图 2-1 数据仓库体系结构2.3. 数据仓库的组成厦门大学软件学院毕业论文- 6 -2.3.1.数据仓库数据库 数据仓库数据库是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。相对于操纵型数据库来说其突出的特点是对海量数据的支持和快速的检索技术。 2.3.2.数据抽取工具 把数据从各种各样的存储方式中拿出来,进行必要的转化、整理
24、,再存放到数据仓库内。对各种不同数据存储方式的访问能力是数据抽取工具的关键,应能生成 COBOL 程序、MVS 作业控制语言(JCL) 、UNIX 脚本、和 SQL 语句等,以访问不同的数据。数据转换都包括,删除对决策应用没有意义的数据段;转换到统一的数据名称和定义;计算统计和衍生数据;给缺值数据赋给缺省值;把不同的数据定义方式统一。2.3.3.元数据元数据是描述数据仓库内数据的结构和建立方法的数据。可将其按用途的不同分为两类,技术元数据和商业元数据。 技术元数据是数据仓库的设计和管理人员用于开发和日常管理数据仓库是用的数据。包括:数据源信息;数据转换的描述;数据仓库内对象和数据结构的定义;数
25、据清理和数据更新时用的规则;源数据到目的数据的映射;用户访问权限,数据备份历史记录,数据导入历史记录,信息发布历史记录等。商业元数据从商业业务的角度描述了数据仓库中的数据。包括:业务主题的描述,包含的数据、查询、报表。元数据为访问数据仓库提供了一个信息目录(Information Directory) ,这个目录全面描述了数据仓库中都有什么数据、这些数据怎么得到的、和怎么访问这些数据。是数据仓库运行和维护的中心,数据仓库服务器利用他来存贮和更新数据,用户通过他来了解和访问数据。2.3.4.访问工具 为用户访问数据仓库提供手段。有数据查询和报表工具;应用开发工具;管理信息系统(EIS)工具;在线
26、分析(OLAP)工具;数据挖掘工具。2.3.5.数据集市为了特定的应用目的或应用范围,而从数据仓库中独立出来的一部分数据,也可称为部门数据或主题数据(subject area) 。在数据仓库的实施过程中往往可以从一个部门的数据集市着手,以后再用几个数据集市组成一个完整的数据仓库。需要注意的就是再实施不同的厦门大学软件学院毕业论文- 7 -数据集市时,同一含义的字段定义一定要相容,这样再以后实施数据仓库时才不会造成大麻烦。2.4.联机分析处理技术2.4.1.联机处理分析的概念联机分析处理 (OLAP) 的概念最早是由关系数据库之父 E.F.Codd 于 1993 年提出的,联机分析处理是共享多维
27、信息的、针对特定问题的联机数据访问和分析的快速软件技术。它通过对信息的多种可能的观察形式进行快速、稳定一致和交互性的存取,允许管理决策人员对数据进行深入观察。决策数据是多维数据,多维数据就是决策的主要内容。OLAP 专门设计用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持,可以根据分析人员的要求快速、灵活地进行大数据量的复杂查询处理,并且以一种直观而易懂的形式将查询结果提供给决策人员,以便他们准确掌握企业(公司)的经营状况,了解对象的需求,制定正确的方案。联机分析处理具有灵活的分析功能、直观的数据操作和分析结果可视化表示等突出优点,从而使用户对基于大量复杂数据的分析变得轻松而高效
28、,以利于迅速做出正确判断。它可用于证实人们提出的复杂的假设,其结果是以图形或者表格的形式来表示的对信息的总结。它并不将异常信息标记出来,是一种知识证实的方法。2.4.2.联机分析处理的特点OLAP委员会对它的定义是:OLAP是一种软件技术,它使分析人员能够迫速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的,这些信息是从原始数据直接转换过来的,它们以用户容易理解的方式反映企业的真实情况。OLAP 是一种数据分析技术,其基本的功能特征是:(1) 快速性用户对OLAP的快速反映有很高的要求,一般要求能在5秒内对分析要求有反应。对于大量的数据分析要达到这个要求并不容易,因此在其设计时应考虑
29、:专门的数据存贮格式,大量的事先运算,特别的硬件设计等等。(2) 可分析性OLAP系统应能处理与应用有关的任何逻辑分析和统计分析。因为事先编程并不能定义所有的应用,所以,在应用OLAP的过程中,用户无需编程就可以定义新的专门计算,将其做为分析的一部分,且以用户希望的方式给出报告。用户可以在OLAP平台上进行数据分析,也可以连接到其他外部分析工具上,如时间序列分析工具,成本分析工具,意外报等,数据挖掘厦门大学软件学院毕业论文- 8 -等。(3) 多维性多维性是OLAP的关键属性,系统能够提供对数据分析的多维视图和分析,包括对层次维和多重层次维的支持。多维分析是分析企业数据的最有效的方法,是OLA
30、P的灵魂。(4) 信息性不论数据量有多大,也不管数据存贮在何处,OLAP系统应能及时获得信息,并且能管理大容量信息。这里有许多因素要考虑,如数据的可复制性、可利用的磁盘空间、OLAP产品的性能以及与数据仓库的结合度等。(5) 共享性这意味着系统要符合数据保密的安全要求,即使多个用户同时使用,也能够根据用户所属的安全级别,让他们只能看到他们应该看到的信息。2.4.3.OLAP 的典型操作OLAP 的基本多维分析操作有钻取(Drill-up 和 Drill-down) 、切片(Slice)和切块(Dice) 、以及旋转(Pivot)等。1.钻取通过改变维的层次,变换分析的粒度。它包括向下钻取(Dr
31、ill-down)和向上钻取(Drill-up)/上卷(Roll-up)。向下钻取是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而向下钻取则相反,它从汇总数据深入到细节数据进行观察或增加新维。2.切片和切块在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个或以上,则是切块。3.旋转变换维的方向,即在表格中重新安排维的放置(例如行列互换) 。2.4.4.OLAP 的多维数据结构 数据在多维空间中的分布总是稀疏的、不均匀的。在事件发生的位置,数据聚合在一起,其密度很大。因此,OLAP 系统的开发者要设法解决多维数据空间的数据稀疏和数
32、据聚合问题。事实上,有许多方法可以构造多维数据。1.超立方结构超立方结构(Hypercube)指用三维或更多的维数来描述一个对象,每个维彼此垂直。数据厦门大学软件学院毕业论文- 9 -的测量值发生在维的交叉点上,数据空间的各个部分都有相同的维属性。这种结构可应用在多维数据库和面向关系数据库的 OLAP 系统中,其主要特点是简化终端用户的操作。超立方结构有一种变形,即收缩超立方结构。这种结构的数据密度更大,数据的维数更少,并可加入额外的分析维。图 2-2 三维数据立方体2.多立方结构在多立方结构(Multicube)中,将大的数据结构分成多个多维结构。这些多维结构是大数据维数的子集,面向某一特定
33、应用对维进行分割,即将超立方结构变为子立方结构。它具有很强的灵活性,提高了数据(特别是稀疏数据)的分析效率。一般来说,多立方结构灵活性较大,但超立方结构更易于理解。终端用户更容易接近超立方结构,它可以提供高水平的报告和多维视图。但具有多维分析经验的 MIS 专家更喜欢多立方结构,因为它具有良好的视图翻转性和灵活性。多立方结构是存储稀疏矩阵的一个更有效方法,并能减少计算量。因此,复杂的系统及预先建立的通用应用倾向于使用多立方结构,以使数据结构能更好地得到调整,满足常用的应用需求。许多产品结合了上述两种结构,它们的数据物理结构是多立方结构,但却利用超立方结构来进行计算,结合了超立方结构的简化性和多
34、立方结构的旋转存储特性。3.活动数据的存储用户对某个应用所提取的数据称为活动数据,它的存储有以下三种形式:(1)关系数据库如果数据来源于关系数据库,则活动数据被存储在关系数据库中。在大部分情况下, 数据以星型结构或雪花结构进行存储。(2)多维数据库在这种情况下,活动数据被存储在服务器上的多维数据库中,包括来自关系数据库和终端用户的数据。通常,数据库存储在硬盘上,但为了获得更高的性能,某些产品允许多维数据结厦门大学软件学院毕业论文- 10 -构存储在 RAM 上。有些数据被提前计算,计算结果以数组形式进行存储。(3)基于客户的文件在这种情况下,可以提取相对少的数据放在客户机的文件上。这些数据可预
35、先建立, 如Web 文件。与服务器上的多维数据库一样,活动数据可放在磁盘或 RAM 上。这三种存储形式有不同的性能,其中关系数据库的处理速度大大低于其他两种。1. OLAP 数据的处理方式OLAP 有三种数据处理方法。事实上,多维数据计算不需要在数据存储位置上进行。 (1) 关系数据库即使活动的 OLAP 数据存储在关系数据库中,采用在关系数据库上完成复杂的多维计算也不是较好的选择。因为 SQL 的单语句并不具备完成多维计算的能力,要获得哪怕是最普通的多维计算功能也需要多重 SQL。在许多情况下,一些 OLAP 工具用 SQL 做一些计算,然后将计算结果作为多维引擎输入。多维引擎在客户机或中层
36、服务器上做大部分的计算工作 ,这样就可以利用 RAM 来存储数据,提高响应速度。(2)多维服务引擎大部分 OLAP 应用在多维服务引擎上完成多维计算,并且具有良好的性能。因为这种方式可以同时优化引擎和数据库,而服务器上充分的内存为有效地计算大量数组提供了保证。(3)客户机在客户机上进行计算,要求用户具备性能良好的 PC 机,以此完成部分或大部分的多维计算。对于日益增多的瘦型客户机,OLAP 产品将把基于客户机的处理移到新的 Web 应用服务器上。厦门大学软件学院毕业论文- 11 -第三章 数据仓库平台设计31 构建数据仓库3.1.1.数据仓库开发流程开发数据仓库的流程主要包括一下几个步骤:1启
37、动工程首先建立开发数据仓库工程的目标及制定工程计划。2建立技术环境选择实现数据仓库的软硬件资源,包括开发平台,DBMS,开发工具,等。3确定主题进行数据建模根据决策需要确定主题,选择数据源,对数据仓库的数据组织进行逻辑结构设计。4设计数据仓库中的数据库基于用户的需求,着重于某个主题,开发数据仓库中的数据的物理存储结构,即设计多维数据结构的事实表和维表。5数据转换程序实现从源系统中抽取、清洗、一致性格式化,综合。装载数据等过程的设计和编码。6管理元数据定义元数据,即表示、定义数据的意义及系统各组件之间的关系。7开发用户决策的数据分析工具建立结构化的决策支持查询,实现和使用数据仓库的数据分析工具,
38、包括优化查询工具,OLAP 工具及数据开采工具等。通过分析工具满足决策支持的需求。8管理数据仓库环境数据仓库必须像其他系统一样进行管理,包括质量检测,管理决策支持工具及应用程序,并定期进行数据更新,使数据仓库正常运行。3.2.数据仓库实施框架数据仓库的实施方式一般分为三种类型:自顶向下法,自底向上法或两者混合。自顶向下法即为从最终用户的需求出发,在充分理解最终用户需求的基础上,建立面向厦门大学软件学院毕业论文- 12 -最终用户的分析模型,然后到已有的信息系统(数据源)中寻找需要的数据,将数据进行抽取、清洗、转换、处理后加载到已建立的分析模型中。用通俗的话讲就是最终用户需要什么,就到数据源中去
39、找什么。自顶向下法需要最终用户和各生产系统业务人员的大力支持。自顶向下法所建立的分析模型的优点是能够满足最终用户的需求(这是一个信息系统成功的关键),缺点是对 ETL 程序提出了极高的要求,有一些数据从现有的系统中很难得到,另一些数据现有的需求又不能充分利用,造成一定的资源浪费,而且这些数据很有可能在最终用户的下一个应用需求中需要。自下向顶法即为从现有的信息系统已有的数据出发,在充分了解现有系统数据的情况下,根据经验(包括数据仓库分析模型的建设经验和业务经验两方面) ,建立分析模型。用通俗的话讲就是现有的信息系统有哪些数据,就向最终用户提供哪些数据。自下向顶法需要已有信息系统的设计、维护人员的
40、大力支持。自下向顶法建立的分析模型的优点是 ETL 过程相对来说比较简单,因为模型基于已有的数据,同时能够比较充分地利用数据,缺点是有可能不能充分满足最终用户的需求,而这一点有可能导致项目的失败。3.3.数据源的分析为了构建数据仓库的数据模型,在需求分析阶段,需要对源数据进行分析。在数据源选择的过程中,遵循以下原则:1能提供系统分析应用所需的数据;2对于同一项数据存在于多个地方的情况,选择最具有权威性同时数据提取成本最低的数据源;3对于汇总数据和最细粒度数据并存的情况,尽量选择最细粒度的数据;4对于暂时分析应用中还不需要,但比较容易获取,而且和系统有关的数据,可以一并提取到本系统中,以便于以后
41、系统应用的扩展。3.3.1.来自业务系统的实时数据来自业务系统的实时数据是企业数据仓库的最重要的数据来源。在这些数据进入数据仓库之前,必须进行清洗,抽取,转换,加载等多个工序的处理。通过这些处理,一方面可以提高数据的质量;另一方面将使数据从适应业务系统的数据模式转换为适应分析系统的数据模式。3.3.2.汇总数据汇总数据,就是在细节数据上进行汇总,平均等处理步骤之后得到的较低粒度的数据。厦门大学软件学院毕业论文- 13 -对与数据仓库而言,对于访问频率相对较高的汇总数据,会做出各种的优化措施,以提高访问的响应速度。图 3-1 数据仓库的两种数据源类型3.4.数据仓库模型设计模型是对现实事物的反映
42、和抽象,它可以帮助我们更加清晰的了解客观世界。数据仓库建模在业务需求分析之后开始,是数据仓库构造工作正式开始的第一步,正确而完备的数据模型是用户业务需求的体现,是数据仓库项目成功与否最重要的技术因素。3.4.1.数据仓库的建模技术目前,主流的数据仓库建模技术分为两种:实体关系建模(Entity-Relationship Modeling)和维建模(Dimension Modeling)。其中,维建模又分为星型结构和雪花结构。3.4.2.实体关系模型实体关系模型是一种抽象的工具,能够简化企业中复杂的数据关系,并把它用规范的方式表示出来,使其易于理解。1实体实体(entity)是一个数据对象,指可
43、以区别客观存在的事物,如人、部门、表格、项目等。同一类实体的所有实例就构成该对象的实体集(entity classes) 。也就是说,实体集是实体的集合,由该集合中实体的结构形式表示,而实例则是实体集中的某一个特例,通过其属性值表示。2属性属性用来描述实体的特征。同时,依据系统的需求,每个属性都有它的数据类型及特性。特性包括指定该属性在某些情况下是否必需、属性是否有默认值、属性的取值范围、是否为主键或候选键等。厦门大学软件学院毕业论文- 14 -3关系关系连接多个实体,描述相关实体的相互作用关系。4范式范式是数据库逻辑模型设计的基础理论。一个关系模型可以从第一范式到第五范式进行无损分解,这个过
44、程也称为规范化(Normalize)。目前一般采用第三范式,它有非常严格的数学定义。3.4.3.维度建模1星型结构星型结构模式是一种多维的数据关系,由一个事实表和一组维表组成。每个维表都有一个维作为主键,所有这些维组合成事实表的主键。事实表的非主属性称为事实,它们一般都是数值或其他可以进行计算的数据;而维大都是文字,时间等类型的数据。图 3-2 星型结构2雪花型的结构雪花型结构是星型结构的一个扩展,有多个表定义一个或多个维度。在雪花结构中,只将主维度表与事实数据表连接,其他纬度表连接到主纬度表。厦门大学软件学院毕业论文- 15 -图 3-3 雪花型结构3星型结构和雪花型的结构的比较在星型结构中
45、,每个维度表都有一个由一些部分组成的主键,该主键连接到事实表中的事实数据表总有多哥部分组成的主键的一个部分。在雪花结构中,一个或多个维度表分解为多个表,每个表都有连接到主维度表而不是事实数据表的相关性维度表。3.5.数据抽取/转换/加载(ETL)过程在数据仓库的构建中,ETL 贯穿于项目始终,它是整个数据仓库的生命线,包括了数据清洗、整合、转换、加载等各个过程。如果说数据仓库是一座大厦,那么 ETL 就是大厦的根基。ETL 抽取整合数据的好坏直接影响到最终的结果展现。所以 ETL 在整个数据仓库项目中起着十分关键的作用,必须摆到十分重要的位置。ETL 是数据抽取(Extract)、转换(Tra
46、nsform)、加载(Load )的简写,它是将OLTP 系统中的数据抽取出来,并将不同数据源的数据进行转换和整合,得出一致性的数据,然后加载到数据仓库中。厦门大学软件学院毕业论文- 16 -图 3-5 ETL 数据转换过程3.5.1.数据抽取数据抽取是将数据从各种原始的业务系统中读取出来,这是所有工作的前提。数据抽取必须既能够充分满足决策支持系统的需求,又要保证不影响业务系统的性能,所以,进行数据抽取时应制定相应的策略,包括抽取方式,抽取时机,抽取周期等内容。图3-6 数 据 抽 取 流 程 图3.5.2.数据转换数据转换是按照预先设计好的规则将抽取得数据进行转换、清洗,以及处理一些冗余、歧
47、义的数据,使本来异构的数据格式能统一起来。1、数据清洗数据清洗的任务是过滤那些不符合要求的数据,将过滤的结果交给业务主管部门,确认是否过滤掉还是由业务单位修正之后再进行抽取。不符合要求的数据主要是有不完整的数据、错误的数据、重复的数据三大类。(1)不完整的数据:这一类数据主要是一些应该有的信息缺失,如供应商的名称、分公司的名称、客户的区域信息缺失、业务系统中主表与明细表不能匹配等。对于这一类数据过滤出来,按缺失的内容分别写入不同 Excel 文件向客户提交,要求在规定的时间内补全。补全后才写入数据仓库。(2)错误的数据:这一类错误产生的原因是业务系统不够健全,在接收输入后没有进行厦门大学软件学
48、院毕业论文- 17 -判断直接写入后台数据库造成的,比如数值数据输成全角数字字符、字符串数据后面有一个回车操作、日期格式不正确、日期越界等。这一类数据也要分类,对于类似于全角字符、数据前后有不可见字符的问题,只能通过写 SQL 语句的方式找出来,然后要求客户在业务系统修正之后抽取。日期格式不正确的或者是日期越界的这一类错误会导致 ETL 运行失败,这一类错误需要去业务系统数据库用 SQL 的方式挑出来,交给业务主管部门要求限期修正,修正之后再抽取。(3)重复的数据:对于这一类数据特别是维表中会出现这种情况将重复数据记录的所有字段导出来,让客户确认并整理。数据清洗是一个反复的过程,不可能在几天内
49、完成,只有不断的发现问题,解决问题。2、数据转换数据转换的任务主要进行不一致的数据转换、数据粒度的转换,以及一些商务规则的计算。(1)不一致数据转换:这个过程是一个整合的过程,将不同业务系统的相同类型的数据统一,比如同一个供应商在结算系统的编码是 XX0001,而在 CRM 中编码是 YY0001,这样在抽取过来之后统一转换成一个编码。(2)数据粒度的转换:业务系统一般存储非常明细的数据,而数据仓库中数据是用来分析的,不需要非常明细的数据。一般情况下,会将业务系统数据按照数据仓库粒度进行聚合。(3)商务规则的计算:不同的企业有不同的业务规则、不同的数据指标,这些指标有的时候不是简单的加加减减就能完成,这个时候需要在 ETL 中将这些数据指标计算好了之后存储在数据仓库中,以供分析使用。3.5.3.数据加载数据加载是将转换完的数据按计划增量或全部的导入到数据仓库中,可以采用数据加载工具,也可以采用 API 编程进行数据加载。数据加载策略包括加载周期和数据追加策略,对于商业数据应用,常采用对 ETL 工具进行功能封装,向上提供监控与调度接口的方式。数据加载周期要综合考虑经营分析需求和系统加载的代价,对不同业务系统的数据采用不同的加载周期,但必须保持同一时间业务数据的完整性和一致性。厦门大学