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 aggElements relation <Closure/> <Level> <SQL/> <SQL/> <SQL/> <SQL/> <SQL/> <Property> <SQL/> <Measure> <SQL/> <Formula/> <NamedSet> <Formula/> <Role> <MemberGrant/> <Union> <RoleUsage/> <Parameter/> |
在上面文档结构中relation定义为:
relation::= relation |
aggElement定义为
aggElement::= |
注意,XML元素的顺序非常重要。例如, 元素必须在 元素内部,必须在所有的 、 、 以及 元素的后面,如果你在 元素前包含了用户自定义函数的元素,则Schema剩下的内容会被忽略。
在后面我们会给出XML schema中的每个XML元素。