BIEE建模参考规范

注:本文基于网上盛传的“BIEE建模黄金法则”,并做了更为细致的讲解,以及修改。

物理层

1、  在可能的情况下,配置你的连接池使用本地驱动来连接物理数据库。例如,使用OCI而不是ODBC来连接Oracle数据库

2、  当数据模型是星型时,为物理表建别名(以Dim_,Fact_作为前缀),并根据需要添加描述性后缀。

例如:在数据仓库中,我们有一张W_STATUS_D字典表用于存储各种事务状态(活动状态、合同状态、客户状态),那我们应该为不同的状态类别创建相应的别名表,如:

Dim_W_STATUS_D_Activity_Status

Dim_W_STATUS_D_Contact_Status

Dim_W_STATUS_D_Customer_Status

 

描述名称部分应该按每个单词首字母大写的方式(如果是英文名称)

Tips:为什么要这样做?这样看起来更为复杂,但是实际上会使逻辑更为清晰,通过在逻辑层对不同的表添加不同的过滤条件,使得最终每张逻辑表只包含所对应的状态值,那我们在Answer中使用的时候就不必进行过滤了。

另外,通过建立别名,我们可以避免在物理层出现环状连接关系;更为重要的是,我们可以通过建立别名来实现角色扮演维!

3、  尽量避免视图的使用,视图有可能会带来性能问题。(除非你非常熟悉视图合并的原理)

4、  为初始化块建立单独的连接池,而不要使用第一个连接池(从上到下)。因为查询使用的是第一个连接池,当已有查询用尽了连接池的所有连接时,如果此时新用户登录需要初始化会话变量,就会因为没有可用的连接而等待,进而造成用户登录缓慢。(这也是为什么BIEE 11g默认情况下不能将第一个连接池用于初始化块的原因,这不是最佳实践!)

 

逻辑层

1、命名规范

方案一:所有的逻辑表都应该以Dim -,Fact –开头,中间跟业务主题或者模块名(可选),最后是表名,例如:

Fact - CRM – Revenue

Fact - HR – Payroll

Dim – Agreement

方案二:所有的逻辑表以F+编号,D+编号为前缀,然后空一格跟表描述;另外维度以H+编号为前缀,然后空一格跟维度描述;例如:

F0 Sales Base Measures

D0 Time

H1 Products

此种方案主要是为了控制表的排列顺序

另外,所有的描述名称部分应该按每个单词首字母大写加空格分隔的方式(如果是英文名称)

2、所有的物理层的列名称都不应该出现在逻辑层。逻辑的命名必须是“面向业务”的。例如使用Revenue而不是DOLLARS,同样应该遵循每个单词首字母大写加空格分隔的方式

下面给出一些常见的命名方式:

关于数量的: # of Assets (一般其聚合规则为count或者 count distinct的)

百分比的: % Contacted

时间序列的:Quarter Ago Average Order Size

另外,同一张事实表中的指标应该按类别进行排列,并添加分隔符(添加逻辑字段,修改其名称),如下图所示:

还可以通过设置不同的图标来标识不同类别指标,如下图所示:

计算器图标的是派生指标、其它的是普通指标。

3、物理主键和代理键不应该出现在业务模型层。

4、维度逻辑表必须要指定逻辑键。这个逻辑健应该是面向业务的,比如应该是“Employee Login”而不是“EMPLOYEE_PK”。

5、维度逻辑表必须仅仅包含维度属性,他们永远不应该包含任何度量列(有聚合规则)

Tips:如果需要在维度上做计算,如“天数”,则应将该维表为LTS建立事实表,比较常见的就是“时间事实表”

5、  事实逻辑表不应该指定逻辑键。

6、  在事实逻辑表中,每一列都是度量列,同时要指定聚合规则。

Tips:对应事实表上的属性字段,比如退化维,则应该以该事实表为LTS建立相应的逻辑维表

7、业务模型应该仅包含逻辑星型,不应该是雪花型。

注意:这里说的是逻辑星型,物理上有可能是雪花型。通过设置多LTS我们总能把雪花转换为逻辑星型

7、  每一个维度逻辑表都应该有对应的维度层次。

8、  每一个维度层级都设置适当的元素个数。一般要指定子层级的要比父层级的元素个数多。

注意:元素个数不需要精确,只要比例合适即可。另外可以使用“估计级别”功能自动来填写该值。

9、不要将所有度量合并到单独的一个事实逻辑表。例如,你应该将“Forecast Sales”和“Actual Sales”度量放到两个逻辑表中---“Fact_Sales”和“Fact_Forecast”

 

 

展现层

1、  主题应该按照业务进行划分,比如销售、采购、库存

2、  当你有多个主题区域时,在每个主题区域以相同的顺序列出这些公用的维度

3、  展示层的表的名字不要以Dim或Fact开头了。如果主题区域中的表是直接从逻辑层拖过来的话,要移除该前缀。

4、  时间维度表列在每一个主题区域的第一个位置。包含事实的展现层表应该列在底部,同时展现表应该被称作Facts,并可以根据需要划分成不同类别的事实,如Base Facts、Calculated Facts,然后做成层结构。如下图所示:

4、绝不应该出现用户从主题区域中选取的对象没有逻辑关联。如果有任何从同一主题区域中选择的对象无法共存,那么一定是你的主题区域设计不正确。

