本站首页    管理页面    写新日志    退出

The Neurotic Fishbowl

[/*FreeComments*/][转]XML数据的概念建模: 方法和工具
nybon 发表于 2005/2/1 23:24:48

  XML数据的概念建模: 方法和工具 500)this.width=500'> 500)this.width=500'> 500)this.width=500'> 500)this.width=500'> 500)this.width=500'> 500)this.width=500'> 500)this.width=500'> 500)this.width=500'> 内容: 500)this.width=500'> 引言 500)this.width=500'> 1. 关于 XML 的建模 500)this.width=500'> 2. 进行 XML 概念建模的一般性问题 500)this.width=500'> 3. 三种解决方案 500)this.width=500'> 4. 总结及引申 500)this.width=500'> 参考资料 500)this.width=500'> 500)this.width=500'> 关于作者 500)this.width=500'> 对本文的评价 500)this.width=500'> 500)this.width=500'> 订阅: 500)this.width=500'> developerWorks 时事通讯 500)this.width=500'> developerWorks 订阅(订阅CD 和下载) 500)this.width=500'> 500)this.width=500'> 500)this.width=500'> 500)this.width=500'> 李霞 (joylee4u@yahoo.com.cn) 在读研究生, 武汉理工大学计算机科学与技术学院2005 年 1 月 随着XML应用开发的深入,我们需要一种统一的建模方法来针对不同的应用为 XML 数据进行概念建模。本文概览了当前处理 XML 概念建模问题的几种方法及工具,了解这些方法将为我们对实际XML应用建模提供很好的思路。 引言XML 技术是互联网下一个发展阶段的关键技术,它已成为互联网上表现结构化和半结构化数据的标准格式和数据交换的主要标准。在这种背景下,把 XML 作为一种数据库模型并从中提取信息在数据库领域逐渐受到注意。而且,XML 技术和关系数据库技术的融合能使数据更通用,能被异构系统接受,因此成为很自然的趋势。大量的 XML 文档由于不同应用之间交换数据而临时产生,而且也存在像数据库一样需要系统可靠地管理永久性 XML 数据的需要。为此,已经有许多的研究工作致力于融合 XML 应用和关系数据库。同样,参照关系数据库设计与建模的成功经验,我们也需要一种统一的建模方法学来针对不同的应用为 XML 数据进行建模。 1. 关于 XML 的建模提到 XML,我们自然会想到它的半结构化特征。XML 是典型的树形结构,然而这种结构既然包含了元数据和数据,目的是为了能让机器更好的理解,它的物理表现也就不那么直接的利于人的理解。其定义语言的文本描述形式阅读和理解起来都有不便,因此我们需要可视化和标准化的设计方法和工具。比如利用现有的一些工具,如 XML SPY,可以通过设计更直观的图形结构来生成物理的 XML Schema/DTD (参见图1)。这样使得设计方便一些了,但是,这仍然没有脱离实现,而更好的关注应用领域。因此,我们需要更高层的概念模型来指导对 XML 数据结构的设计。 图1 XML Spy 绘制的 Schema 结构图500)this.width=500'> 目前常用的描述 XML 数据结构和内容的文档定义语言主要有 DTD 和 XML Schema。作为 W3C 的推荐标准,XML Schema 虽然在确认 XML 文档上非常有用,但它并不能胜任需要理解所表现数据的语义的任务。而且,直接由 XML Schema 来定义 XML 文档结构的设计方法是以 XML 为中心的,这样过早的陷于底层的实现结构了,而好的设计应该以应用为中心。为了让设计者站在一个更高的角度,从更抽象的层面去关注应用领域,最好使用概念模型。 数据库设计是数据库应用的基础和主要内容。关系数据库的设计方法学经过长期的发展已经非常成熟,它对我们设计 XML 数据库提供了很好的借鉴作用和指导意义。回顾关系数据库的建模,我们知道,传统的关系数据库的设计方法大致如下:关系数据库的建模应该先从一个特定的应用领域分析入手,进行概念建模( Conceptual Modeling ),得到概念模型(即 ER 模型),然后,将 ER 模型转换为关系模型,即逻辑模型,再生成物理模型,即实际存储的物理表结构。 而概念模型的设计是整个设计过程中一个相当重要的步骤,因为它独立于最终的开发平台和实现环境。对于不熟悉底层实现细节的用户来说,概念模型是一种容易理解、方便使用的表示形式,如数据库设计中的 ER 图、软件开发中的数据流图( DFD )、面向对象设计中的 UML 图等。同时,一个好的概念模型的设计也会为其逻辑、物理模型的设计提供了一个良好的基础。 2. 进行 XML 概念建模的一般性问题上面我们强调了为 XML 进行概念建模的必要性,那么,这种概念模型必须要能满足 XML不同于关系数据的全新特性。很明显,XML的结构与传统的结构化数据模型存在着一些差异,因此目前尚没有一种合适的机制来生成和描述 XML 的概念模型。 XML 语言的半结构化特征给 XML 建模带来了一些细节性问题,这里以 XML Schema 为标准,由于其强大的定义功能和灵活性,给模型的抽象带来了困难。比如,XML 文档的内容是有序的,不同元素之间有特定的顺序;一个元素可由其它子元素构成,子元素有顺序和可变的数目等;一个文档的模式可能是简单的,也可能是复杂的嵌套结构;由于其半结构化的特性,XML 不能直接支持多对多的关系;XML Schema 中会涉及到不同的类型,比如简单类型和复杂类型,元素的不同实例又可能会有不同的结构;单个元素的结构也会很复杂,元素可能会含有子元素,再加上可选、必选和多值等特性,增加了其结构的复杂性;XML 文档中的元素还会包含混合内容,比如具备原子性和不具原子性的值;XML 具有的名称空间这样的特性增加了建模的复杂性,要支持它比较困难。 总之,由于 XML 数据具有关系模型不能直接表示的半结构化特征,而且相对于关系模型,XML Schema 描述的文档结构可以十分复杂和自由,所以试图用一种模型来支持 XML Schema 的所有特性,这在当前还有一定困难。 3. 三种解决方案目前已有的 XML 概念建模的解决方案主要有3种:一种是采用 UML 来设计 XML 模式,另一种则基于扩展 ER 模型,我们暂且称之为 XER,它即是用支持 XML 特性的扩展 ER 模型来为 XML Schema 建模。还有一种办法则是另起炉灶,它是一套全新的专门针对 XML 的建模方法:AOM( Asset Oriented Modeling )方法。 3.1 UML作为较早出现的一种解决方案,UML 能为设计 XML 标准词汇( vocabulary )提供帮助[1]。下面的图2就是一个最简单的 UML 类图,它为 XML Schema 的一个 Book 实体描述了概念模型。类 Book 含有图示的3个属性,类的属性名后的[ ]中表示的是该属性出现的次数。本例中的[1..* ]就表示一本书可以有一到多个作者。 图2 Book 的 UML 模型500)this.width=500'> 由于本文关注的是概念建模,这里只简要介绍使用 UML 为 XML Schema 进行三层建模的方法,具体实现过程可以参考后面的资料[1,2]。利用 UML 建模的过程分为三个部分:利用 UML 的类图进行概念建模、使用 UML Profile 进行逻辑建模、利用 UML Profile 到 XML Schema 的自动映射实现物理建模,即将 UML 模型转化成 XML Schema 了。由于 UML 使用 Profile 作为扩展机制,它就容易适应某些特定的领域。通过 Profile,用户针对 XML Schema 可以定义和使用自己的元素。这就允许用户能针对 XML 的特性来改进和扩展 UML 的描述能力。 从这个简单例子,我们可以看出,这里 Book 的属性看不出顺序之分,但在 XML Schema中,排序却是重要的特性, 要使 UML 支持它需要一些技巧。而且,在此 UML 图中也不能明显区分元素和属性。结合实际,假如再给 Book 添加一个自定义为复杂类型的 Chapter 元素,UML 默认的数据类型也不支持,UML 的表达中还需要引入新实体和联系。另外,UML 还缺乏针对 XML 的一些重要概念,如:名称空间、键等。 可见,UML 无法涵盖 XML Schema 所提供的全部功能和丰富内容,对 XML 的建模细节处理得不完整。但是,在 XML 模式设计领域,如能适当地扩展 UML Profile,将弥补基本 UML 模型中的差距。 至于用 UML 来设计 XML 模式的实现工具,常见的画 UML 图的工具基本都能胜任,但是必须结合 XML 的需求对 Profile 进行必要的扩展。比如 IBM 的 Rational Rose,另外流行的 Eclipse 平台上也有众多的可视化建模插件,典型的如:EMF,hyperModel 等。 3.2 XERXER 是一种以 ER 模型为基础的支持 XML 可视化概念建模的方法[3]。由于它基于扩展的 ER 模型,参照 ER 的组成部分,这种 XER 的组成部分也包括实体和联系等。具体来说,结合 XML 的特性,XER 的实体包括有序实体、无序实体、混合实体;XER 联系则与 XML Schema 中元素的 minOccurs、maxOccurs 取值有关;另外 XER 也支持泛化、聚合等概念。可以用代表不同 XML 特征的图元来表示这些概念。仍以有序实体 Book 为例子,下面的图3、前文的图1和清单1展示了使用 XER 为Book 的 XML Schema 进行建模的三层模型,分别是概念模型、逻辑模型、物理模型。其中图1是用 XML Spy 绘制的相应 Schema 结构图,它表述了 Book 实体的逻辑层模型。清单1 Book 实体对应的 XML Schema-物理层 <xs:element name="BOOK"> <xs:complexType> <xs:sequence> <xs:element name="title" /> <xs:element name="author" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Chapter" minOccurs="1" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="title"/> <xs:element name="abstract"/> <xs:element name="section" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="chapno" type="xs:ID"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="isbn" type="xs:ID"/> </xs:complexType> </xs:element> 图3 XER 关系图-概念层500)this.width=500'> 本例中,在由 XER 表达的概念模型图3中,Book 是一个复杂类型,它包含一个为复杂类型的 Chapter 元素,这里的 XER 联系的两端表达了这样的关系:一个 Book 包含一到多个 Chapter(1:M),而每一个 Chapter 都属于一个 Book(1:1)。我们可以看到,由于 XER 在原 ER 的图元上加入很多新特性,增强了 ER 基本图元的描述能力,能更好的支持对 XML Schema 的表达,它比 UML 的表达能力更丰富一些,比如图3中对排序、区分元素与属性和对键的支持。 使用 XER 方法的实现工具可以是 Visio,PowerDesigner 等能绘制 ER 模型的工具,但由于 XER 引入了新的图元,也需要对这些建模工具的图元进行扩展。目前,PowerDesigner 也提供了基于 Eclipse 的插件版本[4],以利于扩展。 3.3 AOM 方法Assert Oriented Modeling 是一种全新的建模方法[5]。它的特点是表达能力强、图形简洁和模块化。虽然提出的时间较短,但发展很快,已基本形成了自己的体系。在 AOM 方法中,引入了一个重要概念 Asset,用它来统一表示关系数据库中严格区分的实体和联系,即实体和联系都用 Asset 来表示。联系则用弧表示。它同样也定义了一系列自己的图元,以支持 XML 的特性,包括刚提到的 Asset、弧等基本图元,还支持属性、注释、约束、键、操作等概念,AOM 模型还区分层次,支持命名空间。这里给出它的一个简单图例,足以显示它较强的表达能力。 图4 AOM 模型图例500)this.width=500'> AOM 不仅有自己的理论,还有配套的图形化建模工具 KLEEN[5]。KLEEN 已被实现为 Eclipse 平台上的一个插件,它支持基于 Asset 的模型的创建及确认,并能从概念模型生成代码。它能从 http://www.aomodeling.org 下载得到。目前 KLEEN 的最新版本是0.9.7。 3.4 比较与评价目前三种建模方法都处在研究之中。比较而言,UML 的优点是能够较为容易地创建模型,图形简洁明了,并且能确保模型的一致性,利于 Schema 的复用。但是,UML 省略了很多底层的细节,其中某些是 XML 的重要特性,因此不够友好。XER 根据 XML 的特征对 ER 进行了合适扩展,用它来为 XML Schema 进行概念建模更适合有传统数据库设计背景的用户。但 XER 暂时还不支持 XML 的名称空间。 AOM 则可以说是一种为 XML 度身订做的建模方法,且更加开放。AOM 的出现是由于传统建模方法难以处理日益复杂的数据模型:基于 ER 建模的方法毕竟更适合结构化数据;而概念建模对于以面向对象的数据模型为基础的 UML 来说显得过于复杂,它欠缺数据库建模的一些重要概念,比如键。当然相比之下,AOM 方法不如前两者成熟,有丰富的经验可以借鉴,相对来说它的资料和技术支持都还有不足。 在工具方面,我们发现这样的趋势,可视化工具都趋向于做成 Eclipse 平台的插件,更加的开放和可扩展。 4. 总结及引申以上我们谈的是 XML 文档的概念建模,也可以考虑将上面的几种方法引申到 XML数据库的概念建模上。借鉴关系数据库的经验,对于 XML 也有可能集成子模式,得到总体概念模式-XML 数据库模式。并且,设计 XML 模式和 XML 数据库的模式的工作也可灵活选择,可以采用自顶向下或自底向上的方法。但数据库模式将会在更抽象的层次上提供一个集成化的全局外部模式。由于同一个数据库概念模式会产生许多不同的 XML Schema,所以 XML 数据库模式更利于用户理解总体上的概念模式。 并且随着关于 XML 新的研究的开展,我们感到,在 XML 建模方面还有融合领域本体的可能性和趋势。同时,不管选择以上三种方法中的哪一种,概念建模仅仅是第一步,我们还需要考虑从 XML Schema(DTD)到其概念模型之间的双向映射算法即自动转换问题,这是得到实用设计工具的必备工作。实际上,由于 XML Schema 的复杂性,这样的转换工作有一定难度。 综上所述,我们纵览了当前处理 XML 概念建模问题的几种方法及工具,旨在抛砖引玉。其实围绕 XML 的三层建模过程还有很多细节问题,而且目前三种解决方案都还未稳定,但是了解这些方法将为我们对 XML 应用建模甚至设计自己的概念模型提供很好的思路,利于指导实际 XML 应用的设计工作。 参考资料 Carlson D,Modeling XML Vocabularies with UML(Part I、II、III),http://www.xmlmodeling.com,2001 IBM developerWorks 中国网站,Benoit Marchal的UML建模系列文章:使用 XML:UML、XMI 和代码生成 (共四部分), http://www-900.ibm.com/developerWorks/cn/xml/x-wxxm23/ Arijit Sengupta, Sriram Mohan, Rahul Doshi. XER-Extensible Entity Relationship Modeling,http://www.idealliance.org/proceedings/xml03,2003 PowerDesigner 11 beta Online Documentation http://www.aomodeling.org 关于作者李霞, 武汉理工大学计算机科学与技术学院,武汉,430063。E-mail:joylee4u@yahoo.com.cn,研究兴趣:XML与数据库、数据建模、工作流系统等

