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、命名规范