摘要:
目的 多维OLAP数据库处在数据存取层和表示层之间,它将关系性数据仓库中的数据转换成完全实现的维度模型,从而使分析报表的创建和数据的可视化更加快速和灵活。由于不同的OLAP数据库提供的特性和物理方式不同,我们将介绍分析服务如何实现维度模型。内容事实表中包含数值数据的列对应维度模型中的度量值。因此,每个事实表都是一组度量值,分析服务用一种称作度量值组(measure group)的逻辑结构组织信息,度量值组与当个事实表以及相关的维度相对应。概念上,度量值组合事实表相似,但有一些显著的差异,就像事实表一样,度量值组包含了代表每个维度的列以及每个度量的列。同样,度量值组包含了每个维度中的成员的每个可 阅读全文
摘要:
在业务数据库中,保证数据在所有应用程序中一致是极为重要的:如果在系统的某一部分修改了顾客的地址,这个修改后的地址立即在系统的所有部分显现出来,由于这种一致性的需要。倾向于将业务数据系统拆分成许多个表,这样任何值只在单个表中存储一次。任何时候需要某个值,包含这个值的表的连接就会被创建。保证一个值只存储在一个地方是规范化(normalization)进程的一个部分,这在业务系统数据库系统是十分重要的。在数据仓库维度中,可能有许多属性来构成自然层次结构。熟悉创建业务系统数据库的数据库设计师希望将维度规范化。从而使层次结构中的妹级都有一张独立的表。例如,业务数据库的设计者可以通过创建一个子类表和一个类 阅读全文
摘要:
使用整数键值代表维度成员的一个原因是减少事实表的大小。同样,整数键允许将看似重复的成员存储在同一个维度表中。例如,在“顾客”维度中,可以有两个都叫Tom的顾客,但每个人都分配了唯一的“顾客”键,保证了维度表中成员键只出现一次。当然,由于数据仓库是通过提取业务系统的中数据产生的,上述两个Tom毫无疑问已经有了唯一的键值。其中一个可能是C12323A,另一个可能是F23454B。这些键称作为程序键(application key)或业务键(bussiness key),因为他们来源于用于经营业务的应用程序键。数据仓库为何还要产生新的代理键呢?有三个理由:<1>代理键可以使整数<2 阅读全文
摘要:
简介商业智能系统将维度数据仓库作为数据存取层。数据仓库存储在关系型数据库管理系统(RDBMS)中,打一个非常简单的比方,你可以将关系数据库简单地想作一系列的表格。每个表格有行和列,就行Excel电子表格一样。在维度数据仓库中,维度存储在维度表中,度量值被称作事实并存储于事实表(fact table)中。目的介绍数据仓库中的维度表和事实表的概念及逻辑模型内容一、事实表 在维度数据仓库中,存储度量值的详细值或事实的表称作事实表。表1.14给出了FactSales事实表前几行的概念视图,它存储了按照州、产品和月份划分的销售量和销售额。表1.14 FactSales事实表 州 产品 月份 销售量 .. 阅读全文
摘要:
目的学习数据中的维度内容维度分析是Bi开发中很重要的概念,为了帮助理解维度,让我们回顾一些文提到的报表。看一下AWC公司月度销售量表重新显示如下:表1.8 AWC公司月度分析报表2011年1月2011年2月2011年3月2012年4月4142725在这份报表中,总的销售量按照月度属性进行了划分,月数(4)决定了报表中值的数目。这和现实世界中计算线性距离相似:一条线的长度就是线长。表1.9 AWC公司按模型和月份列出销售报表 模型 2011年1月 2011年2月 2011年3月 2011年4月 Mountain-5003866 Road-7501516 Hick Rack1663表1.9显示了按 阅读全文
摘要:
目的通过简单的层次结构将产品和模型属性进行组织,并使用层次结构对详细数据分组和汇总的报表。本节了解如何建立层次架构内容通过第一节中的介绍,相关属性添加到各个级别,可以创建层次结构。基于“模型”层次结构的产品只有两级,但其实层次结构可以有很多个级别。例如、通过将月份属性作为最底层,同时添加由季度和年度属性组成的中间级(intermediate level),可以创建包含多个级的日期层次结构。我们可以在日期层次架构中添加添加顶层添加新的一级,称为All级。All级只包含一个成员——所有日期——所有成员年度的聚合。图1.1 日期层次结构图1.1说明了按照“所有日期”、“年”、“季度”、“月份”排列的 阅读全文
摘要:
为了保证原创权益,首先声明,此文章是转自博客园宋沄剑园友的文章,纯属个人学习之用,原文章地址为:http://www.cnblogs.com/CareySon/archive/2011/12/26/2301597.html简介 在SQL Server中,数据库在硬盘上的存储方式和普通文件在windows中的存储方式没有什么不同,仅仅是几个文件而已,SQL Server通过管理逻辑上的文件组的方式管理文件,理解文件和文件组的概念对更好的配置数据库来说是基本的知识理解文件和文件组 在SQL Server中,通过文件组这个逻辑对象对存放数据的文件进行管理。 先看一张图:我们看到的逻辑数据库由一个或者 阅读全文
摘要:
目的 学习一些商业智能的基本概念,如属性、层次结构和维度数据分析中的属性 假设如果你是AWC公司的总经理,希望了解公司的业绩,于是从业务人员那里得到一份报表表1.1 AWC公司业绩 42 看到这个表格你根本不能得到任何信息,也就是说这个表是没有任何意义的,没有上下文的数字可能是数据,但不是信息,在商业智能中,用来监控公司运行的可概况的数值被称作度量值(measure)。在寻找数字信息的过程中,首先要做的就是确定所需要的度量值,度量值可以是“销售额(Sales Dollars)”、“发货量(Shipment Units)”、等,我们来看一下AWC公司的销售报告,如图1.2所示表1.2 AWC公司 阅读全文
摘要:
基础代码复用性技巧之:混入(MiXin)和拦截器类 通过上一篇的介绍,我们基本能够建立出来一个有效率、可访问的基础架构来实行运行时的领域管理,在前篇的例子中我们为延迟加载功能设置的加载标记必须添加到需要支持懒加载的每个类的子类中。而且,在我们的例子中,如果你观察下加载标记是一次写入的,也就是说在变成true之后就不能再切换回来。我们在Setter方法中,我们有一些代码来实施这个规则——需要懒加载的每个领域模型类的子类中,我们都要为每个领域模型类的子类中,我们都要在setter方法中重复那些代码。 为了近大限度的实现基础架构的重用,我们就应该创建一个可重用的类来包含这种逻辑。但是,我们已经使用了 阅读全文
摘要:
在我们使用领域模型的时候,很少会创建实际领域模型类,然后使用去使用它们那么简单。我们会使用相当数量的基础架构代码来支持领域模型之间的领域逻辑关系。在这里运行的基础架构的这部分称为领域模型管理(Domain Model Management)简称:DMM。问题一、基础架构代码放在那里? 随着基础架构代码的增长,找到一个处理它的优良架构越来越重要,在架构系统中,基础架构代码该如何放置,可以把一些基础代码放在我们的领域类里面,当然这是我们所尽量避免的。因为领域模型应该表示应用程序所处理的核心业务概念,对于对于想大量使用其领域模型的应用来说,保持这些类干净、轻量级、易于维护是我们所共同追求的。保持领. 阅读全文