初识数据仓库(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可以识别这种结构并对其进行优化,所以这个设计结构能产生高效的查询。
看图可知,这种结构是星状结构的一种扩充,只是添加了一下辅助的细节。维度表存储了正规化的数据,这种结构通过减少磁盘读的数量而提高查询性能。维度表分解为与事实表直接关联的主维度表和与主维度表相关联的次维度表。
上面简单的介绍了数据仓库的一些基本常识,对于数据仓库的设计和管理,我认为是实践性很强的工作,不仅需要充足的理论知识,更需要在应用中不断的探索和总结。作为刚刚接触数据仓库的初学者来说,了解了这些,拥有的是更多的学习激情。在这里谈了谈这些,希望高手朋友不要见笑。如果你有更好的理解和体会,希望大家能够一起交流一下。我相信,良好交流是我们成长的“优质钙片“。:)
下一篇:关于数据库连接 >>
相关文章:
- · 利用存储过程
- · PL/SQL单行函数和组函数详解
- · SQL优化
- · 数据库中加条件判断来决定显示的数值
- · 改变表的一列的缺省值
- · sql note
- · 如何实现100%的动态数据管道(三)
- · 如何实现100%的动态数据管道(二)
- · 怎样利用PowerBulider的Datawindow建立中国式的动态报表
- · 存储过程---实践
- · 9大数据仓库特点比较
- · windows server 2003 中 SQL Server 2000 分布式事务 错误解决方法
- · 完成所有这些绑定后仍意犹未尽
- · SQL Server 2005 数据转换服务的常见设计问题
- · 数据文件丢失之后的恢复
- · 利用存储过程得到某一指定的表与其它的表之间的外键关系SQL Server2000
- · 日志问题普及篇
- · 数据库设计方法、规范与技巧
- · MSSQL数据库:存储过程学习
- · Deploy Environment of ExtProc on Serve.
- · SQL Server 7.0 入门(六)---建立存储过程体
- · SQL Server 7.0 入门(八)---存储过程中返回结果
- · T-SQL: 三个通用的与日期相关的,辅助按周(星期日是周的最后一天)汇总的自定义函数
- · 关于用W2K AD SERVER 和SQL2000企业版安装双机
- · 通过 OLE DB 连接 MSSQL Server时出现乱码的解决方法
- · 如何实施Benchmark标准测试(之一)---问题的提出及Tpc-C标准
- · SQL*PLUS 初学
- · out joint query(原创)
- · 两表间拷贝数据
- · 数据库案例分析
- · 使用SQL Server 2000创建临时Job异步执行SQL 脚本
- · 数据库事务
- · 数据库架购
- · 用Sql语句生成Sqlserver数据字典^_^
- · archivelog 下不需要热备也能完全恢复损坏或者被删除的datafile(原创)
- · 如何修改前n条记录
- · SQL函数调用
- · sqlserver中,sql编程的几个小常识(个人整理)
