BIEE入门(三)业务模型层
正如它的名字所示(Business Model and Mapping Layer),业务逻辑层需要把物理层的数据源以一种业务用户的视角来重新组织物理层的各个数据源(所谓的Mapping),同时在业务逻辑层里,我们将 需要真正构建数据仓库里的星型模型,包括:
· 事实表
· 维表
· 维表的层次结构(hierarchy)
· 事实表度量(measure)来提供一个模型供展现层使用,所以在业务逻辑层,用户需要同时具有技术的知识(数据仓库星型模型),又需要有业务的视角(构 建一个对于业务而言有意义的星型模型)。我们先来看看业务模型层和它所对应的物理层的一个比较: 窗体顶端 窗体底端 窗体顶端 窗体底端 窗体顶端 窗体底端
窗体顶端 窗体底端 业务逻辑层的一个关键的定义是: Captures how users think about their business using their own vocabulary 需要注意的是,虽然业务模型层同样都是来源于物理层的表和列,但是业务模型层更加强调以业务的观点来看所有的数据。其中Mapping一词意味著用户需要 匹配业务模型层的数据和物理层的数据,一个从业务逻辑层看起来的一个逻辑表,其数据来源可以是由物理层的多个数据源组成;而同样的,一个业务模型层的一列 数据,也可以被匹配成物理层不同数据源的多列数据组合而成:比如假设我们在物理层有三个不同的子系统分别对应不同的地区(华北,华南,华东),则如果我们 在业务模型层要定义全国的一个销售额总和的时候,应该就需要把三个子系统的销售额的列在业务模型层相加,才能够形成一个针对全国的分析模型。这个正是 BIEE架构设计里一个非常灵活的地方。当然,如果我们已经在物理层组织好了一个简单的星型模型数据(使用物理层建模),其实我们可以简单地把它从物理层 拖动到业务逻辑层就可以形成一个可用的业务逻辑层的星型模型原型(业务模型层的星型模型会自动延用物理层的建模),然后只需要把这个业务模型拖入到展现层 里,我们就能够做出一个最简单的可供查询的数据模型:是的,在最简单的模型下一切都很简单,我们甚至可以不去建立维表的层次关系,就可以形成一个马上可以 投入使用的模型,只是在没有建立维表的层次关系的时候,我们只能做一些一般性的报表,但是报表出来的结果没有办法下转(商业智能报表的一种典型操作)!业 务模型层的一个最常用的词是logical,如果说我们在物理层都是使用表,表的主键外键,表的列的概念的话,那么我们在业务模型层都要在物理层的名词前 加上logical一词,如:
· Logical Table
· Logical Column
· Logical Primary Key
· Logical Join ·
。。。等等!这些词表明的真正含义是指业务模型层,我们的所谓的表,列等概念都是可以定义出来的(可以和物理层的概念并非是一对一的关系),比如业务模型 层的一个表由多个物理层的表组成等等,对于业务模型层的这种定义和修改不会影响物理层的各种定义所以我们甚至可以在现有的一些业务系统里拿出不同的数据, 在物理层或者业务模型层定义出所需要的分析模型,但是同时这种定义根本不会影响到源系统的任何数据。
BIEE入门(三)业务模型层的更多相关文章
- 三 Django模型层之Meta
模型的Meta选项 本文阐述所有可用的元数据选项,你可以在模型的Meta类中设置他们 Meta选项 abstract 如果为True,就表示抽象基类 app_label 如果模型在INSTALLED_ ...
- BIEE入门(四)展现层
BIEE里最终面向最终用户(业务界面使用者的)叫做BIEE的Presentation Layer也即展现层,展现层的定义将是最终用户Web报表开发界面里能够看见的完全一样的样子,所以展现层一般将是以最 ...
- thinkphp模型层Model、Logic、Service讲解
thinkphp模型层Model.Logic.Service讲解 时间:2014-08-24 15:54:56 编辑:一切随缘 文章来源:php教程网 已阅读:771 次 js特效 ...
- 第一章:模型层model layer -- Django从入门到精通系列教程
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. 题外话: Django的教程写到这里,就进入 ...
- mvc_第一遍_业务逻辑层和模型
常用的动态网页对象: 之前我们提到了,使用request对象可以获得和用户请求相关的一系列信息.这一节,我们来看看另外两个常用对象的常规用途. response对象:用于向客户回应.最常用的用法类似于 ...
- {django模型层(二)多表操作}一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询、分组查询、F查询和Q查询
Django基础五之django模型层(二)多表操作 本节目录 一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询.分组查询.F查询和Q查询 六 xxx 七 ...
- odoo12从零开始:三、2)odoo模型层
前言 上一篇文章(创建你的第一个应用模块(module))已经大致描述了odoo的模型层(model)和视图层(view),这一篇文章,我们将系统地介绍有关于model的知识,其中包括: 1.模型的类 ...
- [Prodinner项目]学习分享_第三部分_Service层(业务逻辑层)
前两节讲到怎样生成一个Model和怎样将Model映射到数据库,这一节将讲到业务逻辑层,也就是Service层. 1.Prodinner架构已经构建好的,基本的增删改查. 假设,我现在想操作第二节中讲 ...
- 模型层model layer
题外话: Django的教程写到这里,就进入了整体的第二部分,也是最关键的部分.此时有一个问题必须想清楚,那就是,以项目带动内容还是以参考书目的方式展开?为此,我考虑了很久. 我在开始学习Django ...
随机推荐
- nginx(一)- 初识
前言 这里呢,开始我的nginx学习记录.关于nginx是什么?为什么?有什么好处?我就不说了,说的肯定没有网上其他人说的那么细.我在这里就记录我自己学习nginx的过程.只说怎么做,让我们快速用起来 ...
- [转] JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
[From] http://www.jb51.net/article/76695.htm HTML 5中的full screen,目前可以在除IE和opera外的浏览器中使用 ,有的时候用来做全屏AP ...
- Python+Selenium定位元素的方法
Python+Selenium有以下八种定位元素的方法: 1. find_element_by_id() eg: find_element_by_id("kw") 2. find_ ...
- mysql 学习之 DDl语句
mysql 1,登入mysq1: mysql -uroot -p ---->密码隐藏登入好点 2,mysql操作: 创建数据库:create databases test1; 查看数据库:sh ...
- zabbix web url监控
一, web监控 这个监控为通过cookie的值来监控网站是否能正常使用 这里测试环境为bbs网站 二, 配置web监控 01, 创建web监控项 02,配置步骤1 查看数据是否成功 第一查看首页时候 ...
- 发送请求时params和data的区别
在使用axios时,注意到配置选项中包含params和data两者,以为他们是相同的,实则不然. 因为params是添加到url的请求字符串中的,用于get请求. 而data是添加到请求体(body) ...
- Oracle命令整理
1 常用命令 常用命令 1 sqlplus scott/tiger@192.168.47.10:1521/orcl 后面不要加: sqlplus sys/oracle as sysdb ...
- jdk7.NIO.2学习笔记之目录文件及权限
package com.zl.jdk7; import java.io.File; import java.io.IOException; import java.nio.file.Path; imp ...
- TOJ 1721 Partial Sums
Description Given a series of n numbers a1, a2, ..., an, the partial sum of the numbers is defined a ...
- Python编码规范杂记(很乱:))
Python编码规范 导入模块 每一个(第三方)模块的导入都需要两个import语句, 如下 使用import some的方式导入模块, 如果有还有子模块的话, 则from father.son im ...