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 ·

。。。等等!这些词表明的真正含义是指业务模型层,我们的所谓的表,列等概念都是可以定义出来的(可以和物理层的概念并非是一对一的关系),比如业务模型 层的一个表由多个物理层的表组成等等,对于业务模型层的这种定义和修改不会影响物理层的各种定义所以我们甚至可以在现有的一些业务系统里拿出不同的数据, 在物理层或者业务模型层定义出所需要的分析模型,但是同时这种定义根本不会影响到源系统的任何数据。

时间: 2024-08-12 17:41:34

BIEE入门(三)业务模型层的相关文章

三、模型层(二)

一.模型层创建数据库常见字段 #### 常用字段类型 * django所有的数据模型都继承自models.Model* CharField  max_length   (输入框)* TextField 没有长度限制的字符串  (文本域)* DateField 日期* DateTimeField 日期+时间* BooleanField 真假* NullBooleanField Null,真假,* Integer 整数* PositiveIntegerField 正整数* DecimalField 

第一章:模型层model layer -- Django从入门到精通系列教程

该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453131687 题外话: Django的教程写到这里,就进入了整体的第二部分,也是最关键的部分.此时有一个问题必须想清楚,那就是,以项目带动内容还是以参考书目的方式展开?为此,我考虑了很久. 我在开始学习Django的时候,也看过许多教程和博客,有的专述某个细节,虽然比较深入,但不够全面:有的比较泛泛

mvc_第一遍_业务逻辑层和模型

常用的动态网页对象: 之前我们提到了,使用request对象可以获得和用户请求相关的一系列信息.这一节,我们来看看另外两个常用对象的常规用途. response对象:用于向客户回应.最常用的用法类似于 “Response.Redirect("/Home/Index1");” 它表示用户浏览器跳转到当前网站的“/Home/Index1”位置. 常用于出现各种错误的时候,提前结束当前流程. Session对象:和ViewData的用法类似,也是用字典模式存储数据.例: Session[&q

项目架构开发:业务逻辑层之领域驱动失血模型

前边我们构建了个数据访问层,功能虽然简单,但是基本够用了.传送门:项目架构开发:数据访问层 这次我们构建业务逻辑层 业务逻辑是一个项目.产品的核心,也是现实世界某种工作流程在代码层面的体现. 所以,业务逻辑的合理组织构造,或更真实地反映现实业务操作,对项目的成功与否非常重要 现在业界对业务逻辑层的开发,一般会参考Martin Fowler大师提出来的针对业务层开发的四种模式 分别是面向过程的事务脚本.表模块模式,面向对象的活动记录与领域开发模式 我们要做的就是领域驱动开发模式,注意标题中的“失血

Flex入门(三)——微架构之Cairngorm

大家都知道我们在开发后台的时候,都会使用MVC,三层等分层架构,使后台代码达到职责更为分明单一,高内聚低耦合,例如,Dao层只是进行和数据库打交道,负责处理数据:Service(B层)只是进行逻辑判断处理,而Action则进行后台和前台页面的交互等.从而使程序更加容易管理,更加灵活,更加容易扩展,更加容易维护.也就是大家比较熟悉的Struts(SpringMVC)+Spring+Hibernate(Mybatis)等. 而作为前台Flex处理,也提供了类似的处理功能,想要达到的效果,也是代码分层

BIEE入门(一)架构

BIEE作为Oracle的新的商业智能平台企业版,起源于Oracle所收购的Siebel公司,BIEE原来叫做Siebel Analytic,但是Siebel也不是它的发明者,它是Siebel在2001年收购的另一个公司叫nQuire software的产品,这个从它的配置文件的名称就可以看出来(NQSConfig,还一直保留着nQuire software的痕迹).但是这个产品无论是在Siebel还是在Oracle都得到了发扬光大,我的理解是,也许它不一定是最好的BI工具,但是却是一个非常有创

[CAMCOCO][C#]我的系统架构.服务器端.(三)----Model层

我估计一片帖子写不完这个,慢慢来吧... 先上个图,按照图来说明应该容易说清楚一些. 在Model Core核心代码中,老胡创建了一个类 CAMCOCO.Model.Core,要求今后在Model Logic中编写的实体类都必须从这里继承. Core里提供了两种基类,一个是Entity的基类,一个是Filter基类. 先给出实体类的继承结构:代码有点多,点开再看^v^ 1 namespace CAMCOCO.Model.Core.Entity 2 { 3 using System; 4 5 #r

系统架构师-基础到企业应用架构-业务逻辑层

一.上章回顾 上章我们主要讲述了系统设计规范与原则中的具体原则与规范及如何实现满足规范的设计,我们也讲述了通过分离功能点的方式来实现,而在软件开发过程中的具 体实现方式简单的分为面向过程与面向对象的开发方式,而目前更多的是面向对象的开发设计方式.并且我们也讲述了该如何通过设计手段去分析功能点及设计分离 点,应该如何在设计的过程中分析的角度及如何去满足设计规范与原则.首先我们通过下图来回顾下上章要点: 二.摘要 本文将已架构的方式去分析分层结构中的业务层的设计,如何写出来内聚度,高耦合的业务逻辑层

快速入门系列--MVC--04模型

model元数据 闲来继续学习蒋金楠大师的ASP.NET MVC框架揭秘一书,当前主要阅读的内容是Model元数据的解析,即使是阅读完的现在,仍然有不少细节不是特别明白.好在这部分内容主要是关于Razor引擎的呈现的,通过注解的方式对Model进行自定的修饰,最终使得页面在渲染时(即从cshtml文件转化为html时),相关的数据能够按照指定的形式转化并显示.由于接下来的项目中不再打算使用Razor引擎,该引擎虽然很不错,但也有一些问题,例如存在HTML5代码与HtmlHelper的混写,使得U