数据仓库的概念
数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。
1.面向主题:不同于操作型数据库,主题是个抽象概念,是指用户使用数据仓库进行决策时所关心的重点方面。涉及业务流程的方方面面,而不像操作型数据库一样相互隔离。
2.集成的:操作型数据库通常与某些特定的应用相关,而数据库往往相互独立,他们是异构的。数据仓库是对原有的分散数据进行了整合,进行了数据类型转化,消除了数据中的不一致性。
3.相对稳定:数据仓库是稳定的,由于要做企业分析决策之用,一般情况下将被长期保留,以备日后参考查询。而说他是相对稳定的是因为,数据仓库要保存历史信息,以便反映某一事物的变化情况,作为分析决策的原始资料,所以数据仓库必须维护历史信息,所以他是相对稳定的。Write once, read many times.
4.反映历史变化:以支持分析决策,由过去的发展历程总结出规律,从而对未来作出合理的预测。
数据仓库环境
1.ETL:数据抽取、转化和载入
2.OLAP:OnLine Analytical Processing Engine
3.DSS:决策支持系统
4.客户分析与报表工具
5.其他数据收集和数据输出工具
数据仓库的构架
数据仓库大体可以分为四个层次:
数据源、数据管理与存储层、OLAP服务器和前端工具。
1.数据源:他是数据仓库的基础,位于数据仓库构架的最底层,是数据仓库的数据源泉。包括各个业务处理子系统的信息。
2.数据管理与存储层:是数据仓库的核心。数据仓库如何高效管理数据是区别与面向操作数据库的主要标准。完成按照主题管理数据,聚合数据存放于多维数据库中。
3.OLAP服务器:对数据进行有效集成,按多维模型予以组织。
4.前端工具:主要包括各种报表工具、查询工具、数据挖掘工具等。
有关ETL
数据进入数据仓库的过程一般都要经过抽取(extracted)、转化(transformed)和载入(loaded)三个过程,这个过程被简称为ETL。一般使用现有工具来实现ETL的过程。
1.E:数据抽取。在数据抽取的同时,数据不能被修改。可以抽取的文件格式为:数据库对象,比如表可以整个地从源系统中导出。比如,MS SQL Server 2000的bcp "select * from Northwind..customers" queryout "D:temp.txt"? -c -p -U"sa" -P"sa"。抽取过程为动态抽取,即目标有变化才抽取,不做无谓的工作而影响效率。一种实现的办法就是加时间戳;另一种方法就是分别在不同的表中进行描述。
2.T:数据转化。即将数据从一个系统转移到另外一个系统中。顺序为:源系统 -> staging database -> 数据仓库 -> data mart。有三种方式:a.flat files(无范式) b.区分操作 c.使用交换分区。
3.L:数据输入
其他
数据仓库不一定要用数据库来实现
数据仓库不满足第三范式,并且不满足范式,他只含有“键(key)”。(第一范式:有主键,主观上形象的看,是符合常理的分类或组织;第二范式:满足第一范式,并且所有除主键之外的列都与所有的主键有关系;第三范式:满足第二范式,并且所有除主键之外的列相互之间没有关系)