02 2012 档案

摘要:目的学习数据中的维度内容维度分析是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显示了按 阅读全文
posted @ 2012-02-29 15:59 指尖流淌 阅读(1264) 评论(2) 推荐(0) 编辑
摘要:目的通过简单的层次结构将产品和模型属性进行组织,并使用层次结构对详细数据分组和汇总的报表。本节了解如何建立层次架构内容通过第一节中的介绍,相关属性添加到各个级别,可以创建层次结构。基于“模型”层次结构的产品只有两级,但其实层次结构可以有很多个级别。例如、通过将月份属性作为最底层,同时添加由季度和年度属性组成的中间级(intermediate level),可以创建包含多个级的日期层次结构。我们可以在日期层次架构中添加添加顶层添加新的一级,称为All级。All级只包含一个成员——所有日期——所有成员年度的聚合。图1.1 日期层次结构图1.1说明了按照“所有日期”、“年”、“季度”、“月份”排列的 阅读全文
posted @ 2012-02-29 15:17 指尖流淌 阅读(1194) 评论(0) 推荐(2) 编辑
摘要:为了保证原创权益,首先声明,此文章是转自博客园宋沄剑园友的文章,纯属个人学习之用,原文章地址为:http://www.cnblogs.com/CareySon/archive/2011/12/26/2301597.html简介 在SQL Server中,数据库在硬盘上的存储方式和普通文件在windows中的存储方式没有什么不同,仅仅是几个文件而已,SQL Server通过管理逻辑上的文件组的方式管理文件,理解文件和文件组的概念对更好的配置数据库来说是基本的知识理解文件和文件组 在SQL Server中,通过文件组这个逻辑对象对存放数据的文件进行管理。 先看一张图:我们看到的逻辑数据库由一个或者 阅读全文
posted @ 2012-02-28 22:58 指尖流淌 阅读(985) 评论(0) 推荐(0) 编辑
摘要:目的 学习一些商业智能的基本概念,如属性、层次结构和维度数据分析中的属性 假设如果你是AWC公司的总经理,希望了解公司的业绩,于是从业务人员那里得到一份报表表1.1 AWC公司业绩 42 看到这个表格你根本不能得到任何信息,也就是说这个表是没有任何意义的,没有上下文的数字可能是数据,但不是信息,在商业智能中,用来监控公司运行的可概况的数值被称作度量值(measure)。在寻找数字信息的过程中,首先要做的就是确定所需要的度量值,度量值可以是“销售额(Sales Dollars)”、“发货量(Shipment Units)”、等,我们来看一下AWC公司的销售报告,如图1.2所示表1.2 AWC公司 阅读全文
posted @ 2012-02-28 17:08 指尖流淌 阅读(2250) 评论(4) 推荐(2) 编辑
摘要:基础代码复用性技巧之:混入(MiXin)和拦截器类 通过上一篇的介绍,我们基本能够建立出来一个有效率、可访问的基础架构来实行运行时的领域管理,在前篇的例子中我们为延迟加载功能设置的加载标记必须添加到需要支持懒加载的每个类的子类中。而且,在我们的例子中,如果你观察下加载标记是一次写入的,也就是说在变成true之后就不能再切换回来。我们在Setter方法中,我们有一些代码来实施这个规则——需要懒加载的每个领域模型类的子类中,我们都要为每个领域模型类的子类中,我们都要在setter方法中重复那些代码。 为了近大限度的实现基础架构的重用,我们就应该创建一个可重用的类来包含这种逻辑。但是,我们已经使用了 阅读全文
posted @ 2012-02-27 15:04 指尖流淌 阅读(450) 评论(0) 推荐(0) 编辑
摘要:在我们使用领域模型的时候,很少会创建实际领域模型类,然后使用去使用它们那么简单。我们会使用相当数量的基础架构代码来支持领域模型之间的领域逻辑关系。在这里运行的基础架构的这部分称为领域模型管理(Domain Model Management)简称:DMM。问题一、基础架构代码放在那里? 随着基础架构代码的增长,找到一个处理它的优良架构越来越重要,在架构系统中,基础架构代码该如何放置,可以把一些基础代码放在我们的领域类里面,当然这是我们所尽量避免的。因为领域模型应该表示应用程序所处理的核心业务概念,对于对于想大量使用其领域模型的应用来说,保持这些类干净、轻量级、易于维护是我们所共同追求的。保持领. 阅读全文
posted @ 2012-02-26 17:01 指尖流淌 阅读(644) 评论(0) 推荐(0) 编辑
摘要:序列图的主要目的:展示对象间交互的顺序。详细介绍可以参考上一篇文章,序列图是一个二维图。纵向是时间轴,时间沿着竖线向下延伸,横向轴代表了在协作中各个独立对象的类元角色,也称作生命线,当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。举例:1、生命线生命线名称可带下划线。当使用下划线时,意味着序列图中的生命线代表一个类的特定实例。2、同步消息发送人在它继续之前,将等待同步消息响应。3、异步消息在发送方继续之前,无需等待响应的消息。4、注释5、约束约束的符号很简单,中括号包括约束内容:[Boolean Test]6、组合片段组合片段用来解决交互执行的条件及方式,它允 阅读全文
posted @ 2012-02-25 23:32 指尖流淌 阅读(8711) 评论(1) 推荐(1) 编辑
摘要:在DDD领域构架系统中,为了将领域模型从领域逻辑层中和数据映射层之间解耦出来,我们引用到了Repository模式,属于属于泛型编程中一个比较常用的模式,尤其应用到MVC构架中更为常见,我们来简单的介绍几个概念:1、在《领域驱动设计:软件核心复杂性应对之道》,将Repository翻译为仓储,说明为:一种用来封装存储,读取和查找行为的机制,它模拟了一个对象集合。2、在《企业构架模式》中,译者对其翻译为:资源库,说明如下:通过用来访问领域对象的一个类似集合的接口,在领域与数据映射层之间进行协调下面通过一个案例才详细说明该解耦过程一、新建应用程序,添加Linq To Sql,新建两个领域模型,用. 阅读全文
posted @ 2012-02-24 23:30 指尖流淌 阅读(10051) 评论(0) 推荐(9) 编辑
摘要:用例图主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即用户希望系统具备的完成一定功能的动作,一般生成于需求分析的时候,通俗理解用例就是软件的功能模块,所以设计系统分析阶段的起点,设计人员根据客户的需求来创建和解释用例图,用来描述软件应具备哪些功能模块以及这些模块之间的协作调用关系,用例图包含了用例和参与者,用例之间来连接以求把系统的整个结构和功能反映给非技术人员(通常是软件的用户),对应的是软件的结构和功能分解。 用例是从系统外部可见的行为,是系统为某一个或几个参与者(Actor)提供的一段服务。从原则上来讲,用例之间都是独立、并列的,他们之间并不存在包含从属关系。但是为了体现一. 阅读全文
posted @ 2012-02-20 11:40 指尖流淌 阅读(3013) 评论(0) 推荐(0) 编辑
摘要:应用系统设计应该遵循一些的设计的基本原则,其实这些思想也是源于GOF的设计模式的总结,在创建一个低成本,高可用、高扩展性、低耦高内聚的应用程序,我们需要遵循的一套规范性的东西,简称SOLID,SOLID由可分为以下几点:1、Single Responsibility Principle(单一职责原则)2、Open Close Principle(开-闭原则)3、Liskov Substitution Principle(里氏代换原则)4、Interface Segregation Principle(接口分离原则)5、Dependency Inversion Principle(依赖反转原则. 阅读全文
posted @ 2012-02-19 21:03 指尖流淌 阅读(1790) 评论(0) 推荐(0) 编辑
摘要:结合webcast中老师的讲解,现在把基础语法应用通过几个案例应用如下:一、维度的概念上图中一个维度(Dimension):Region改为度下有四个级别(Levels):country、province、city、county,他们属于层次集合(Hierarchy)通过维度和级别我们可以定义一个元素(Member)如:Levels(1).members(2)=chinaLevels(2).members(3)=shanghai二、维度建模上图中时一个维度建立的模型(cube)该图中包含四个维度(Dimension):时间、源、路线、度量方式值(Measure)源维度中包含两个级别:东半球、西 阅读全文
posted @ 2012-02-18 12:04 指尖流淌 阅读(5687) 评论(2) 推荐(4) 编辑
摘要:Mdx为MultiDimensional Expressions的缩写,多维表达式,是标准的OLAP查询语言。在多数OLAPServer都提供Mdx支持,如Microsoft Sql Server OLAP Services,SAS,Hyperion Essbase等。支持多维对象于数据定义和操作。... 阅读全文
posted @ 2012-02-16 22:57 指尖流淌 阅读(20943) 评论(0) 推荐(4) 编辑
摘要:在Bi领域,cube是一个非常重要的概念,是多维立方体的简称,主要是用于支持联机分析应用(OLAP),为企业决策提供支持。Cube就像一个坐标系,每一个Dimension代表一个坐标系,要想得到一个一个点,就必须在每一个坐标轴上取得一个值,而这个点就是Cube中的Cell。如下图,在webcast上截了图:Cube是联机分析的关键。他们是一种多维结构,包含原始事实数据、聚合数据,这些数据聚合允许用户快速进行复杂的查询,Mdx语言就应用它更是如鱼得水。Cube包含两个基本概念:维度和度量维度(Dimension):维度提供了分类描述,表示一类分析角度,用户通过维度分析度量数据。比如上图中的三个. 阅读全文
posted @ 2012-02-16 22:45 指尖流淌 阅读(12798) 评论(0) 推荐(2) 编辑
摘要:延迟加载(lazy load)也成为懒加载,基本用于ORM中数据对象的一种默认加载方式,简单点讲延迟加载机制是为了避免无所谓的性能开销而提出来的,所谓延迟加载就是当真正需要数据的时候,才真正的执行数据加载操作。可以简单的理解为,只有使用的时候,才会实例化对象。 最大的有点就是能够大大的提高系统的性能。 通过一个案例来讲解,举一个很大众的应用场景,在大多的B2C应用中会设计到到用户开店的情况,这样我们就设计一个会员表,一个店铺表,当然一个会员可以开很多歌店铺,也就是说这里面一对多的映射。看一下类图:两个实体类,聚合关系,下面看一下第一种代码结构:using System;using Syste. 阅读全文
posted @ 2012-02-15 23:02 指尖流淌 阅读(1637) 评论(0) 推荐(0) 编辑
摘要:ACID,是指在可靠数据库管理系统(DBMS)中,事务(transaction)所应该具有的四个特性,原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)。 原子性(atomicity) 原子性意味着数据库中的事务执行是作为原子,及不可再分,简单一句话:要么执行,要么不执行。 在SQL Server中,每一个单独的语句都可以看做是默认包含的一个事务之中:所以,每一个语句本身具有原子性,要么全部执行,要么全部不执行,不会有中间状态: 上面说了,每一条T-SQL语句都可以看做是默认包裹在一个事务之中的,SQL Server对. 阅读全文
posted @ 2012-02-15 14:26 指尖流淌 阅读(1334) 评论(0) 推荐(0) 编辑
摘要:序列图主要用于按照交互发生的一系列顺序,显示对象之间的这些交互。和类图配合使用,关注于不同业务对象之间的交互性,所以在对于交流当前业务如何进行很有用。除记录组织的当前事件外,一个业务级别的序列图能被当作一个需求文件使用,更能体现出一个未来系统的传递需求。在项目的需求阶段,分析师能通过提供一个更加正式层次的表达,把用例带到下一个层次,而且表述出用例之间的业务逻辑关系。在这种情况下,用例常常被细分为一个或者更多的序列图。 组织的技术人员发现,序列图在记录一个未来系统的行为应该如何表现中,非常有用。在设计阶段,架构师和开发者能使用该图挖掘出系统对象间的交互,这样充实整个系统设计。 序列图的主要用途. 阅读全文
posted @ 2012-02-13 16:47 指尖流淌 阅读(1150) 评论(0) 推荐(0) 编辑
摘要:ETL是数据抽取(Extract)、清洗(Cleaning)、转换(Transform)、装载(Load)的过程。是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。 ETL是将业务系统的数据经过抽取、清洗转换之后加载到数 阅读全文
posted @ 2012-02-12 18:06 指尖流淌 阅读(9412) 评论(2) 推荐(2) 编辑
摘要:创建性模式singleton模式解决的是实体对象个数的问题。除了singleton之外,其他创建性模式都是new耦合所带来的耦合关系。Factoyr Method,Abstrct Factory, Builder都需要一个额外的工厂类来负责实例化“易变对象”,而Prototype则是通过原型(一个特殊的工厂类)来克隆“易变对象”。如果遇到“易变类”,期初的涉及通常从Factory Method开始,当遇到更多的复杂的变化时,在考虑重构其他三种工厂模式(Abstract Factory,Builder,Prototype)。Prototype模式:Singleton模式:Builder模式:Fa 阅读全文
posted @ 2012-02-10 23:16 指尖流淌 阅读(730) 评论(0) 推荐(1) 编辑
摘要:从发展计算机技术以来,对信息管理技术的不断提出了新的需求,推动数据库技术飞速发展,另一方面,随着数据处理能力的逐步提高、数据分析工具和技术的不断成熟,人们发现对数据库中的数据进行再加工,形成一个综合的、面向分析的环境,能更好的支持决策分析,发挥数据的更大价值。从而逐渐形成了数据仓库(Data warehouse, DW)的的思想,由此数据仓库技术营运而生。 数据仓库就是面向主题的(subject oriented)、集成的(Integrated)、稳定的(nonvolatile)、随时间变化的(Time variant)数据的集合,用以支持经营管理中的决策指定的过程 数据仓库的四个特征和建立. 阅读全文
posted @ 2012-02-06 23:02 指尖流淌 阅读(1168) 评论(0) 推荐(0) 编辑
摘要:在SQL Server中,非聚集索引其实可以看做是一个含有聚集索引的表,但相比实际的表而言,非聚集索引中所存储的表的列数窄很多,因为非聚集索引仅仅包含原表中非聚集索引的列和指向实际物理表的指针。 并且,对于非聚集索引表来说,其中所存放的的列是按照聚集索引来存放的,所以查找速度要快了很多。但是对于性能的榨取来说,SQL Server总是竭尽所能,假如仅仅是通过索引就可以在B树的叶子节点上获取所需数据,而不再通过叶子节点上的指针去查找实际的物理表,那性能的提升将会更胜一筹。非聚集索引的覆盖 正如前面简洁所说。非聚集索引其实可以看作一个聚集索引表,当这个非聚集索引中包含了查询所需要的所有信息时,则. 阅读全文
posted @ 2012-02-05 20:59 指尖流淌 阅读(744) 评论(0) 推荐(0) 编辑
摘要:在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索引,SQL Server仍然可以实现应有的功能。但索引可以在大多数情况下大大提升查询性能高。在OLAP中尤其明显,要完全理解索引的概念,需要了解大量原理性的知识,包括B树,堆,数据库页,区,填充因子,碎片,文件组等等一系列相关知识。 索引时对数据库中表中一列和多列的值进行排序的一种结构,使用索引可以快速访问数据表中特定的信息。 精简来说,索引时一种结构,在SQL Server中,索引和表(这里值得是加了聚集索引的表)的存储结构是一样的,都是B树,B树是一种用于查找平衡多叉树,理解B树的概念如下图: 理解为什么使用B树作为索. 阅读全文
posted @ 2012-02-03 17:03 指尖流淌 阅读(8421) 评论(6) 推荐(1) 编辑
摘要:最近遇到一个情况,需要在内网系统中出一个统计报表。需要根据不同条件使用多个group by语句,需要将所有聚合的数据进行union操作来完成不同维度的统计查看。 知道发现了在SQL Server 2008之后引入了grouping sets这个对于group by的增强后,上面的需求实现起来就简单的多,下面我们用AdventureWork中的表作为demo来解释一下grouping sets. 假设我现在需要两个维度查询我的销售额度,查询T-SQL如下:而使用SQL Server 2008之后新增的grouping sets语句,仅仅需要这样写:值得注意的是,虽然上面使用grouping s. 阅读全文
posted @ 2012-02-02 13:54 指尖流淌 阅读(998) 评论(0) 推荐(0) 编辑
摘要:对于Select查询语句来说,通常情况下,为了是T-SQL代码更加简洁和刻度,在一个查询中应用另外的结果集都是通过视图而不是查询进行分解的,但是,视图作为系统对象存储在数据库中,那对于结果集仅仅需要在存储过程或是用户自定义函数中使用一次的时候,使用视图就显得有限奢侈了。 公用表达式(Common Table Expression)是SQL Server2005版本之后引入的一个特性,.CTE可以看做是一个临时的结果集,可以再接下来的select,insert,update,delete,merge语句中被多次使用,使用公用表达式可以让语句更加清晰简练。 初次之外,根据微软对CTE好处的描述,. 阅读全文
posted @ 2012-02-02 13:31 指尖流淌 阅读(763) 评论(0) 推荐(0) 编辑
摘要:视图可以看做定义在SQL Server上的虚拟表,视图正如其名字的含义一样,是另一种查看数据的入口,常规视图本身并不存储实际的数据,而仅仅存储一个select语句和所涉及的表的关系。 通过视图,客户端不再需要知道底层table的表结构及其之间的关系,视图提供了一个统一访问的数据的接口。视图的优点 1、视图隐藏了底层的表的结构,简化了数据访问的操作 2、因为隐藏了底层的表结构,所以大大加强了安全性,用户只能看到视图提供的数据 3、使用了视图,方便了权限管理,让用户对视图的权限而不是度底层表的权限进一步加强了安全性4、提供了一个用户访问的接口,当底层表改变后,改变视图语句来进行适应,使已经建立在. 阅读全文
posted @ 2012-02-01 18:26 指尖流淌 阅读(2169) 评论(0) 推荐(1) 编辑
摘要:在关系数据库中,我们对于查询的思考是面向集合的,而游标打破了这一规则,游标使得我们思考方式变为逐行进行。 正常面向集合的思维方式是:而对于游标来说:这也是为什么游标是邪恶的,它会使开发人员变懒,懒得去想面向集合的查询方式实现某些功能。同样的,在性能上,游标会吃更多的内存,减少可用的并发,占用宽带,锁定资源,当然还有更多的代码量....从游标对数据库的读取方式来说,不难看出游标为什么占有更多资源了,打个比方:当你从ATM取钱的时候,是一次去1000效率更高呢,还是取10次100?游标的好处:1、现存系统有一些游标,我们查询必须通过游标来实现2、作为一个备用方式,当我们穷尽了while循环,子查. 阅读全文
posted @ 2012-02-01 15:19 指尖流淌 阅读(1354) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示