数据模式(Schema)定义

数据模式(Schema)定义

Created 星期一 24 十月 2016

模式(Schema)定义了一个多维数据库,它包一个含逻辑模型,并定义了逻辑模型到物理模型的映射
物理模型包含多维数据的存储方式:事实表、维表及其结构等。
逻辑模型包含了用于MDX 查询的结构,如数据立方体、维度、层次、成员、度量等。
Mondrian 使用一个XML 文件来描述模式。
Mondrian 包含一个创建、修改模式文件的Java桌面应用schema-workbench

模式文件

Schema 文件可以定义虚拟立方体,基于一个或多个基础立方体来建立。也可以定义角色以及角色的访问权限(对立方体、维度等)。有关虚拟立方体和角色的内容本文档不涉及。
Schema 文件主要结构如下(去掉了VirtualCube 和Role 等):
Schema 包含立方体、虚拟立方体、共享维度、角色

Cube 维度和度量的集合,以事实表为中心

Table 事实表

AggName 声明一个聚集表

aggElements 聚集表设置,结构见下

AggPattern 声明一批聚集表

aggElements

Dimension 维度

Hierarchy 维度层次

relation 物理表、视图,结构见下
Closure/ 映射父子层次关系
Level 一个层次

DimensionUsage 引用共享维度
Measure 度量

CalculatedMemberProperty/

CalculatedMember 计算成员
NamedSet 命名集合

Formula/ 公式

UserDefinedFunction/ 声明用户自定义函数

Relation 可以是Table、View、Inline Table、Join:
aggElement 可以是以下元素:

  • AggExclude
  • AggFactCount
  • AggIgnoreColumn
  • AggForeignKey
  • AggMeasure
  • AggLevel

示例:
personDemo.xml
<?xml version="1.0" encoding="UTF-8"?>
<Schema name="Mondrian"> <!--模型定义-->
<Cube name="Person"> <!--立方体 ,一个立方体有多个维度-->

<Table name="PERSON" /> <!--立方体对应的事实表 -->
<Dimension name="部门" foreignKey="USERID" > <!--定义维度 -->

<Hierarchy hasAll="true" primaryKey="USERID" allMemberName="所有部门" > <!--定义维度下面的层次,层次包含很多层 -->
<Table name="PERSON" alias="a"/> <!--定义维度获取数据的来源-维表 -->
<Level name="部门" column="DEPARTMENT" uniqueMembers="true" /> <!--定义层次的层,每个层对应数据库中对应的字段 -->
<Level name="姓名" column="USERNAME" uniqueMembers="true" />
</Hierarchy>

</Dimension>
<Dimension name="性别" foreignKey="USERID" >

<Hierarchy hasAll="true" primaryKey="USERID" allMemberName="所有性别">

<Table name="PERSON" alias="b" />

<Level name="性别" column="SEX" uniqueMembers="true" />
</Hierarchy>

</Dimension>
<Dimension name="专业技术资格类别" foreignKey="USERID" >

<Hierarchy hasAll="true" primaryKey="USERID" allMemberName="所有专业技术资格类别"> </

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值