Mondrian系列(三)-如何设计Mondrian的Schema(1)

本文介绍了Mondrian中Schema的概念及其组成元素,包括Cube、维度、层次等,并详细解释了Schema文件的XML结构及各元素的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.什么是mondrian的Schema?

Schema定义了多维数据库。其中包含了逻辑模型,由Cube、层次、成员组成,而且定义了逻辑模型到物理模型的映射。

逻辑模型组成了用来进行MDX查询的结构,包括cube、维度dimension、层次hierarchies、等级level以及成员member。

物理模型是逻辑模型的数据源,典型的物理模型是星型模型,通过关系数据库中的一系列表构成;后面我们会看到一些其他种类映射的例子。

2.Schema文件

Mondrian的schema是以xml文件的方式表现的。在mondrian目录下的demo/FoodMart.xml文件就是一个最好的例子,其中包括了我们所要涉及的几乎全部结构。demo/FoodMartCreateData.sql文件是测试数据集,默认使用的是mysql,如果是Oracle下面,可以通过Access的mdb数据文件做移植,或者是通过导入的mysql数据进行移植,可以使用Oracle的SQL Developer工具做这件事。

现在,创建Schema文件的方法是通过文本编辑器来编写xml文件。xml的语法不太复杂,并不像想象的那样困难。一个XML文档的实例如下:

Schema>

Cube>

Table>

AggName>

aggElements

AggPattern>

aggElements

Dimension>

Hierarchy>

relation

Closure/>

Level>

KeyExpression>

SQL/>

NameExpression>

SQL/>

CaptionExpression>

SQL/>

OrdinalExpression>

SQL/>

ParentExpression>

SQL/>

Property>

PropertyExpression>

SQL/>

DimensionUsage>

Measure>

MeasureExpression>

SQL/>

CalculatedMemberProperty/>

CalculatedMember>

Formula/>

CalculatedMemberProperty/>

NamedSet>

Formula/>

VirtualCube>

CubeUsages>

CubeUsage>

VirtualCubeDimension>

VirtualCubeMeasure>

Role>

SchemaGrant>

CubeGrant>

HierarchyGrant>

MemberGrant/>

Union>

RoleUsage/>

UserDefinedFunction/>

Parameter/>

在上面文档结构中relation定义为:

relation::=

aggElement定义为

aggElement::=
<aggexclude><br><aggfactcount><br><aggignorecolumn><br><aggforeignkey><br><aggmeasure><br><agglevel></agglevel></aggmeasure></aggforeignkey></aggignorecolumn></aggfactcount></aggexclude>

注意,XML元素的顺序非常重要。例如,<userdefinedfunction>元素必须在<schema>元素内部,必须在所有的<cube>、<virtualcube>、<nameset>以及<role>元素的后面,如果你在<cube>元素前包含了用户自定义函数的元素,则Schema剩下的内容会被忽略。</cube></role></nameset></virtualcube></cube></schema></userdefinedfunction>

在后面我们会给出XML schema中的每个XML元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值