admin 管理员组文章数量: 1086019
2024年4月20日发(作者:哈希表 字典)
第7卷第4期
2008年4月
软件导刊
SoftwareGuide
V01.7 NO.4
Apr.2008
XML文档和关系数据库数据模式中的概念比较分析
杨 鼓
(武汉软件工程职业学院,湖北武汉430205)
摘 要:可扩展标识语言(X/VlL)作为一种应用于不同组织之间进行网上信息和内部电子数据交换的描述性语言而
被广泛使用。由于数据库系统在实质上已经成为各种信息系统的基础,因此,XML和数据库系统相互间的融合就成
为了一种必然的趋势。而数据库系统又是建立在对信息的一致检索、存储基础上的,因此数据模型和模式的不一致
性必然为这种融合设置了障碍。在讨论了数据模型不一致性的基础上,对关系数据库系统和XML模式说明性语言中
有效的项目进行了对比。
关键词:XML:关系数据库;数据模式
中图分类号:TP311.13 文献标识码:A 文章编号:1672—7800(2008)04—0082—03
而相比较而言,如果使用XML作为主体,那么就只有一种
0 引言
如何将网站上往来的信息加以储存目前已经成为网络数
比较灵活的映射方法:由XML文档结构根据它们的模式说明书
映射成相对应的关系模式,这样才可能真正利用RDBS的特性,
据库系统开发中应该考虑和值得关注的问题。在这一背景下,
可扩展标记语言XML就有了其用武之地,它正在成为网页编辑
层次中的主流,并在网页的逻辑层次中占据重要地位。而将数
如校验机制、协同控制以及继承机制等。
目前的开发已经有了一定标准。不同的组织和设计者之间
也有了很好地沟通,在模式说明业已确定的情况下,不一致性
已经大大降低,至少是可以处理的。
据库应用于网站交互信息的存储也已经是不可阻挡的趋势,因
此如何将XML和数据库系统有机地结合起来就成为了值得研
究的问题。
本文将从客观的角度对XML DTD和XML模式涉及到的一
些概念和来自RDBS的概念进行比较,从而在概念上帮助读者
加以区分
将XML语言和数据库系统(DBMS)进行有机结合的意义是
显而易见的.但实际操作起来却比较复杂,其关键问题就在于
定义XML模式说明和关系模式间的映射时,如何解决数据模型
和模式一致性问题。
所谓的数据模型不一致性在这里是指:由XML和RDBS提
供的概念间存在的基本差异 ,而所谓的模式不一致性则是指:
即使XML模式说明和相对应的关系模式的讨论域相同,但只要
是不同的设计人员或组织——甚至是同一批设计人员在基于
1概念的比较
1.1名称的唯一性
关系的名称要求在整个关系模式中是唯一的,就像xML元
素类型的名称在DTD中是唯一的一样。XML允许元素类型通过
附以不同的名称空间前缀来使用相同的名称,而在DTD或XML
模式中定义的XML属性的名称则必须和它的元素类型统一,这
不同的工作目的下——相对独立地开发一个产品,就会有所不
同。
再次与RDBS属性名称相似,因为在RDBS中的属性名称必须在
自己的关系中统一。
因此,实际的工作中,既需要数据库开发和管理人员整合
DBS和XML两者的优点,也必须在二者对于数据的两类映射关
系上。选取其中一种作为基准,或是主要部分。
显而易见.从简单和务实的角度出发,用关系数据库系统
(RDBS)来存储XML文档是比较合适的。这样做的优势很明显,
例如:现有的技术很成熟,对在XML文档和关系中被定义和说
明的数据校验起来很安全,没有遗漏.甚至可以考虑将那些已
经存储于DBS中的继承数据应用于网络。
1.2构造和输入机制
各种用于标定XML文档结构和关系模式的基本元素,都是
XML的元素类型和属性以及RDBS的关系和属性。
关于元素类型,为了能够对它们讨论得更加清晰,这里要
作一个详细地比较:
(1)只有原子元素类型和具有混合内容的复合元素类型才
包含原子域:
(2)具有元素内容的复合元素类型和空元素类型不包含原
作者简介:杨威(1981~),男,湖北武汉人,华中师范大学硕士研究生,武汉软件工程职业学院软件系助教,研究方向为信息安全。
第4期 杨威:XML文档和关系数据库数据模式中的概念比较分析 ・83・
子域:
(3)不论是具有混合内容额复合元素类型,还是具有元素
内容的复合元素类型,都包含复合域:
(4)原子元素类型和空元素类型不包含复合域;
(5)那些仅仅只包含原子领域的元素类型被称为原子元素
类型。
在DTD元素类型中,只有一种预定义原子域,即#PCDA.
TA,它与那些在其值中含有标记的CDATA不同,而是由XML分
析程序负责解释的。为DTD属性而设的预定义原子域包含了一
种字符串类、一种枚举类以及一些特殊类型。比如ID和IDREF。
与DTD形成对比的是.XML模式为原子类型和属性二者提
供了一个很大范围的预定义原子域集合。这些预定义原子域还
包含了一些特殊的、比如用于找寻全球资源的uriReference和用
于在名称前标定名称空间前缀的Qnamc(限用名)。XML模式允
许以原子域作为基础导出用户自定义的原子域。
考虑到复合元素类型的定义,则在DTD和XML模式间有一
个很突出的区别:XML模式从复合域声明中分化出复合元素类
型的定义,并标记出组合元素类型。例1举例说明了复合元素类
型student的定义以及复合域studentInfo的说明。值得注意的是,
XML模式使用了关键 ̄3complexType13)(声明复合域。
例1:
1 DTD
<! ELEMENT Student
(name,class,department )>
<!ELEMENT name f#PCDATA)>
<!ELEMENT class(#PCDATA)>
<!ELEMENT department r#PCDATA)>
2 XML模式说明
<complexType name=”StudentInfo”>
<Sequence>
<element name=”name”type=’’string”minOccurs=”1”max-
Occurs=”1”/>
<element name=”class”type=”stirng”minOccurs=”1”max-
Occurs=”1”/>
<element name=”department”type=”string”minOccurs=”0”
max0CCUrs=”unbounded”/>
</Sequence>
</complexType>
<element name=”student”type=”studentInfo”minOccurs=”0”
maxOccurs=””unbounded”/>
3 XML文档
<student>
<name>Fred</name>
<class>Computer O01</class>
<department>Class Head</department>
<department>Class Location</department>
<department>Class Team</department>
/<student>
最后要说明的是,每一种元素类型都可以包含XML属性.
不论是原子型、复合型还是空型。
1.3标识
除了DTD概念标识符外,XML模式不仅允许属性,还允许
任意原子类型的元素类型以及其合成物像键一样工作。RDBS
中的标定范围是一种单一的关系,而在DTD中,标定范围则在
某一意义上更广泛:标识符属性值在整个XML文档中是唯一
的。这里还是继续上面的例子。
例2:
1 DTD
<!ELENENT seLf[nfo
(accommodation+)>
<!ATTLIST selflnfo
ID ID
#REQUIRED>
2 XML模式
<element name=”selfInfo”>
<complexType>・・・</complexType>
<key name=”PK”>
<selector xpath=”selfInfo”,>
<field xpath=”@ID”,>
</key>
/<element>
3 XML文档
<selflnfo ID=”computer0001”>…</selfInfo>
1.4顺序
与RDBS中的关系和字节组相对,XML文档中的元素类型
和元素既有显性顺序,又有隐性顺序。元素类型的顺序可以在
DTD中通过使用顺序操作符 , 显性定义,而XML模式则使用元
素类sequence。例1中展示的例子就显示了一个student类型的
元素以指明的顺序包含了以下三个组分元素类型。例 ̄name
首先出现,其次 ̄class,然后才: ̄department。department类型作
为student类型的组分元素可以显示出与作为sellfnfo类型的组
分元素的区别。一个隐含顺序不仅涉及相同元素类型的元素。
也还涉及了不同元素类型的元素,如例3所述。
例3:
l DTD
<!ELEMENT village(departmentI Confiteor) >
2 XML文档
<village>
<Confiteor>Super Coffee</Confiteor>
<department>Class Head</department>
<department>Class Location</department>
<Confiteor>Zen</Co ̄fiteor>
<department>Class Team</department>
・
84・
</village>
软件导刊 2008钲
属性涉及到它们的强制性,其中前者是单值性的,而后者是多
值性的。与RDBS相对,它们参与的字节组被强制缚于参与的关
系中,而使用IDREF(S)时参与的元素则不能被强制缚于某个元
素类型中。
XML模式支持一种“涉键”概念,其于RDBS中的外键概念
相类似.意思是某个元素/属性组合涉及到对应成键的元素/属
性组合。但与DTD不同,关系的参与是通过包含键的元素类型
实现的。对于通过标定组分元素类型来识别的关系,组分元素
类型的强制可以是已涉及的任意值。更进一步看,使用DTD时
参与的元素可能不仅仅是被要求的组分元素,还可能也是从这
些组分元素中分离出来的元素。
除了以上概念以外.XML模式还允许依靠元素类型ALL
(见例4)显性定义一个复合元素类型中的无序的组分元素类型
的出现顺序。
例4:
XM 式
<complexType name=’’Studentlnfo”>
<Sequence>
<element name=”name”type=”string”minOccurs=”1”max—
Occurs=”1”,>
<element name=”class”type=”string”minOccurs=”1”max-
OCCUrs=”1”/>
<element name=”department”type=”string”minOccurs=”0”
maxOceurs=”unbounded”/>
</Sequence>
</complexType>
2结束语
本文对于关系数据库和XML间的数据模式不一致性问题
进行了比较细致的分析。在这一分析的基础上,笔者认为XML
<element name=”student”type=”studentlnfo”minOccurs=”0 ’
和关系数据库的融合还是有希望的,并建议可以用软件开发一
种“过渡机制”。
参考文献:
maxOccurs=””unbounded”/>
1.5关系
在RDBS中,关系可以依靠外键在关系间表达,关系的字节
[1] 萨师煊,王珊著.数据库系统概论(第三版)[M1.北京:高等教育出
版社.2000.
组的数量则可以通过定义诸 ̄I3NOT NULL、UNIQUE以及‘/’之
类的外键来约束。
DTD允许在元素类型间用任意方法来标定关系,包括在
[2] 严蔚敏,吴伟民.数据结构[M].北京:清华大学出版社,2001.
[3] 吴洁.XML应用教程[M].北京:北京大学出版社,2005.
[4] [美]Peter G Aitken.微软XML技术指南[M].北京:中国电力出版
社.20o3.
IDREF(S)属性和组分元素类型中。IDREF(S)类型的属性表现
为一种涉及类型标识符的属性的外键。IDREF属性和IDREFS
(责任编辑:赵峰)
Conceptual Analysis of Data Schema Combining XML Document and
Relational Database
Abstract:The Extensible Markup Language(XML)is widely applied as date descriptive language for on-web information and outer data
exchange.As the case stands,the database systems are now the trunk of most information systems,the combination of database systems
nd XML abecomes a seeing wind.However,the Database systems are sharply based on the capabilities of consistent searching and storing.
The heterogeneity of Data model and schema gives the combination herein a considerable drawback.On the basis of discussion of the
heterogeneity of the data model,the paper makes comparisons of certain serviceable basic items in RDBS and XML.
Key Words:XML;Data Schema:DBMS ‘
版权声明:本文标题:XML文档和关系数据库数据模式中的概念比较分析 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1713605449a642974.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论