阅读全文(3554) | 回复(1) | 编辑 | 精华

 


回复:[转]XML数据的概念建模: 方法和工具
zmhhxl发表评论于2005/2/16 18:36:15

IE的新开发界面工具可同xml数据交换吗,请安装我网站上的网络收藏夹看看

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除

 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)

 
 



The Neurotic Fishbowl

.: 公告

This blog focuses on:

Semantic Web && Java Technology


Bloginess

«October 2025»
1234
567891011
12131415161718
19202122232425
262728293031

.: 我的分类(专题)

首页(171)
/*SemanticWeb*/(34)
/*Java*/(74)
/*FreeComments*/(59)
/*Agent*/(4)


In the Bowl

.: 最新日志

The End
使用Google Trends进行选型
怎样才能称为一次新的版本发行?
如何防止RSS信息过载
使用Excel作为用户接口
如何有效地报告Bug
sourceforge再次被封
趣文两篇
编写Firefox扩展
Jetspeed心得随笔


.: 最新回复

回复:Google API与yahoo 
回复:JADE 3.3的bug
回复:JADE 3.3的bug
回复:JADE 3.3的bug
回复:JADE 3.3的bug
回复:Jbpm和Shark比较的feat
回复:JADE 3.3的bug
回复:JADE 3.3的bug
回复:[转]批判性地看待一种可行的表示技
回复:JIRA破解


The Fishkeeper
blog名称:SW Portal
日志总数:171
评论数量:219
留言数量:8
访问次数:1051478
建立时间:2004年10月30日



Text Me

.: 留言板

签写新留言

路过
路过
页脚问题
RE:请问一下你的主页的下面部分是怎么关
请问一下你的主页的下面部分是怎么关闭的?
我是做Mobile Agent的
Gmail
不错
不错啊小倪同学


Other Fish in the Sea

.: 链接





站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.613 second(s), page refreshed 144798215 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号