mondrian的基本模式教学课件_第1页
mondrian的基本模式教学课件_第2页
mondrian的基本模式教学课件_第3页
mondrian的基本模式教学课件_第4页
mondrian的基本模式教学课件_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Mondrian模式mondrian的基本模式1.什么是mondrian模式?

一个mondriann模式文件定义了一个多维数据库.它包含一个逻辑模型(logicalmodel)、一组数据立方(consistingofcubes)、层次(hierarchies)、和成员(members),并映射到物理模型上.mondrian的基本模式逻辑模型(logicalmodel)是为了编写MDX查询语言而创建的,有如下概念:

数据立方(cubes);

维(dimensions);

层次(hierarchies);

级别(levels);

成员(members).mondrian的基本模式物理模型是所有数据的源,它们通过逻辑模型表现出来。典型的是星型模式,它们是由关系型数据库中的一组表组成。下面我们还将看到一些其他映射的例子mondrian的基本模式2.模式文件Mondrian模式是定义在一个XML文件中的.demo/FoodMart.xml这个文件里包含大多数我们这里讨论的结构目前,生成模式文件的方法是使用XML编辑器手动编写,XML语法并不复杂,因此这个任务并不像听上去那么难注意:XML元素必须按照一定的先后顺序出现.mondrian的基本模式3.逻辑模型模式的重要组成部分为:数据立方(cubes),度量(measures),和维(dimensions):数据立方:维和度量在一个特定主题范围内的集合.度量:一个你感兴趣的一个测量值,例如,某种产品的销量.维:一个属性,属性的集合,用于度量的分类.例如,你希望通过产品的颜色、客户的性别来区分它们的销量。在这里,颜色和性别被称之为维mondrian的基本模式一个简单模式的例子<Schemaname="mySchema"><Cubename="Sales">

<Tablename="sales_fact_1997"/>

<Dimensionname="Gender"foreignKey="customer_id">

<HierarchyhasAll="true"allMemberName="AllGenders"primaryKey="customer_id">

<Tablename="customer"/>

<Levelname="Gender"column="gender"uniqueMembers="true"/>

</Hierarchy>

</Dimension>

<Dimensionname="Time"foreignKey="time_id">

<HierarchyhasAll="false"primaryKey="time_id">

<Tablename="time_by_day"/>

<Levelname="Year"column="the_year"type="Numeric"uniqueMembers="true"/>

<Levelname="Quarter"column="quarter"uniqueMembers="false"/>

<Levelname="Month"column="month_of_year"type="Numeric"uniqueMembers="false"/>

</Hierarchy>

</Dimension>

<Measurename="UnitSales"column="unit_sales"aggregator="sum"formatString="#,###"/>

<Measurename="StoreSales"column="store_sales"aggregator="sum"formatString="#,###.##"/>

<Measurename="StoreCost"column="store_cost"aggregator="sum"formatString="#,###.00"/>

<CalculatedMembername="Profit"dimension="Measures"formula="[Measures]. [StoreSales]-[Measures].[StoreCost]">

<CalculatedMemberPropertyname="FORMAT_STRING"value="$#,##0.00"/>

</CalculatedMember></Cube></Schema>mondrian的基本模式该模式包含一个名为“sales”的简单数据立方(cube),它有两个维(dimension):"Time",和"Gender",和两个度量:"UnitSales"和"StoreSales".mondrian的基本模式我们可以根据以上模式来书写一个如下的MDX查询语言:SELECT{[Measures].[UnitSales],[Measures].[StoreSales]}ONCOLUMNS,

{descendants([Time].[1997].[Q1])}ONROWS

FROM[Sales]

WHERE[Gender].[F]mondrian的基本模式这个查询引用了这个数据立方([Sales]),结果如下:下面我们将详细的说明:mondrian的基本模式3.1数据立方(cube)一个数据立方是一些度量的维的集合.通常定义在一个事实表中,如我们在事实表"sales_fact_1997"中看到的,它保存了度量值和对维表的引用.<Cubename="Sales">

<Tablename="sales_fact_1997"/>

...

</Cube>mondrian的基本模式3.2度量(measures)这个销售数据立方定义了两个度量:"UnitSales"and"StoreSales".

<Measurename="UnitSales"column="unit_sales"aggregator="sum"formatString="#,###"/>

<Measurename="StoreSales"column="store_sales"aggregator="sum"formatString="#,###.##"/>mondrian的基本模式每个度量包含一个名字对应事实表中的一个列、采用一个聚合函数.聚合函数通常为“sum”,但“count”,“min”,“max”,“avg”,和“distinct-count”