转载于:https://www.cnblogs.com/tdskee/p/6093354.html

BIEE建模参考规范相关推荐

  1. 工作流(workflow)参考规范概述

    [摘  要]工作流管理系统被称为下一代的企业业务操作系统.人们在普遍重视工作流应用的需求满足度和柔性驱动能力的同时,却很少关注工作流应用的规范及应用过程的本质.本文结合WfMC的规范对工作流参考模型作 ...

  2. AutoCAD Civil 3d道路建模路线-规范编辑器及超高

    Civil 3d道路建模路线-规范编辑器及超高.在路线已设计好的情况下,Civil 3d的规范编辑器主要用于生成超高数据,以构建更精细模型和横断面出图.若模型无需超高数据,则可忽略规范编辑器. 市政道 ...

  3. AGV资料学习参考 AGV调度系统地图建模参考文件 AGV调度系统源码(OpenTCS) AGV调度系统地 多AGV调度系统实现图建模参考文件c++

    (多)AGV调度系统/两阶段算法模拟源代码地图建模c++/openTCS 1.AGV调度系统源码(OpenTCS)(OpenTCS是一个开源的AGV调度系统程序,能给初入AGV 行业的人士一些帮助,该 ...

  4. 验房师丨一个标准的验房师具备哪些条件,验房项目问题参考规范

    新房验收需要注意事项以及问题,有哪些参考规范, 随着国家对商品房采取的调控措施,开发商出售的房屋都是经过精装修才出售的,目前一.二线城市出售的商品房都是精装修的,那么精装房如何验收成为众多房主关注的焦 ...

  5. PowerDesigner进行数据库物理建模基本规范

    背景说明 利用PowerDesigner(下文简称PD)进行数据库设计时,其实没有什么固定的规范.但是数据库设计的目的,是为了在团队中沉淀和共享信息,所以设计文档的可读性非常重要.团队使用统一的标准规 ...

  6. 判刑形状模型_离散形状建模示规范表面模型.doc

    离散形状建模表示模型 如今,产品几何变在整个产品开发过程是企业竞争力的一个重要问题.在设计阶段,几何功能要求和公差都源自于设计意图.此外,制造和测试阶段是根据.GeoSpelling作为产品几何技术规 ...

  7. BIEE建模 之 Administration 导入元数据时无法显示表

    2019独角兽企业重金招聘Python工程师标准>>> 1.先安装Oracle客户端,再安装biee 客户端 Oracle客户端和数据库版本要一致,比如biee是64位,oracle ...

  8. 【渝粤教育】国家开放大学2018年春季 7404-21T数学建模 参考试题

    科目编号:7404 座位号 2017-2018学年度第二学期期末考试 数学建模 试题 2018年 7月 填空题(本大题共5小题,每小题5分,共计25分) 1.单种群生物资源的开发问题中,若环境最大容纳 ...

  9. 【渝粤教育】国家开放大学2018年春季 7404-22T数学建模 参考试题

    科目编号:7404 座位号 2017-2018学年度第二学期期末考试 数学建模 试题 2018年 7 月 填空题(本大题共5小题,每小题5分,共计25分) 1.一个学生的学习成绩与其知识基础雄厚度.周 ...

最新文章

  1. 一文详解OpenCV中的CUDA模块
  2. JavaScript中instanceof运算符的用法以及和typeof的区别
  3. bzoj3140: [Hnoi2013]消毒(二分图)
  4. c语言程序 用追赶法求解方程组,编写用追赶法解三对角线性方程组的程序,并解下列方程组(3页)-原创力文档...
  5. python-mysql 基础知识记录
  6. js如何上传大文件到服务器,js将文件上传到远程服务器
  7. QT出现 Cannot create children for a parent that is in a different thread 的解决方法:
  8. Trapcode Particular 5 - Particle
  9. Java字符串排序(根据字节及字符长度进行排序)
  10. matlab怎么使用 spm_vol,SPM12批量处理预处理数据
  11. 解决win10每次重启后桌面图标排列混乱的问题。
  12. 正则匹配 正则表达式在线工具
  13. SF21 | 利用PSY指标,我们来开发一个短线模型?
  14. 加密算法之MD5与SAH-1
  15. 计算机二级成绩为什么验证码错误,计算机二级考试成绩查询的验证码为什么总是错误...
  16. DMIScope 1.00.005 注册版
  17. 2020莱斯大学计算机全球排名,2020年莱斯大学QS世界排名
  18. java打地鼠_Java 实现打地鼠游戏
  19. 机器人改变生活利弊英语作文_机器人对生活的初中影响英语作文
  20. Hadoop获取namenode的命令

热门文章

  1. php unlike,PHP结合jQuery实现的评论顶、踩功能
  2. 剑指Offer #02 替换空格(字符串处理)
  3. linux0775权限,Linux权限管理
  4. 网工面对HR应该提前做好哪些准备?
  5. 演进实录|不同阶段的企业如何搭建监控体系?
  6. 通过 IDE/Maven 部署 Serverless 应用实践
  7. 开发函数计算的正确姿势——OCR 服务
  8. 服务器弱口令修改,Tomcat服务器弱口令漏洞攻击实验
  9. kinana 清空索引数据_(Elasticsearch)实战Elasticseartch、Logstash、Kibana
  10. element显示true或者false_vue+element-ui实现行数可控的表格输入