在商业智能中,将业务关系型数据库转化成一个星型的数据库结构的时候,常常会遭遇到递归关系即父子上下级的关系的困扰,SQLServer里面是支持父子维度的,它的引擎可以自动识别。但IBM Cognos则无法识别,在将父子维度引入模型的过程中,只会把其当作一个数据类型,因此解决父子维度问题是一个比较重要的问题,因为关系型数据库中充斥了大量这样的关系。

举例说明:

以下是关系型数据库的表:

Product 表

-----------------------

ID

ProductName

Parent

-----------------------

其中里面存在父子关系  ID 和 Parent

在建立维度的时候如何处理这样的关系呢?

注:假设该表只有3层上下级关系,即OnProducteID    - >  TwoProductID   - > ThreeProductID

事实表和维度表之间需要主外键进行关联,那么事实表关联哪一个字段呢? 所以这里需要为Product维表建立一个新的主键

DimProduct 维表结构

---------------------------------

GID

OneProductID

TwoProductID

ThreeProductID

---------------------------------

事实表 Fact 与DimProduct 的主外键关联是  GID - GID

这样就解决了结构关系,下面是在Cognos8的Transformer中引入这两个表的时候,需要注意不要引入GID

对于父子维度的处理可以按照以上的方式进行,当然在SQLServer的商业智能软件中就不存在这样的问题,因为其支持这样的关系。

转载于:https://www.cnblogs.com/AflutterFeather/archive/2009/01/03/1367515.html

IBM Cognos8 处理父子维度浅析相关推荐

  1. 《分析服务从入门到精通读书笔记》第四章、创建父子维度(7)

    目的 父子维度的不同之处在于处于其包含了一个基于递归关系(Recursive relationship)的层次关系,比如,上级和下级雇员的层次结构关系是典型的递归关系.在一线工作的雇员会有一个主管,而 ...

  2. 从7个维度浅析虚拟现实Alpha年

    摘要:经过Oculus对市场的一番教育后,虚拟现实迎来了Alpha年.大家此前多是关注硬件,现在慢慢开始思考平台.内容与系统支持等问题.作者王元是在美国从事软件开发的工程师,他从7个维度浅析了他眼中虚 ...

  3. 8 关于数据仓库维度数据处理的方法探究系列——父子维

    父子维度通俗的话来讲,这个表是自反的,即外键本身就是引用的主键:类似这样的关系,如公司组织结构,分公司是总公司的一部分,部门是分公司的一部分,当然如果定义得好的话员工是部门的一部分:通常公司的组织架构 ...

  4. COGNOS8培训之四(疑点解析)

    课件提纲目录 1)商业智能BI简介 2)IBM Cognos8 介绍 3)如何使用IBM Cognos8 进行工作 4)一个简单的基于Cognos8的例子 5)疑点解析(讲解中) 6)IBM Cogn ...

  5. C++ exit 与 return 浅析

    [摘要] 本文从代码形式.经常使用方式,相关概念,调用关系和比較分析,这5个维度浅析 exit 与 return 在C++的同样点与差别. [常见形式] exit(0):   正常执行程序并退出程序. ...

  6. 谈笑间学会数仓—维度表概念及设计案例

    维度表 维度定义 从某个角度观察事实数据的窗口,存储的数据用来从某个角度描述事实.维度表可以看成是用户用来分析一个事实的窗口,它里面的数据应该是对事实的各个方面描述,比如时间维度表,它里面的数据就是一 ...

  7. 微软BI 之SSAS 系列 - 在SQL Server 2012 中开发 Analysis Services Multidimensional Project

    SQL Server 2012 中提供了开发 SSAS 项目的两种模型,一种是新增加的 Tabular Model 表格模型,另一种就是原始的 Multidimensional Model 多维模型. ...

  8. 【备忘】Oracle商业智能BI产品OBIEE11G深入浅出全套视频教程

    001.BIEE课程介绍.wmv 002.BI基础理论介绍.wmv 003.BIEE 11G安装教程.wmv 004.BIEE 11G系统管理.wmv 005.BIEE 11G Oracle数据源连接 ...

  9. 数据仓库工程师面试题目(不定期更新)

    1 缓慢变化维的设计?(真心常问,标准答案必备) 三种:直接覆盖,增加新行,增加心属性列 Type 1:覆盖:直接用新值代替旧值. Type 2:增加新行.将当前行的状态设置为off,并设置一个end ...

最新文章

  1. stringbuilder 拼接语句缺失右括号_Leetcode No.22 括号生成
  2. PHP 使用POST 获取不到部分数据问题
  3. SpringBoot之Servlet、Filter、Listener配置
  4. VTK:图像投射用法实战
  5. 如何恢复ORACLE数据(冷备份)
  6. Oracle入门(十四.16)之捕获用户定义的异常
  7. Spring RESTful错误处理
  8. 泰坦尼克数据集预测分析_探索性数据分析-泰坦尼克号数据集案例研究(第二部分)
  9. JEECG 缓存用法
  10. mybatis 多线程_2019BATJ面试题汇总详解:MyBatis+MySQL+Spring+Redis+多线程
  11. 招人啦!安卓/Java/数据库/测试等一大波岗位袭来
  12. 左程云算法体系班笔记
  13. 亲爱的我把孩子放大了文案解说
  14. 找不到项目 该项不在计算机中,Win7删除文件夹找不到该项目怎么删除?“找不到该项目”强删方法...
  15. 中国医学影像工作站市场趋势报告、技术动态创新及市场预测
  16. 案例研究 | 瓜子二手车战略升级三部曲
  17. C/C++:实现精灵游戏
  18. 【许晓笛】EOS 智能合约案例解析(2)
  19. svn使用问题:SVNlicense到期问题设置SVN提交代码时必须填写日志
  20. TensorFlow DLL文件缺失的解决方案:cudnn64_8.dll not foundcusolver64_10.dll not found

热门文章

  1. C++_数据类型_算术运算符_取模运算_递增递减运算_赋值运算符_比较运算符---C++语言工作笔记014
  2. 微服务升级_SpringCloud Alibaba工作笔记0027---Nacos集群配置上
  3. Git工作笔记003---Git常用命令总结
  4. JAVA面试要点002_Git中fetch和pull的区别
  5. IOS学习笔记02---语言发展概述,计算机语言简介.
  6. C++中读取文件乱码问题
  7. C语言 输入的注意事项 EOF的应用
  8. 杭电2078复习时间
  9. mui ajax传参示例
  10. 机器学习与计算机视觉(sklearn快速上手)