数据仓库概念建模

1. 图论

有向无环弱连接图


2. 维度事实模型图例




3. 维度事实模型

3.1 事实表 Schemes
      --Fact
      --Measures
      --Dimensions
      --Hierarchies
           Dimension attributes
           Non-dimension attributes

将其定义为

   -- M 度量集合

   -- A  维度属性集合

   -- N 非维度属性集合

   -- R 有序元祖集合(ai,aj),表示Schema图中的边

           

     -- O 可选关系集合 

     -- S 聚合表达式集合 

              

       -- Dim(f)是维度模式,Dim(f)中的任一元素都是一个维度

                 

为什么要格式化?

               给定模型的意义

               工具支持

                    -- 转换算法

                    -- CASE工具

3.2 算法

把ER图转换成概念设计

 1)定义事实
 2)针对每一事实
       a) 构建属性树
       b) 剪枝和移植
       c) 定义维度
       d) 定义度量
       e) 定义层次结构

3.3 算法实例


3.3.1 定义事实

实体E1,...,En之间的关系R 转换为一个实体F

不断进行规约是定义事实的一个候选,比如Sale,而不是Store,City

每一个事实成为事实模型的root.

 转换关系如下:



3.3.2 针对每一个事实

1)构建属性树

每一个顶点代表Schema的一个属性,Root代表F的标识

root=newVertex(identifier(F));

translate(F,root)

translate(E,v) {

     for each attribute a E | a identifier(E)

           addChild(v, newVertex({a}));

      for each entity G connected to E by a

             relationship R | max(E,R)=1 {

                    for each attribute b R

                          addChild(v, newVertex({b}));                

                           next=newVertex(identifier(G));

                           addChild(v,next);

                           translate(G, next);

                   }

 }

例如:

translate(E=SALE, v=sale)
  addChild(v, qty);
  addChild(v, unitPrice);
  for G=PURCHASE TICKET
    addChild(v, ticketNumber);
    translate(PURCHASE TICKET, ticketNumber)
  for G=PRODUCT
    addChild(v, product);
    translate(PRODUCT, product);



====》属性树



2)剪枝和移植

去除不必要的细节数据粒度。

剪枝:Drop掉子树

移植:包含不重要信息的顶点但依旧是要保留的。

graft(v) {
  for each v’ | v’ is father of v
    for each v’’ | v’’ is child of v
      addChild(v’, v’’);
  drop(v);
}

一对一是一个好的候选,如果一个可选顶点要移植,则所有孩子节点均要依次移植。


例如:


=====》



3)维度

决定事实instance的粒度

4)度量

属性树中的数值型属性,这些度量如何从原 Schema中计算出来

5)层次结构

属性树已有一定的层次结构,需要做的是剪枝和移植,并增加新的聚合层次。

确定非维度属性。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值