数据仓库中为什么还要使用关系型数据库?

33 views
Skip to first unread message

张伟平

unread,
Jan 10, 2006, 2:30:17 AM1/10/06
to tt...@googlegroups.com
 
最近有人问我这两个问题:
1、为什么数据仓库项目中要使用星型模型?
 
我简单的理解是:数据仓库中使用星型模型是为了实现纬度结构,支撑olap处理要求。而olap的数据是海量的,一般的关系型数据库是无法处理大量数据分析处理的。
 
这样的话就产生出第二问题:为什么现在大部分数据仓库项目中,还是使用关系型数据库?
 
因为多维数据库没有一个公开的标准的接口,且不支持oltp。而数据仓库的数据来源大部分来源于关系型数据库。
 
以上是我个人的一点简单理解。希望能得到

张伟平
2006-01-10

ZenofBI

unread,
Jan 10, 2006, 4:13:27 PM1/10/06
to ttnn BI 观点(187成员)
数据仓库项目没有一定要使用关系型数据库。只是大部分商务数据储存在关系型数据库。

您英文好吗?可查阅:

http://www.ciobriefings.com/whitepapers/StarSchema.asp

ZenofBI

unread,
Jan 10, 2006, 4:19:24 PM1/10/06
to ttnn BI 观点(187成员)
MS提出的UDM也许回答了您的问题:

The MS UDM’s Single Model

http://www.microsoft.com/technet/prodtechnol/sql/2005/solvngbp.mspx

刘庆

unread,
Jan 11, 2006, 12:55:11 AM1/11/06
to tt...@googlegroups.com
为什么dw使用星型模型,为什么使用关系型数据库?
 
对于第一个问题,我同意伟平的说法。其实就是实现了维度结构,星型模式是一种比3NF更加形式化的模式,其目的正是为了支撑OLAP的要求,是一种支撑分析应用的模式。特别是针对ROLAP,如果不建立星型模式(或者雪花模式),想建立olap元数据是非常困难的,因为某个维度需要跟物理维表关联起来,维中的级别、属性、钻取体系都要与表中字段对应起来。同样,度量也需要和事实表中某个字段对应。在星型模式中,这种对应关系是匹配的,所以很方便地描述它们。然而如果是基于3NF去映射一个维度结构,当然可以,只是需要额外的工作,因为3NF和OLAP模型是不匹配的。
 
可以先将这部分工作分成两部分,一是数据模型,二是OLAP应用。如果数据模型用3NF,那么OLAP建模的事情多放在OLAP服务器中进行。而如果使用星型模式,OLAP建模其实部分工作移到了数据建模这边。
 
这样理解,其实采用星型模式是为了让架构和过程更加规范。当然,代价是数据的冗余。
 
对于第二个问题,为什么使用关系型数据库。如果不采用RDB,还会有哪些选择呢?多维数据库、面向对象数据库、xml数据库?显然,后者都是一些不成熟的技术,不似RDB,其关系理论已经存在三十年矣。
 
多维数据库主要面向分析应用,对于存储海量数据当然有其缺陷。更加不用提没有一个标准的接口。至少微软提出的MDX还并没有形成一种访问标准,而在数据存储理论上,各个厂商有各自的一套。而面向对象数据库,虽然也是也是发展多年,但其主要应用还是偏向于一般系统的设计、开发效率,也不擅长数据存储。虽然有一些规范、理论,但大多还没有形成比较权威的形式化理论,还是处于感性阶段。
 
像sybase的IQ数据库,这玩意儿到底是个什么类型的数据库,我也不是非常确定,但显然他并没有颠覆关系数据,同样有表、字段的概念,只是他颠覆了原来按行存储数据的技术,改用按列存储数据。最后还是同样用SQL来访问数据,所以姑且还是认为他是关系数据库吧。
 
如此,似乎只有选择关系数据库来存放海量数据,当然可以附加地采用多维数据来存放用于分析目的的数据。未来会不会还是如此,说不一定,但至少在三五年内,还不不会有什么新的变化。

 
On 1/10/06, 张伟平 <zhang...@126.com> wrote:
 
最近有人问我这两个问题:
1、为什么数据仓库项目中要使用星型模型?
 
。。。
 
这样的话就产生出第二问题:为什么现在大部分数据仓库项目中,还是使用关系型数据库?
 
Reply all
Reply to author
Forward
0 new messages