论坛首页 Java企业应用论坛

星型数据库(STAR Schema)

浏览 6120 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-06-13   最后修改:2013-06-19

数据仓库的建立是为了某群体提供决策服务的,属于决策支持系统(Decision Support System)。

数据仓库必须满足: 1.只读的(Read Only); 2.历史的(Historical); 3. 聚合的(Aggregated);

实际中数据流动: 数据经由分段数据库到逻辑数据库最后才到数据库仓库。

Staging Layer -> Enterprise Layer -> Presentation Layer

对于需要高响应应付从不同地方,不同系统,不同要求的数据,一般情况下会立即存储在分段数据库(Staging Layer),之后在做处理,这里起到一个临时表的作用。

经过系统的处理(process),数据会存储于对应的逻辑数据库中。例如每一个时间段的银行的交易量都是非常大的,数据会先存在Staging,然后经过处理后存储进关系型数据库Enterprise,一般Enterprise数据库都符合第三范式。

数据仓库绝大部分都是归档数据(Archive Data),很多业务流程往往不是第一时间进入数据库仓库,从而在到达数据仓库前会有一层业务数据库Enterprise Layer,所以Presentation与Enterprise是由代替键(Surrogate Key)与业务逻辑键(Natural Key)建立起联系,并且关系储存于Dimension。

星型数据库的组成: 1.事实(Fact table); 2.维(Dimension table); 一套星型数据结构,应该只有一个Fact,和多个Dimension,而每个dimension之间是没有任何联系的。

Fact的粒度应该是达到度量的最低层,例如每个货物的单价。而维度则是为划分的界限,例如想看到货物在某个时间段的价格,那么时间段就是一个维度。

因为有关系型数据库转换为星型数据库,所以某些表必然会存在冗余数据,而这正是建立的Fact与Dimension的要素。

关系图

原创文章若有转载,务请注明出处:http://www.sightcorner.com/technique/2013_06_10

   发表时间:2013-06-13  
数据仓库,做一个ETL的提取就做datawarehouse了。
0 请登录后投票
   发表时间:2013-06-18  
图片链接都是localhost的...?
0 请登录后投票
   发表时间:2013-06-19  
依恋旋律 写道
数据仓库,做一个ETL的提取就做datawarehouse了。


是的,但是在真正应用中,往往在做ETL的前面可能会对数据的performance有所要求,所以才会出现不同的层来处理。
0 请登录后投票
   发表时间:2013-06-19  
abukaka 写道
图片链接都是localhost的...?

你眼真利。。。请再刷新多次。。哈。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics