文档关系

2024-05-01

文档关系(精选六篇)

文档关系 篇1

XML文档具有的可扩展性、自描述性、跨平台,以及强大的数据描述能力和简便的数据交换能力,使其在因特网上的快速发展,已促使其成为因特网普遍采纳的标准。但是,目前因特网上大量数据仍存在于占主导地位的数据库中,而数据库系统强大的数据操作和处理能力更是XML文档所不能及的。如何统一数据库系统强大的数据操纵能力以及XML强大的数据表达能力,从XML数据源中提取数据保存到数据库中,就成了一项极具实际意义的研究课题。如何将XML文档映射为关系模型数据就是其研究的重点[[1]]。

目前,关于XML文档映射为关系模型数据研究大多采用DTD作为XML的模式描述语言,由于DTD本身缺乏对XML文档的内容及其语义的约束机制,特别是对数据类型的弱支持,在模式映射过程中不可避免将丢失语义约束信息。XML Schema的出现正好解决了以上问题,XML Schema采用与DTD完全不同的语法,数据描述能力更强,同时也更为复杂,已逐渐为替代DTD作为XML模式描述语言的标准。

1 XML Schema与DTD

XML Schema是一些规则的集合(也称为语法或者语汇),其中包括了类型定义(简单和复杂类型)以及元素和属性声明。与己经广泛使用的DTD相比较,它是在原有的XML DTD的基础上增加了数据类型、组和属性组等内容基础上的、更高级的XML文档。

XML Schema提供了更多的内建数据类型,并支持用户对数据类型的扩展,基本上满足了关系在数据描述上的需要,这一点是XML Schema优于DTD的主要原因。首先,XML Schema具有45个内部类型。其中包括19个基本类型和25个继承类型,还有一个抽象基类数据类型Anytype。其次,XML Schema支持用户自定义的数据类型,用户可以对已存在的简单数据类型进行约束,得到新的简单类型;对复杂类型进行扩展或约束,得到新的复杂类型;可由Anytype生成新的复杂类型,从多个简单类型封装生成复杂类型。最后,XML Schema支持多方面数据类型约束及缺省值。通过等价数据类型直接映射和相似数据类型的规则限定,XML Schema基本上满足了对各种DBMS的内部数据结构的支持[2]。

尽管XML Schema的语法结构远比DTD复杂,但其优越的数据描叙能力更大地满足了各领域应用的需要。所以,XML Schema取代DTD己成为一种趋势。本文在基于结构、约束保持及语义保持等方面对映射规则进行研究的基础上,提出一系列基于XML Schema的映射规则,以期建立XML文档与关系数据模型数据间的关联。

2 XML Schema到关系模式的映射

所谓映射(mapping)是指建立两个模型(或模型实例)的元素之间的对应关系。关系模型由以下三部分组成:关系数据结构、关系操作、数据完整性。其中关系操作主要包括查询、增加、删除和修改操作,不在本文讨论范围。本文主要从关系数据结构和数据完整性两方面来讨论Schema与关系数据模型间的映射规则。

2.1 关系数据结构映射

关系数据结构映射目标是把给定的关系模式中定义的组件(表、列、主键、关联、对象、集合等)映射为XML文档中的相关组件(元素、元素属性、元素间的层次关系等)。

在XML与关系模式对应的映射上有如下规则:

规则1(XML到关系模式映射规则):对每一个type属性为XML Schema定义的ComplexType类型元素映射成一个基本表(即关系模式),该元素名映射为基本表表名;其每一个非ComplexType类型子元素映射成表中基本属性,每一个形成的基本表的key类型属性映射为主键;每一个ComplexType类型子元素映射成基本表,让子元素映射的表具有父元素映射表的主属性(即外键)。

如以下XML Schema定义,例一:

按照规则1我们会得到如下关系模式:学生表(学号、院系号、姓名),课程表(课程号、课程名),选课表(选课号、学号、成绩),院系(院系号、院名)。注意,现在例一中的“学生”,“选课”信息是不完全的,在下面我们将继续进行讨论。

规则2(关系模式到XML映射规则):每个表映射成XML文档中的一个ComplexType元素,表中的属性映射成该元素的子元素,将主键声明为key属性;具有外键的表所映射的元素作为以该外键为关键字的表所映射成的元素的ComplexType子元素,外键一般不映射为该表属性。

按规则2,可以把由以上示例映射出的四个关系模式等价映射成XML文档。即说两者在结构上是一致的,而且在语意表达上也是一致的,满足了映射的要求,达到了映射的目的。

2.1.1 一对一、一对多的联系

目前对于一对一联系关系模式到XML映射可以分为两种:一是把具有一一对应关系的信息组合在一起进行描述,在XML文档中把具有一对一联系的子元素信息复合到其父元素中映射为一个元素;或者按规则2映射为具有父子关系的两个ComplexType元素。

由于根据ER模型到数据库转换规则,一对一联系一般归并为一个基本表,需要对一对一联系进行映射的情况很少出现;其次,一对一、一对多联系具有相似性,可以通过minOccurs、maxOccurs进行标记;最后,按照规则2映射可以归并映射规则,简化操作。虽然按规则2映射会造成XML文档过于破碎,但是相对于复合映射,规则2更简洁、有效;反之,规则1对于XML到关系模式映射亦然。

