OLAP系统中的Java和XML
虽然联机分析处理(OLAP:Online Analytical Processing)系统通常是用来处理大的数据集的,但当数据量和OLAP查询的复杂程度不需要用关系数据库管理系统(RDBMS)来高效地检索数据并进行查询处理时,我们也可以用对象数据库管理系统(ODBMS)。ODBMS的好处是,它需要一个单独的数据模型,可以允许较小的开发团队进行更快的开发。
大多数ODBMS中运用的基本数据结构是一个树状图或一个曲线图,遍历该树状图或曲线图就是我们通常访问一个对象数据库中数据的过程。基于XML的数据模型是一个带有注释的树状图,其中XML元素与节点相应,XML属性与那些节点的注释相应。所以,XML是为一个OLAP系统实现一个对象数据库的很好的候选工具。
另外,大多数OLAP系统都是用多维的结构模式或星型模式(star schema)来建模的。用XML来建立一个星型模式是相当简单的。通过一个简单的零售连锁店的例子,我将讲述如何用XML来建模并实现面向对象的OLAP系统和用来绑定数据的Java Architecture for XML Binding(JAXB)。注意,我所讲述的方法只是为了说明该例子,它不适合大的数据集。
一个多维的数据库
图1. 多维结构模式
设想有一个零售连锁店,在不同的商店出售多种产品。样例数据库中包含最近八个季度各个商店(10家)出售的所有产品(10种)的有关销售和利润的数据。在星型模式中,数据库是一个多维空间中的一组数据事实。我们衡量的就是存储在中心事实表(fact table)中的数据(本例中的销售和利润数据)。
维(dimension)是各商业参数(商店(Store)、产品(Product)和时间(Time)),它们存储在单独的维表(dimension table)中(见图1)。
维有属性。例如,Product 维有属性:Name、Supplier和Category。维中包含各个层次,例如:Time Dimension -> Quarters -> Years
我们可以在层次结构中导航:上卷、向下钻取或切片(定义成一个子立方结构(subcube))。
starschema.dtd文件就是我们用来为样例数据库建立星型模式的Document Type Definition(DTD)(见列表1)。与该DTD一致的XML文件(starschema.xml)的结构见列表2。XML文件及其DTD是不需要说明的。
没有评论:
发表评论