首页  ·  知识 ·  软件项目
基于XML源的数据集市建模技术研究
何薇 刘奔 马圣超   万方数据  综合  编辑:德仔   图片来源:网络
1 引 言 由于Internet技术已发展成为全球电子商务和信
1 引 言

    由于Internet技术已发展成为全球电子商务和信息交换的公共平台,而任何基于Internet上所做的信息交换都广泛地采用XML数据格式来描述。作为可扩展的、跨平台的信息交换最理想的数据格式,XML数据的价值日益重要。在决策处理时,面对海量的XML数据的存在,文章提出了如何基本于XML源的数据集市建模方法。

2 基于XML源的数据集市建模

    2.1 XML数据源


    XML是Web上使用的标准化语言。由于web上的数据表现为无结构和多样性的半结构化数据,XML作为描述半结构化数据的语言有着巨大的优势,且在跨平台移植数据上提供了巨大的弹性。XML数据是元素的集合。元素有简单的和复杂的,元素之间可以嵌套。任何XML数据文档都可以带有一个与之相关联的文档定义类型DTD或XMLSchame。文档定义类型DTD(或XMLSchame)通过对元素的定义与说明描述了XML数据文档的结构和对XML数据文档内容的约束。因此,我们把DTD或XMLSchame定义为XML模型。

    2.2 多维立方体建模

    数据仓库存储数据的模型是多维立方体结构的星型模型或雪花模型,反映了主题与属性之间的1对多或多对多的关系。我们可以认为雪花模型是对星型模型维表的进一步层次化。多维立方体建模最常用的方法是由事实表和一组维表构成的星型模型或雪花模型。建模的核心是确定事实和事实的维度以及维层。在事实与维度之间实现多对1的联系。维层之间的联系则筒化为多对1或1对1的联系。图1给出的是分析学生所在班级与科目对成绩影响的雪花模型。其中学生所在的班级、专业、系构成了一个维的维层。
 
图1 学生成绩分析的雪花模型


    2.3 基于XML源的事实建模

    XML的文档定义类型DTD,完全可用具有层次模型的树型图表示,而雪花模型映射为图时,具有一样的层次结构。因此。任何在雪花模型中的依赖关系都可以映射到DTD的树型图中,表示为节点之间的关系。基于XML源的事实建模方法是:确定事实及事实所包古的属性之间的多对1的联系,且构造以事实为根的树型结构图。事实作为树的根结点,事实的属性作为维度是根结点的子女,属性之间是多对1的联系,并用DTD来描述。为了使DTD有效地描述事实模型的树型结构,啪也用树型结构图来表示。DTD图中的结点对应于元素和属性算子。图2给出的是学生成绩分析的雪花模型转换为以事实为根的DTD树型结构图和由此而定义出的DTD代码。我们把这个DTD叫作目的DTD,定义为DID且。当然,我们也完全可以用XMLSdmme来定义树型结构图。
 

 
图2 学生成绩分析事实模型的DTD树型结构图
3 对XML源实现ETL处理

    3.1 建立DTD源与DTD且之间的映射

    Internet上的XML源来自于各处,结构各不相同。即使描述的数据内容一致,也有可能出现结构不一致的情况。为了从XML源中抽取和摘录并生成与事实模型中的DTD定义相一致XML数据文档,可在XML源上建立视图,确定DTD源与DTD目之间的映射关系,就象模式与子模式的映射关系。映射可以通过XML的样式描述语言XSL来进行定义。XSL的主要功能之一就是转换XML文档的数据格式,将信息结构不同的XML源文档转化为DTD目定义的统一XML文档。因此,我们可以将students.xml文档转换为基于事实模型的符合DTD目的XML文档。并在此基础上进行OLAP处理。

    经XSL处理产生出与DTD目相关联的XML文档,该文档的对象模型DOM同用树型图表示为图3所示。
 
 
图3 XML的立档对象模型DOM


    3.2 从源DTD出发构造DTD目

    创建基于XML源的事实模型有时候我们可以直接从源DTD出发来构造DTD目,步骤是:

    (1)创建源DTD图形,用树型图表示DTD结构。
    (2)选择事实节点。
    (3)对每一个事实节点,从源DTD出发以事实为根,构造它的属性村。
    (4)确定维度和度量。
    (5)对以事实为根构造的属性树进行改进与完善。

    例如源XML文档的岫树型图表示为图4所示。选择mark节点作为事实,构造它的属性树,结果为图5所示。
 

图4 XML源文档的DTD树型图


图5 mark节点为事实的属性错


    构造以事实为根的属性树算法是:

    (1)以事实节点作为属性树的根节点F。

    (2)初始化:在源DTD树型图中将事实节点作为当前节点E。

    (3)从当前节点E出发,分别处理E的子女节点W和它的父节点Z。直到源DTD树型圈中的节点处理完,算法结束。

    ①如果W是元素或属性,就将W作为属性树当前节点的孩子。并以W作为新的当前节点E。返回第(3)步。
    ②如果Z是元素且不是文档根元素,就将Z作为属性树当前节点的孩子。井以z作为新的当前节点E。返回第(3)步。

    (4)确定维度和度量:维度是科subject、学生student,度量是成绩分数mark的值。

    (5)调整属性树,将表示维度的节点调整为根的子女。

    构造以事实为根的属性树结果如图6所示。该属性树等价为带有两个维度的星型模型。
 


图6 维度为科目、学生的属性树


    由于班级、专业、系同是学生的属性,且存在着多对1的依赖关系,因此,可将图6的属性树调整为图7(a)所示。若将班级上升为维度,产生的属性树如图7(b)所示。
 


图7 调整维层、维度产生的属性树4 基于XML事实模型的XOLAP处理

    OLAP的目的是为决策者提供多维数据分析。ROLAP采用星型或雪花结构的关系表存储数据,当维表与事实表连接后,得到的就是多维数据表。多维数据分析如:切片、钻取等操作实际上是把对多维表的查询转化为SQL查询,并通过SUN、AVG、MAX、MIN、COUNT函数完成聚合操作。

    基于XML源的事实模型是用DTD的树型图表示,而任何雪花结构都可以映射为17TD的树型结构,所以任何OLAP操作都可以转换到基于对XML文档的操作。上钻操作,可以被认为是从根节点到叶节点对XML树的遍历;下钻操作被认为是从叶节点到根节点对XML树的遍历;切片是得到XML树中的一棵子树;切块则是得到XML树中的多棵子树;旋转,是改变子树中节点的次序。

    对与DTD目相关联的XML文档进行OLAP操作,实质是对XML的文档进行XML-QL处理日,而无论文档是表达为文本或DOM节点的形式。XML-QL查询语句可以作为字符串嵌入到编程浯言或XML/HTML的属性中。其中,DOM提供了使用树状模型来解析XML文档,并提供了XML的编程接口。我们可以编写DOM应用程序,对XML文档中的元素进行遍历,XML中的元素都是树状模型中的一个节点,节点是可以访问和操作的对象。如果得到所有学生的某门课程的成绩,并按系、按专业、接班级的细节分类输出,我们可以定义符号输出格式的样式表单。

5 结 论

    我们探讨了如何建立基于XML源的事实模型,并在分析雪花结构完全与啪树型图等价的基础上,提出了用DTD树型图来描述事实模型的方法。DTD树型图中的父亲与子女节点之间的关系反映了事实模型中事实与维数、维表与维层之间的依赖关系。事实模式的复杂性依赖于DTD文档中元素的嵌套层次。

    近年来,由于XML在表示半结构化数据上的优势和在基于Internet上的信息交换所扮演的重要角色,如何建立基于XML源的数据仓库概念模型、逻辑模型以及存储模型将成为我们下一步研究的重点。
 

本文作者:何薇 刘奔 马圣超 来源: 万方数据
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的