以例一的XML Schema为例,“院系”和“学生表”,显然,院系信息与学生信息之间具有一对多联系。按规则1“院系”和“学生”元素映射到关系数据模型中可以得到两个关系模式:

院系(院系号、院名)

学生(学号、院系号、姓名)

在这两种关系模式中,通过规则1已建立的主键-外键联系,很容易就描述了“院系”与“学生”间一对多的联系。

当要把具有一对多联系的关系模式映射回XML时,也可以借鉴关系模式中的描述形式,在XML中可以采用类似的主键-外键形式,将关系模型的基本表映射为XML的ComplexType元素,放弃ComplexType元素间的嵌套,通过XML自身具备的属性类型key和keyref来完成。

例如,在例一中 “院系”和“学生”关系模式可以通过删除“院系表”中的“学生”元素,并添加keyref(外键)映射:

但是,显然,规则1和规则2已经满足了一对一、一对多联系由XML映射到关系模式;也可以满足表达一对多联系映射回XML中。就一对一、一对多联系的映射而言,这两条规则是完善、丰满的。就一对一、一对多联系而言,XML中采用类似的主键-外键形式,破坏了映射规则的统一性,同时增加了XML文档数据查找的复杂度和修改数据的难度。

2.1.2 多对多的联系

在将E-R模型转换到对应的关系模型时,一对一、一对多联系的转换是直接的;而对多对多的联系,则需要在两个实体之间添加一个新的关联实体,将多对多的联系转换为多个一对多的联系。

以例一中“学生”和“课程”信息为例。关系模式中,学生表(学号、院系号、姓名),课程表(课程号、课程名),选课表(选课号、学号、课程号、成绩),“学生”和“课程”信息多对多联系被分解为“学生表”-“选课表”、“课程表”-“选课表”两个一对多的联系。根据规则2,“学生表”、“课程表”都为“选课表”的父亲节点,而在XML结构中“选课表”最多只能有一个父亲节点。所以,在多对多联系的映射中,我们必须在XML Schema中引入类似的主键-外键形式的key、keyref类型,需为“选课表”添加keyref(外键):

如,每一学生的任一课程只能有一个成绩,学号、课程号既为“选课表”外键,也为其主键;即关系模式为,学生表(学号、院系号、姓名),课程表(课程号、课程名),选课表(学号、课程号、成绩)。则需对“选课表”添加key(主键):

因此,多对多联系映射可归纳为:

规则3(多对多联系映射规则):在由关系模式到XML映射过程中,先按规则2处理,如,对多次被映射为子节点的ComplexType元素,保留该ComplexType元素作为子元素的任一映射,将其他外键映射成xpath值为“@*”的key、keyref类型;反之,由XML到关系模式映射过程中,先按规则1处理,对每个xpath值为“@*” 的key、keyref类型添加外键约束。

2.2 数据完整性约束映射

关系模式的完整性是在指用户对数据更新时不会破坏数据的一致性,从而保证更新后的数据是正确的、一致的和相容的。数据完整性定义分为三类:实体完整性、参照完整性和用户自定义完整性,即键的约束和用户自定义完整性约束。

2.2.1 键的约束

实体完整性规则:基本关系的所有主属性都不能取空值,以便唯一地标识实体。Schema与DTD比较,对于主键,即ID和key,DTD中键的定义是相当不完善的,是全局的;Schema的selector元素的xpath的属性值表明了它们所要约束的元素或属性的位置。显然XML Schema中键的定义方法要比DTD强大的多[3]。

参照完整性规则:若属性或属性组F是基本关系R的外键,它与基本关系S的主键K相对应,则对于R中的每个元组在F上的值必须为空值或等于S中某个元组的主键值。参照完整性定义了外键和主键之间的引用规则。正如前面规则3所述,可以完成一对多联系的映射,实际上也就完成参照完整性的界定。

2.2.2 用户自定义完整性约束

用户自定义完整性,顾名思义就是用户根据信息的含义自行为关系模式建立的约束条件。例如,学生的姓名必须是4-8个字符的字符串;学生的年龄应该是正整数;学生的性别只能为男、女。在进行映射时,这也是需要保留的约束,否则造成的数据完整性的丢失是严重的。

对用户自定义完整性约束条件,因其不确定性以及描述的局限性,故在进行映射时不可能归纳出统一的规则。关于关系模式与Schema之间的一一对应描述在文献[1]有详细的描述。

3 结束语

我们知道,DTD缺乏对XML文档的内容及其语义的约束机制,这将限制XML处理器进行有效的类型检验,应用软件开发者将不得不专门编写有关类型检验的代码。因此,有必要为XML建立一个更全面的有效性约束机制。使XML处理器更好地进行有效性检验,这样就产生了XML Schema,正好解决了这些问题。本文在基于结构、约束保持及语义保持等方面对映射规则进行研究的基础上,提出一系列基于Schema的映射规则,并在电子政务数据交换系统中得到初步应用,取的了一定的成绩。