也是经常使用的。上面的度量”UnitSales”对应事实表“sales_fact_1997”中一个名为”unit_sales”的列,使用”sum”函数聚合。mondrian的基本模式可选属性datatype指定了单元值在Mondrian‘s缓存中的格式,和它们经XML返回的格式.属性datatype可以是"String","Integer","Numeric","Boolean","Date","Time",and"Timestamp"中的一个.默认为"Numeric"mondrian的基本模式一个可选的formatString属性指定了值如何被打印。这里我们选择销售数量不带小数的输出(因为销售数量是整数),销售总额带2位小数.符号','和'.'是对地区敏感的,因此如果是在意大利运行,销售总额可能会出现"48.123,45".mondrian的基本模式度量值不仅可以从事实表中的列中得出,它还可以使用cellreader,或一个SQL表达式来计算它的值.以下度量"PromotionSales"使用了SQL表达式来计算其值.注意:底层数据库必须支持SQL表达式.<Measurename="PromotionSales"aggregator="sum"formatString="#,###.00"> <MeasureExpression> <SQLdialect="generic"> (casewhensales_fact_1997.promotion_id= 0then0elsesales_fact_1997.store_salesend) </SQL> </MeasureExpression></Measure>mondrian的基本模式3.3维,层次,级别(Dimensions,Hierarchies,Levels)mondrian的基本模式成员(member)一个成员(member)是指维上的一个点,是该维值集合中的一个值.如名为gender的层次结构有两个member:‘M’and‘F’.名为store的层级结构有三个成员'SanFrancisco','California'和'USA'.mondrian的基本模式层次结构(hierarchy)层次结构(hierarchy)是为了方便分析问题而将一组member组织成的结构.例如,store层次结构由storename,city,state,和nation组成。mondrian的基本模式级别(level)一个level是members的集合,它们到根层次(hierarchy)的距离(distance)是相同的mondrian的基本模式维(dimension)一个维(dimension)是一个层次(hierarchy)的集合,根据事实表中的列来区别mondrian的基本模式维定义的例子让我们看如下一个维定义该维由一个单一的层次(hierarchy)组成,而这个层次则由一个名为Gender的级别(level)组成.<Dimensionname="Gender"foreignKey="customer_id">

<HierarchyhasAll="true"primaryKey="customer_id">

<Tablename="customer"/>

<Levelname="Gender"column="gender"uniqueMembers="true"/>

</Hierarchy></Dimension>mondrian的基本模式该维的值是从表customer中的gender列提取出来的.列“gender”

有两个值:‘F’and‘M’,因此Gender维包含两个成员:[Gender].[F]和[Gender].[M]。mondrian的基本模式3.3.1维和层次到表的映射一个维依靠一对列和数据立方进行连接,一个在事件表中,另一个在维表中。<Dimension>元素有一个外键(foreignKey)属性,对应事实表中的一个列,它通过<Hierarchy>元素中的主键属性连接起来.mondrian的基本模式3.3.2‘all’

成员默认情况下,每个层次都包含一个称之为‘(All)’的顶级别,它包含一话个名为'(All{hierarchyName})'的成员(member).该成员是该维中所有其他成员的父成员,它也是该层次的默认成员mondrian的基本模式3.3.3时间维(Timedimension)时间维有一个“TimeDimension”类型.时间维中级别(level)的类型由levelType属性指定,有如下可选值:TimeYearsTimeQuartersTimeMonthsTimeDaysmondrian的基本模式下面是一个关于时间维的例子:<Dimensionname="Time"type="TimeDimension">

<HierarchyhasAll="true"allMemberName="AllPeriods"

primaryKey="dateid">

<Tablename="datehierarchy"/>

<Levelname="Year"column="year"uniqueMembers="true"

levelType="TimeYears"type="Numeric"/>

<Levelname="Quarter"column="quarter"uniqueMembers="false"

levelType="TimeQuarters"/>

<Levelname="Month"column="month"uniqueMembers="false"

ordinalColumn="month"nameColumn="month_name" levelType="TimeMonths“

type="Numeric"/>

<Levelname="Week"column="week_in_month"uniqueMembers="false"

levelType="TimeWeeks"/>

<Levelname="Day"column="day_in_month"uniqueMembers="false"

ordinalColumn="day_in_month"nameColumn="day_name"

levelType="TimeDays"type="Numeric"/>

</Hierarchy></Dimension>mondrian的基本模式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论