论文导读:例如在对关系模式描述时。图:模式转换1。的特点。本文将着重考虑EER模式到DDT之间的转换。EER模型中超类/子类到XML模式的转换研究。
关键词:关系模式,XMLschema,模式转换,EER,DDT
0 引言
XML是Extensible Markup Language(可扩展的置标语言)的缩写,是W3C组织于1998年2月发布的标准。XML源于SGML(Standard forGeneral Markup Language,简称SGML),是SGML的一个简化版本。20世纪90年代中期以来,XML以其丰富的语义和灵活的结构逐渐成为网络环境下数据交换的标准[4]。现今由于关系数据库的优势,其任被广泛应用,如何把关系数据库中的数据转换成XML以实现在网络上的传输已成为一研究热点。本文从EER模型出发给出了一种实现无损语义转换的方法。
1 EER的特点
实体联系模型( Entity-Relationship model ) 是P.P.S.Chen 于1976 年提出的,它适用于大多数一般的商业问题,而且至今仍然广泛使用。但现今的商业环境商业关系的复杂化导致了商业数据更加复杂,为了应付这些变化,研究人员对ER模型进行了改进,提出了增强型实体-联系(Enhanced Entity-Relationship,EER)模型。该模型更能准确地描述当前商业环境中的复杂数据。EER模型由ER模型基础上增加语义表达形成的。主要的代表有两个: ①D.R.Howe 为了增加ER 模型中实间联系的语义,引进了“属性类”的概念。②T.J.Teorey和T.P.Fry等人进一步扩充ER 图,采用不同的图记号来表示ER图的语义,并且在ER 图中还增加了进行“数据抽象”的“归纳”层次图示法[1][2]。
1.1 超类/子类
EER模型中包含的最重要的建模产品是超类型/子类型。它简化了对一般实体型(称为超类型)的建模,然后将其划分成一些具体的实体类型(称为子类型)。每个子类型继承超类型的属性,并且可以增加自己的特殊属性。一个子类型是组织中有效的实体型中的实体的子集,它享有公共属性或关系,同时又与其他子集相区别。超类与子类之间的关系称为联系。引入超类/子类基于两个原因: 一是某些实体可能具有某些特殊属性而其他实体不具有这些属性, 子类把一个实体型中具有特殊的各类实体加以明确区分, 每个子类共享超类属性又具有自己的特殊属性; 二是某些联系型可能只能关联一个实体型的某个子类的实体,有了子类便于这样的关联实现。
超类/子类有两个性质: 首先是子类与超类之间具有继承性。其次是这种继承性是通过子类实体和超类实体有相同的实体标识符实现[2][3]。超类/子类的概念引入ER模型能带来两个好处。第一,避免了对相似概念进行重复的描述,使ER图具有更好的可读性。第二,为设计添加了更多的语义信息,能传递更多有意义的语义内容。
2.2. 概化/特化
概化( Generalization) /特化( Specialization) 是EER模型的主要概念,它与超类/子类及其继承有关。论文检测,DDT。概化是一个在比较具体的实体类型集合中抽象出一个比较概括的实体类型的过程,是自底向上的。论文检测,DDT。与概化相反,特化是一个自顶向下的过程,是定义一个或多个属于超类型的子类型,并建立超类型/子类型之间联系的过程[3][4][5]。
2.3.超类型/子类型联系中的约束
在超类型/子类型联系中的约束有两个重要的类型约束。分别是完全性约束和非重叠性约束。
完全性约束是指一个属于某一超类型的实例是否必须至少是一个子类型的实例。非重叠型约束是指一个属于某一超类型的实例是否可以同时属于两个或两个以上的子类型。
3 XML模式
当 XML(扩展标记语言)于1998 年2月被引入软件工业界时,它给整个行业带来了一场风暴。有史以来第一次,这个世界拥有了一种用来结构化文档和数据的通用且适应性强的格式,它不仅仅可以用于 WEB,而且可以被用于任何地方[5]。
XML已成为Internet上用来表示和交换数据的标准,XML标记能够自我描述,可以定义新的标记和属性。XML模式是指用来描述XML结构、约束等因素的语言,例如XML Schema、XML DTD、XDR,SOX等等。XML格式则是XML文档本身所具有的格式。从模式的描述语言来说,XMLSchema和XML DTD都属于语法模式。与概念模式不同,语法模式在对同一事物描述时,可以采用不同的语法,例如在对关系模式描述时,无论是使用XML Schema还是XMLDTD,都既可以用元素也可以用属性来描述关系模式的列。
关于XML模式之间的比较和特点请看文献[5]。本文将着重考虑EER模式到DDT之间的转换。论文检测,DDT。论文检测,DDT。
4 转换方法
4.1 超类/子类到XML
超类/子类定义了子实体和超实体之间的关系。论文检测,DDT。在模式映射到DTD中,把每一个子实体映射成DTD中的子元素,而超实体映射成父元素,每个父元素可以有零个或多个子元素。论文检测,DDT。