摘要:XML逐渐成为Internet上数据描述和交换的标准,已经贯穿于Internet应用的各个领域之中。如何准确地实现XML与关系模式的转换已经成为一个重要的研究课题。在分析、比较了DTD与Schema的优缺点,基于结构、约束保持及语义保持等方面对映射规则进行研究的基础上,提出一系列基于Schema的映射规则。

关键词:XML Schema,关系模式,映射规则

参考文献

[1]白昱凡,胡绪一,陈家训,等.基于eMTM的XML与关系数据库双向映射策略.微计算机信息,2006;22;238—240

[2]孙宏伟.XML与RDB的多层次双向数据集成技术研究.西安:西北工业大学博士论文,2003

文档关系 篇2

关键词:可扩展标记语言;关系型数据库;XML查询语言

Simple Analysis on Transformation Between XML Documents and Relational Databases

Tang Ye

(Zunyi Normal College,Computer Science Department,Zunyi563002,China)

Abstract:Due to the popularity of relational databases,we study the bi-way transformation between the XML documents and relational databases. Furthermore,discuss the way of transforming XML query expression into SQL query.

Keywords:XML;Relational Databases;XML-QL

一、XML与数据库的异同

XML使用XML文档提供数据存储,采用DTD或XML Schema来描述数据的逻辑结构,用XQL、XML-QL、QUILT等查询语言作为直接操作XML文档中数据的工具,能够对数据进行直接存取访问,采用SAX(Simple API for XML)和DOM提供了应用程序的编程接口。这样在数据量一般、用户较少、性能要求不高的环境下可以把XML当作数据库来使用。用XML存储数据的优势在于它的开放性好,XML独立于厂商可以跨平台运行,允许不同来源的数据无缝集成,从数据描述的角度看,XML灵活、可扩展,结构与显示是分离的,并且可以直接支持Web应用。

不过,XML还缺少很多在真实的数据库中所必备的内容。在要求有多用户使用、需要严格的数据完整性并且对性能有很高的要求的情况下,数据库的优势就很明显了。DBMS具有分阶段事务提交、加锁等自动的并发访问机制,它的索引功能可以极大地提高数据查询的速度,有灵活和安全的用户权限管理功能,并且在数据完备性、多用户访问、触发、多文档查询等方面有强大的机制。

当然,我们不排除在将来XML文档能够拥有数据库的一切优良特性,甚至数据库本身就是用XML来实现,但在目前的情况下,关系数据库还在商业应用中占主导的地位,在这样的背景下研究XML与数据库之间的相互转化,特别是与关系数据库之间的转换就显得特别重要。

二、转换原理

由于XML是层次结构的,它可以对非关系型的数据进行编码。但是,目前服务器上维护的数据来自关系型数据库,因此我们首先讨论如何使关系型数据和XML结构相配。[1]

关系数据库的基本组成单位是表,这里定义一个映射实现表和XML数据文档之间的转换。假设一个表:TABLE(A1,A2,…,An),其中An表示表格中的第n个字段名,可以用下列算法转变为一个XML文件。

1.将整个表格表示成为

标记块,以后的所有操作内容都放在这两个标记之间。

2.将表格的第一行表示成为标记块,并且在该行中的每一列,以列的字段名作标记名,依次表示为标记组合。

3.对表格中的其他行重复上一步的做法,直到表中最后一行数据。

转换后的结果如下图所示:

X11

X21

… …

Xn1

……

X1m

X2m

… …

Xnm

我们可以建立数据库模式(database schema)和XML数据模式(xml schema)之间的映射关系,实现信息的转化。

从数据库的数据模式到XML数据模式的转化规则是:[2,3]

(1)为每一个表创建一个元素。

(2)为表中的每一个字段创建一个属性或只能是PCDATA(可解析字符串)的子元素,子元素或者属性的类型尽量与表中的字段数据类型一致,若字段在表中允许为空,则该字段对应的属性或者元素也应该允许空。

(3)对每一个主键和外键关联,将外键所在的表创建的元素作为子元素插入主键所在的表所对应的元素中。

从XML数据模式到数据库的数据模式可以用如下的方式建立:

(1)为每一个有子元素或者混合内容的元素建立一个表,该表具有一个关键字。

(2)为每一个混合元素建立一个独立的表,该表通过父元素表中的关键字建立关联。

(3)为每一个元素的单值属性和每一个只能是PCDATA的一次出现的子元素创建一个字段,如果该子元素或者该属性在XML中允许为空,则相应的在数据库中,该字段允许为空,如果属性或者元素不能为空,则该字段不能为空。

(4)为每一个元素的多值的属性或者能在文档中多次出现但类型是PCDATA的子元素创建独立的表,该表与父表通过父表的关键字关联。

这样的转换比较完整地将原来存在于XML文档中的结构映射到了数据库中,接下来的要做的只是将该DTD对应的文档的内容导到数据库中即可,这种导入是非常简单的。

需要注意的是当XML文档不是由数据库中导出,而是由应用程序来指定XML文档的数据结构时,从XML数据模式映射到数据库模式时存在一些问题:首先是映射到表的时候需要将字段的数据类型设定,DTD文档无法准确定义元素的数据类型,在引入schema之后可以解决此问题;[4]其次在XML文档中,大小写是区分的,而在数据库中大小写是不区分的,假如在XML文档中存在两个PCDATA的元素,它们的名称除了大小写不同外都一样,则转换程序会将其转换成两个字段,这会导致在数据库中错误的发生;另外XML数据是有顺序的,而数据库中的数据是无序结构表达的,办法之一是添加一个sort字段。

三、基于SQL的XML的查询的实现

(一)XML查询语言

用户对所感兴趣的数据通常有一个查询产生,而查询中最关键的部分是查询的条件表达式。基于这种观点,SELECT,DELETE,UPDATE等操作的关键都是找到用户感兴趣的数据,并进行相应的操作,利用关系数据库来查询处理XML数据就成为需要解决的问题。[5]

研究者已提出了各种XML查询语言,如Lorel[20],XML-QL,XQL等,一个Lorel查询的例子如下:

SELECT x.author FROM project.publication.x WHERE x.title LIKE Lorel%

首先我们消除Lorel查询中的变量成分,根据Lorel查询的语义,同一正则路径前缀绑定相同的路径实例。一个变量可以用其对应的表达式前缀替换。上例消去变量后表示如下:

SELECT project.publication.author WHERE project.publication.title LIKE Lorel%

XML查询语言的基本特点是正则路径表达式一个正则路径表达式的定义如下:

R=(R1.R2)|(R1|R2)| R*|R+|R?|#|NAME|ε

其中R1.R2表示从R1到R2的路径,R1|R2表示选择关系,R*、R+和R?分别表示R的0或多、1或多、0或1次重复,#表示任意路径,NAME表示结点标记,ε表示空路径。

与正则路径表达式RPE相对应,仅由结点标记构成的路径称为简单路径表达式(SPE),将仅含简单路径表达式的查询成为简单路径查询。

(二)重写RPE查询为SPE查询

重写RPE查询为SPE查询的重点在于消去RPE查询中的正则操作符。

消除查询表达式中出现的#。一般地,正则表达式E1#E2匹配从E1开始,经一条或多条边到达E2的所有路径。消除#需遍历整个映射图,将映射图中以E1为起点,E2为终点的子图转化为与之等价的正则表达式。将一个图转化为正则表达式的问题是一个已知问题,采用适当的算法我们可以将表达式中的#部分转化为与之匹配的映射子图对应的正则表达式,从而消除#。

消除*和+操作符。可以通过在模式层(即DTD图和映射图层)保存数据图中环的路径实例的统计信息来消除 *,类似地也可以消除+操作符。

消除|。若表达式S1|S2|…|Sn出现于查询的SELECT子句中,则算法将其重写为n个查询语句Q1,Q2,…,Qn的并。

消除?。一个表达式P?可以重写为P|ε。

(三)重写SPE查询为SQL查询

给定一个SPE查询,SPE-SQL算法[6]将其中的每个简单路径表达式S1,S2 ,…,Sn与DTD映射图中的路径进行匹配,假定该路径在XML-关系映射下对应K个关系R1,R2 ,…,Rn,这K个关系将S1,S2,…,Sn划分成K段相连路径P1,P2,…,Pn,其中路径段Pi(0

SELECT project.publication.author

遍历映射图,查询被重写为如下的SQL语句:

SELECT author

FROM project,publication

WHERE project.Nid=publication.Pid and publication.Nid=author.Pid

将XML查询转换为关系系统中的查询过程为:首先将XML查询中的变量消去,把正则路径表达式重写为简单路径表达式,再将SPE表达式的查询转化为SQL查询。

参考文献:

[1]Ronald B,XML and Databases,http://www.rpbourret.com/xmldbms

[2]Goldman R,McHugh J,Widom J,From Semistructured data to XML,Proc of the 2nd Workshop on Web and Databases,1999,2:25-30

[3]张素智,卢正鼎,李春林.XML数据库及其应用研究计算机工程与应用,2002,l,8:32-35

[4]Widom J,Data Management for XML: Research Directions,http://www-db.stanford.edu/widom

[5]刘芳珠,潘亦,潘金贵.基于3层网络架构及DOM的XML系统模型,小型微型计算机系统,2001,l,12:1512-1515

[6]Mary F,Wang C,Dan S,Silkroute-trading between relation and XML,Computer Networks,2000,33:723-745

作者简介:

唐晔(1973-),男,讲师,主要从事计算机网络方向的研究。

文档关系 篇3

可扩展标记语言XML目前正在成为各种数据特别是文档的首选格式。由于它具有标记不同字段的能力,使得搜索变得更简单和动态化。那么,怎样管理XML标记的数据呢?基于关系的XML数据处理是一种可行而有前景的方式,受到了广泛的关注。然而,由于数据模型的差异,利用关系数据库查询处理XML数据给传统数据库技术带来了许多新的挑战。

2 存储方式

当前,XML文档的基本存储方式可分为3类:文件系统、存储管理器和数据库管理系统。

文件系统:使用文件系统来存储和检索XML数据是管理XML的最直接的方式。基于文件的XML存储系统将XML直接存储为文本文件,在处理查询时需要将XML文档解析为内存中的DOM树结构。基于文件的XML存储系统很容易实现,无需使用底层的数据库或对象存储管理,同时这种存储方式无需存储转换和重构查询结果。但是这种存储方式在每次浏览和查询文档时都要重复地解析文档,而且整个文档在查询处理过程中都要驻留内存。

存储管理器:由于XML数据与半结构化数据十分相似,利用半结构化数据仓库来管理XML数据似乎是一种比较自然的方式。在这种方法中,XML数据被聚簇存储为有向图。斯坦福大学的Lore项目在这方面作了初步的尝试。然而,当前的半结构化数据库技术尚不成熟,利用半结构化数据仓库处理XML查询的性能仍然难以让人满意。

数据库管理系统:第三种更有效的存储方式是使用数据库管理系统来管理XML数据。根据数据库管理系统的不同,这种存储方式又可以分为基于关系的XML数据库系统、面向对象的XML数据库系统和“原生(native)”的XML数据库系统。

在这三种方式中,由于当前的面向对象数据库系统的性能仍不足以支持对大规模数据的复杂查询,因此基于关系数据库的XML存储管理是一种较有前景的方式。

3 存储研究现状

在利用关系数据库技术进行XML数据管理时,要解决的一个主要问题就是从XML文档到关系表的映射。目前提出的映射方法有如下三种:最简单也最不实用的一种就是直接将整个XML文档数据作为表的一个属性进行存储;另一可行的解决方法是将XML文档解析成图结构,然后提供相应的关系模式来存储这些图结构;第三种方法是把XML文档结构(如DTD)直接映射到数据库关系模式,再将XML文档数据存放到这些模式对应的关系表中。

4 存储方法

定义1 DTD结构树DTD结构树ST=(N,L),N是节点,L是有向边,其中,结构树的节点N=(E|A),E是DTD中出现的元素(element),A是DTD中出现的属性(attribute);结构树的边L={N1→N2|N1,N2∈N;N2是N1的子元素或者属性}。

定义2 DTD的实体DTD的实体S=(E|A),其中E是DTD中出现的元素,A是DTD中出现的属性。

在DTD结构树和XML文档数据存入RDB之前,需要先进行编码。

4.1 DTD编码

对于DTD结构树中的每个节点n,通过一个三元组posting(n)=(dtd_id(n),pre(n),pre(parent(n)))来记录,其中dtd_id(n)为节点n所在的DTD的标识;pre(n)是n在结构树中的先序遍历值;pre(parent(n))是n的父亲节点的先序遍历值。这样,就可以对所有的DTD结构树进行结构索引。例1设定图1中所示DTD的标识分别是1、2、3、4,则编码后的DTD结构树如图1所示。

4.2 XML编码

由于XML文档的结构可以由其DTD结构树来表示,因此在存储XML文档时,不需要再记录每一个XML文档的结构信息,记录下其遵循的DTD的ID即可。对所有的XML文档的叶节点进行编码,以三元组(doc_id(n),dtd_id(n),value(n))来标记每个叶节点。其中doc_id(n)表示叶节点n所在的XML文档的ID,dtd_id(n)表示节点n所在的XML文档所遵循的DTD的ID,字段value(n)记录叶节点n的值。在对DTD结构树和XML文档编码之后,再将DTD和XML文档映射到关系数据库中。

4.3 DTD和XML到关系表的映射

4.3.1 DTD的映射方法

所有的DTD映射到一个关系表DTD_Table(name,dtd_id,pre_order,pre_parent_order),表中name字段是DTD实体的标签名,dtd_id是实体所在的DTD的ID,pre_order是该实体的先序遍历值,pre_parent_order记录该实体在DTD中父亲节点的先序遍历值。

表DTD_Table的主键是name和dtd_id,对表DTD_Table在字段name和dtd_id上建立索引。

4.3.2 XML的映射方法

所有的XML文档映射到一个关系表XML_Table(doc_id,dtd_id,name,value,URL),表中字段doc_id,dtd_id,value分别与XML编码中节点标识(doc_id(n),dtd_id(n),value(n))的各项相对应,name是该实体在DTD中的标签名,URL是该节点所在的XML文档的物理位置。

例2根据编码,对图1中的四棵DTD结构树映射到关系数据库中,并建立结构索引。

图2中记录了图1中的4棵DTD结构树的所有节点以及节点的所有编码信息。

根据图2把DTD结构树映射到关系数据库表DTD Table中。

5 结语

提出了一种XML文档在关系数据库中存储方法,仅需要两张关系表,就能存储所有的DTD和XML数据。该存储方法具有如下几个特点:

(1)所有的DTD存储在一张表中,这就避免了在数据库中查询时多表间的连接,提高了查询效率。

(2)基于不同DTD的XML文档可以保存在相同模式的关系表中。

在基于编辑距离的XML查询方案中,XML文档的存储便可采用本文所介绍的方法。

摘要:提出一种利用DTD的结构信息,将XML文档映射到关系数据库中的的方法。在该方法中,不同DTD的XML文档可以保存在相同模式的关系表中,仅需两张表就能存储所有的DTD和XML文档。

关键词:XML查询,DTD,关系数据库

参考文献

[1]胥正力,宫学庆,李明,岳昆,周傲英.XML文档在关系数据库中的规范化存储[J].小型微机计算机系统,2007,24(10):1753-1758.

[2]秦杰,杨树强,窦文华.XML数据库技术研究[J].计算机科学,2008,30(8):6-9.

[3]李由,肖卫东,徐振宁,汤大权,黄凯歌.XML数据库存储技术的研究与实现[J].计算机工程,2008,28(7):86-88.

文档关系 篇4

浅谈师生关系与学生的心理健康 摘要:师生关系是影响学生心理健康的重要因素之一。师生关系是学生在校园里最重要的人际关系,对学生心理健康的影响是多方面、多渠道的。转变教育观念、和谐人文环境、提高师德水准、改革课堂教学有利于建立良好的师生关系。师生关系是教育过程中教师和学生为完成共同的教育任务进行交往而产生的关系。尊师爱生,民主平等的和谐师生关系是全面提高教育质量的关键,也是现代教育强调的一个重要思想。实现师生和谐关系不仅是发挥教师主导作用和学生主体作用的需要,也为教学过程中教与学之间信息的传递与反馈提供了有利条件。

关键词:师生关系心理

文档关系 篇5

XML[1]是eXtensible Markup Language的缩写,称为可扩展标记语言。1998年2月W3C正式推出了XML(XML1.0)。XML的前身是SGML(Standard Generalized Markup Language,标准通用标记语言)。XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,它可以标记任何一种事物。XML的跨平台型,它提供了一种不同的应用程序之间进行数据库交换的公共标准,是一种公共的交互平台。XML文件是由标记以及它所包含的内容构成的文本文件,这些标记可自由定义,其目的是使得XML文件能够很好地体现数据的结构和含义。W3C推出XML的主要目的是使得Internet网络上的数据相互交流更方便,让文件的内容更加显而易懂。

W3C XML1.0规范给出一种XML通用数据模型。XML文档定义为具有一个名字和根元素。一个XML文档有一棵树组成。一棵XML文档树是一个节点的集合,其中每个节点至少有一个父节点,并可以有多个有序的孩子节点。一个XML文档存在六种类型的节点:

1)声名节点。包括XML声明信息和DTD声明信息。

2)元素节点。每个元素节点有一个名字、一个父节点、一个属性节点集、一个有序的由元素节点、字符数据节点和注释节点组成的孩子集。其中根元素节点没有父元素,而且每个文档只有一个根元素节点,它引用整个XML文档资源。

3)字符数据节点。文档中的字符数据字符串,包括CDATA片段。

4)属性节点。每个属性节点有一个元素父节点、一个属性名和一个属性值。多值属性例如IDREFS,分成多个节点。

5)注释节点。由一个该文注释组成。

6)处理指令节点。由一个目标和数据组成。

下面给出一个XML文档例子。

2 文档对象模型(DOM)

XML解析器是XML和应用程序之间的一个软件组织,为

应用程序从XML文件中解析出所需要的数据,XML解析模型如图1所示。

文档对象模型(Document Object Model,DOM)提供了一种从其他的应用程序中调用或管理XML数据的方法。处理方法是将一个XML文档看作一个对象,通过固定的方法和属性对XML文档的不同标记进行读写。DOM规范的核心就是树模型,对于要解析的XML文档,解析器会把XML文档加载到内存中,在内存中为XML文件建立逻辑形式的树,上面XML文档例子对于的DOM树图2所示。DOM就是XML文档的一个结构化的视图,它将一个XML文档看作是一棵节点树,而其中的每一个节点代表一个可以与其进行交互的对象。树的节点是一个个的对象,通过操作这棵树和这些对象就可以完成对XML文档的操作,为处理文档的所有方面提供了一个完美的概念性框架。通过DOM解析器处理XML文件效率高,但是,十分消耗系统的资源,比较适合复杂但相对较小的文件。DOM解析器解析XML文件需要下列几个步骤:

1)建立一个DOM解析工厂;

2)通过解析工厂创建DOM解析器;

3)解析指定的XML文件;

4)根据标记名称获得node标记列表;

5)遍历每一个node节点;

6)获得标记内容。

3 XML文档到关系数据库的数据转换

XML文件和关系数据库有很多相似之处,关系数据库采用二维表方式存储数据,XML文件通过标记之间的关系来描述数据。关系数据库提供了对于大批量数据的有效存储管理和快速信息检索、查询的功能。XML文件是基于标记的文本文件,兼容性好,便于组织、解析和交换数据。某个系统获得一个XML文件后,可能需要将XML中的某些标记包含的文本内容转化为数据库中表的一条记录,以便发挥关系数据库在管理数据方面的优势;另一方面,一个应用系统可能需要将关系数据库表中的某些记录转化为一个XML文件,以便与其他系统交互数据,发挥XML文件在数据交换上的优势。

要把XML文件中数据写入关系数据库中,首先需要利用解析器解析出XML文件中的数据,再利用某种技术获得数据库的连接,把数据写进数据库。Sun公司制定了JAXP(Java API for XML Processing)规范,用于在Java程序中以一种标准的方式对XML文档进行处理。将XML中的某些标记中的内容转化为数据库中表的一条记录,主要步骤如下[5,6]:

