初识数据仓库(Data Warehousing)-“掀起你的盖头来”我在这里就说说我初学的一些认识和看法,希望这些能够作为一些简单的介绍给那些初学的朋友们,更希望起到抛砖引玉的效果。
说到数据仓库,我们了解一下他产生的背景。自从DBASEⅢ(dBase是dos年代发展过来得数据库管理程序,先归属于Borland旗下)的兴起,数据库的应用进入了个人计算机,使得中小企业也纷纷进入商业性的数据库应用阶段。这时的数据库应用主要是进行数据的记录,我们称这类为OLTP(线上事务处理)数据库系统。他主要是针对事务处理而设计的,所以可以方便的进行相应的事务处理,例如:支持大量用户进行新建或者修改数据的操作。
但当前由于数据处理的多样化要求越来越明显,管理人员需要对数据进行决策性的分析,需要经常访问大量的历史数据,虽然在传统的数据库结构下有经验且熟练掌握查询语法的管理员可以通过复杂的语句得以实现,但是就其性能和安全来说,就显得不太实际了。并且,现实情况中,企业内的数据信息大多分布于各个不同的系统之中,所以如果进行综合性的分析处理,就可能需要从不同类型的数据源获得信息,这就给实际应用带来了困难。
为了解决如上的问题,“数据仓库”应运而生。根据数据仓库之父BILL INMON的话就是:数据仓库是将企业的事物性数据经过提炼、加工和集成为对企业有用的信息,是面向主题的、稳定的、随时间变化的,主要用于决策支持的数据库系统。
简单的讲就是:数据仓库的数据是只读的,按照给定间隔时间取自事务处理系统,并依据分析查询的需要进行重新的构造。
我们就数据的角度来看,他具有如下特点:
1.将分散的异质性数据整合到单一的数据源中。
2.使用适合分析查询的结构来存放数据。
3.内含数据是经过事务性转换后的新数据,方便决策人员进行分析。
4.数据具有稳定性。通常是每隔一段时间输入较新的数据,不像常规的作业操作那么时常改动。
5.过滤出与分析相关的数据进行保存。
6.数据仓库内的数据具有历史性,往往是多年来得数据记录。
7.其中的数据都是过去的历史性记录,所以一旦录入就不需要更改,只需定期录入新的数据即可。
数据仓库从名字上讲就是一个数据大量集合的“仓库”,由于各个应用部门的规模和实际需要不同,数据仓库可以分为:Δ数据仓库(数据仓库应用的标准型,是以整个企业来构架的)
Δ数据超市(规模相对于上面的较小,适合于企业中的部门,设计时应从数据仓库的组建的角度来考虑)
Δ多层次数据仓库(是数据仓库和数据超市的综合,下层的数据超市由上层的数据仓库来获得信息。这样保持了数据的一致性,并减小了数据仓库的负担)
Δ联合式数据仓库(适用于有意日后把数据超市整合为数据仓库的方案)
关于结构,我们大家都知道关系数据库的模型是”E-R Modal”,而数据仓库则使用的是“维度模型”(Dimensions Model),而在这种维度模型中,数据仓库结构最常用的则是“星状”结构及其所扩展的“雪花型“结构。
(维度是组织数据仓库数据的分类信息,例如时间、地址、负责人等。)
结构图样分别如下:
星状结构是一种关系型数据库结构,在该模式的中间是事实表,周围是维度表,数据在事实表中维护,维度数据在维度表中维护。每一个维度表通过一个关键字直接与事实表关联。
这种星型的结构是十分适合数据仓库数据库的设计的。原因如下:
1.这个设计在数据仓库增长或应用改变时,便于快速修改和添加,因而具有足够的灵活性。
2.对于开发者和最终用户来说都易于理解。
3.模仿了最终用户考虑和使用他们的业务数据的典型方法。
4.容易实现为物理数据库,且很多DBMS可以识别这种结构并对其进行优化,所以这个设计结构能产生高效的查询。
看图可知,这种结构是星状结构的一种扩充,只是添加了一下辅助的细节。维度表存储了正规化的数据,这种结构通过减少磁盘读的数量而提高查询性能。维度表分解为与事实表直接关联的主维度表和与主维度表相关联的次维度表。
上面简单的介绍了数据仓库的一些基本常识,对于数据仓库的设计和管理,我认为是实践性很强的工作,不仅需要充足的理论知识,更需要在应用中不断的探索和总结。作为刚刚接触数据仓库的初学者来说,了解了这些,拥有的是更多的学习激情。在这里谈了谈这些,希望高手朋友不要见笑。如果你有更好的理解和体会,希望大家能够一起交流一下。我相信,良好交流是我们成长的“优质钙片“。:)