关系模式DTD
A(A1,A2)B(*A1,B2) <!ELEMENTA (B)?>
<!ATTLIST A
A1 CDATA #REQUIRED
A2 CDATA #REQUIRED>
<!ELEMENT B EMPTY>
<!ATTLIST B
B1 CDATA #REQUIRED>
图:模式转换1
4.2 概化、特化的模式转换
概化描述了实体之间的联系,将多个实体所共有的“一般化”属性提取出来形成一个新的实体,也就是这些具有共同特性的实体的超类或超类。在DTD中我们把这个“一般化”的超类提取出来映射成一个元素,而子类就映射成相应的子元素。如图2,图3。.
非重叠模式转换
在模式映射到DTD中,把每一个子实体映射成DTD中的子元素,而超实体映射成父元素,每个父元素只能允许拥有一个子元素。

关系模式DTD
A(A1,A2)B(*A1,B2)C(*A1,C1) <!ELEMENTA (B|C)>
<!ATTLIST A
A1 CDATA#REQUIRED
A2 CDATA#REQUIRED>
<!ELEMENT B EMPTY>
<!ATTLIST B
B1 CDATA#REQUIRED>
<!ELEMENT C EMPTY>
<!ATTLIST C
C1 CDATA#REQUIRED>
图:模式转换2
重叠模式转换
在模式映射到DTD中,把每一个子实体映射成DTD中的子元素,而超实体映射成父元素,每个父元素允许拥有零个或多个子元素。

关系模式DTD
A(A1,A2)B(*A1,B2) C(*A1,C1) <!ELEMENT A (B?,|C?)>
<!ATTLIST A
A1 CDATA #REQUIRED
A2 CDATA #REQUIRED>
<!ELEMENT B EMPTY>
<!ATTLIST B
B1 CDATA #REQUIRED>
<!ELEMENT C EMPTY>
<!ATTLIST C
C1 CDATA #REQUIRED>
图:模式转换3
分类转换
子类是超类间的并集的子集,也就是子类中的数据只能且只能出现在一个超类之中。在模式映射到DTD中,把超类映射成元素,超类间共同的子类映射成同层次的元素。元素间通过ID与IDREF实现相应的联系。

关系模式DTD
B(A1,A2)C(*A1,B2)A(*A1,C1) <!ELEMENTB EMPTY>
<!ATTLIST B
B1 CDATA#REQUIRED
id ID#REQUIRED>
<!ELEMENT A EMPTY>
<!ATTLIST A
A1 CDATA#REQUIRED
A2 CDATA#REQUIRED
idref IDREF#REQUIRED>
<!ELEMENT C EMPTY>
<!ATTLIST C
C1 CDATA #REQUIRED
id ID#REQUIRED>
结论
根据上述方法,能实现EER模型到XML模式的转换,在转换过程中利用DTD的特点保持了EER中语义约束,达到了无损语义转换。
参考文献:
[1]吴扬扬,陈锻生.一个基于XML的Web信息源集成方案[J].计算机工程与应用,2001(1o):34—37.
[2]吴爱华,刘小玲,王洪,等.基于混合映射的XML数据的关系存储和查询[J].郑州大学学报:理学版,2007,39(2):157—
16O.
|