1)使用DOM解析器获取标记中的数据;

2)连接数据库,将获取的文本数据作为一条记录添加到数据库。

下面给出使用Java语言开发的基于DOM的XML文档到SQL Server2000数据库的数据转换的实例,实现把上面XML文档例子的数据写入SQL Server2000数据库中books表中,主要代码如下。

运行上面的程序将前面的XML文档例子中的数据转换到SQL Server2000数据库中,books表中的数据如图3所示。

4 结束语

关系数据库系统相当成熟,把XML文档数据转换到关系数据库中,可以发挥关系数据库在管理数据方面的优势.本文介绍的利用Java语言实现基于DOM的XML文档到SQL Server2000数据库的数据转换方法,经实例验证是正确可行的。利用Java语言与DOM相结合来解析XML文档,需要把XML文档全部加载到内存中。如果XML文档非常庞大,以及解析器耗尽内存,就会造成内存溢出异常。

摘要:随着Internet的普及和Web技术的快速发展,XML正迅速成为事实上的数据表示和交换标准,大量XML数据的涌现出来,为了实现XML数据的快速查询和有效的数据交换,需要将XML文档数据转存到关系数据库中。该文介绍了基于DOM的XML文档到关系数据库的数据转换方法。

关键词:XML,DOM,关系数据库,转换

参考文献

[1]W3C.Extensible Markup Language(XML)1.0(Fifth Edition)[EB/OL].http://www.w3.org/TR/2008/REC-xml-20081126/.

[2]朱珊娜,李书琴,安福定.XML文档到关系数据库的转换研究[J].计算机工程与设计,2008,29(21):5507-5509.

[3]林耀进.基于ADO.NET实现XML文档与关系数据库转换的方法[J].计算机与现代化,2007(6):43-45.

[4]蔚晓娟,冉静,李爱华,等.基于DOM的XML解析与应用[J].计算机技术与发展,2207,17(4):86-88.

[5]范立锋.XML实用教程[M].北京:人民邮电出版社,2009.

文档关系 篇6

众所周知,XML获得广泛应用的关键是XML数据资源的查询与检索。所以,研究XML数据的检索和查询自然就成了世界性的热门课题。

1 索引模块的设计

搜索引擎的索引部分是整个搜索引擎最关键的部分,衡量索引的好坏主要看它本身占据多少额外的磁盘空间和查询时的检索速度。在对XML文档数据建立索引时,根据需要,设计一个索引模块,并给出一种新的倒排索引方法。

XML文档包括结构信息和内容信息,这些都要编入索引,把XML文档看成一棵树,树中的节点作为一个基本的存储单元,每个节点有一个唯一的标识符,这个标识符是由解析模块中的节点编码器分配的,将其简记为Id,其标识符为一个编码,形式为(start,end)。

XML文档经过节点编码器后生成DOM(文档对象模型)树,再经过节点结构构造器后产生的节点结构仍是一颗树,树的最下一层是叶子节点,即文本部分,其余都是中间节点,即结构部分。

索引采用倒排表的方式来实现,本文共设计了三种索引表。

1.1 文档结构表

一篇读入的XML文档,经过节点结构构造器后,解析为一个树状结构,索引器首先建立这样一个表,即文档结构表,用来存放每篇文档的结构。

文档Id即该文档的编码,由文档加入数据库的次序决定,从零开始编码,表中每个节点的数据结构为节点结构结构器已经构造的节点结构。以先序遍历的顺序存储文档树,遇到Id编码的两个值相等的情况不予存储,即不存储叶子节点。

1.2 文档信息表

文档的结构索引是用来提高查准率,体现面向XML文档索引的优势的,还应该有一个表,记录文档的一些基本信息,如地址、主题等。

1.3 关键词索引表

用户查询一般情况下都是输入关键词,所以关键词索引表是非常重要的,这部分属于内容索引。将叶子节点处的文本内容进行处理,去掉无意义的词,提取关键词。对文档空间中的所有关键词,在关键词索引表中都建立一条相应的记录。这些词按字母顺序存放,可加快查找速度。在关键词索引表中,每个文档按与关键词的相关度排序记录,每插入一个新的文档,也要计算其与关键词的相关度,并插入到相应的位置。相关度按照一定的算法算出。

2 利用高频路径产生索引机制

高频路径的所有子连续路径也是高频路径,所以要对算法得到的高频路径扩展(找出所有高频路径的子连续路径)以得到全部的高频路径。

对文档库用路径查找算法得到的高频路径的集合为:

{ DBLab.Paper.XML ,

Database.DBLab.Paper,

Database.Document,

Database.Music,

Music.Pop,Ftp.Music},

再经过扩展得到的所有高频路径的集合为:

{ DBLab.Paper.XML ,

Database.DBLab.Paper,

DBLab.Paper, Paper.XML,

Database.DBLab,Database.Document,

Database.Music, Music.Pop,Ftp.Music},

然后将这些路径视为一个regular set,通过自动机的转换,产生最小化有限状态机(MFA),作为索引构造的条件。

3 关系型数据和XML结构转换

XML是层次结构的,它可以对非关系型的数据进行编码。但是,目前服务器上维护的数据来自关系型数据库,关系数据库的基本组成单位是表,这里定义一个映射实现表和XML数据文档之间的转换。

我们可以建立数据库模式(database schema)和XML数据模式(xml schema)之间的映射关系,实现信息的转化。需要注意的是当XML文档不是由数据库中导出,而是由应用程序来指定XML文档的数据结构时,从XML数据模式映射到数据库模式时存在一些问题:首先是映射到表的时候需要将字段的数据类型设定,DTD文档无法准确定义元素的数据类型,在引入schema之后可以解决此问题。其次在XML文档中,大小写是区分的,而在数据库中大小写是不区分的,假如在XML文档中存在两个PCDATA的元素,它们的名称除了大小写不同外都一样,则转换程序会将其转换成两个字段,这会导致在数据库中错误的发生;另外XML数据是有顺序的,而数据库中的数据是无序结构表达的,办法之一是添加一个sort字段。

消除查询表达式中出现的#。一般地,正则表达式E1#E2匹配从E1开始,经一条或多条边到达E2的所有路径。消除#需遍历整个映射图,将映射图中以E1为起点,E2为终点的子图转化为与之等价的正则表达式。将一个图转化为正则表达式的问题是一个已知问题,采用适当的算法我们可以将表达式中的#部分转化为与之匹配的映射子图对应的正则表达式,从而消除#。

将XML查询转换为关系系统中的查询过程为:首先将XML查询中的变量消去,把正则路径表达式重写为简单路径表达式,再将SPE表达式的查询转化SQL查询。

4 XML 数据库事务处理和版本控制

XML 数据库一般提供事务处理功能,包括提交、撤回和日志文件,也包含对XML 文档的版本控制功能。

事务为数据库的一组操作,这些操作组成一个逻辑单元。事务遵循的ACID 性质(原子性、一致性、独立性和持久性),通过提供事务日志机制,纪录系统执行的每个事务的详细情况, 保证事务处理稳定地运行和系统出现问题后完全恢复。

处于版本控制之下的文档都有自己的历史信息,纪录修改文档的作者以及时间等,使用者可以根据文档或用户或日期来查看整个的版本历史信息。XML 数据库版本控制,允许用户通过查询更新原信息,用户应用程序可以检入 或检出XML 文档,利用版本号、日期或者标签获得以前版本的文档,以及显示XML 文档的版本历史信息。版本控制允许用户查询更新原信息,通过更新引擎注释、修改和精炼信息。内置的版本系统跟踪信息的变化,提供这些变化的历史信息。

5 基于XML的路径查找算法

在XML文档中,所有的信息都存储在叶子节点处。信息的存取是由根节点沿着某路径(path)到叶子节点完成的。可以把XML文档看作成树状结构,节点间存在一种次序(order)关系。用搜索连续路径的方法,快速检索出文件中重要的连续路径。

XML路径查找算法。

输入:XML文档库

输出:存储于Hash table中的所有高频路径

[1] //事务集合(可以用它来构造hash table)

[2] for each XML document x

[3] for each transaction(path) t in x

[4] if t is in Hash table then

[5] increment count for hash entry corresponding to t;

[6] else

[7] insert t into Hash table;

[8] if t.length = k then

[9] add t to the length list corresponding to k;

[10] end if

[11] end if

[12] end for

[13] end for

[14]

[15] //查找高频连续路径

[16] for k := n to 2 //n为最长路径的长度

[17] for each hash entry i with path length k

[18] if i.count > min_support then

[19] //删除高频路径的子路径,不需再处理

[20] prune its subpaths from Hash table;

[21] else

[22] decompose i.path into two subpaths with length k-1;

[23] add i.count to the two hash entries corresponding to the subpaths;

[24] decrement count from the entry corresponding to overlap path;

[25] prune i from Hash table;

[26] end if

[27] end for

[28] end for

XML的路径查找算法,使用二维Hash table存储事务,一边是含有事务节点名称的hash array,可加快路径搜索的速度;另一边是含有事务长度的length list所构成的array,以便在查找时找到当前的最长路径。

参考文献

[1]吴敏,徐德智,N Damas.基于离散模式的XML数据查询的CSP实现[J].计算机应用,2011,23(4):31-34.

[2]徐德智,H.Sidi..基于树模型的XML查询[J].企业技术开发,2009(4):7-8.

[3]吕建华,王国仁,于戈.XML数据的路径表达式查询优化技术[J].软件学报,2010,14(9):1615-1620.

[4]吴敏,徐德智,陈学工.XML模式蕴含及查询优化研究[J].计算机应用,2011,11(8):7-30.

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【文档关系】相关文章:

工作文档员工关系管理12-10

评语文档04-16

试卷文档05-06

数学文档05-01

麦迪文档范文05-16

写作训练文档04-11

问候礼仪 文档04-14

货代心得文档04-15

形教课文档04-19

消防措施 文档04-20

上一篇:法院功能下一篇:蓝色的信仰