论文部分内容阅读
XML正在成为在WorldWideWeb上表示和交换数据标准。XML最初的目的是为了增强对在Internet上传递的文档的解释和操作的远程应用能力。从数据库的观点来看,XML文档中包含大量的数据,使得查询这些文档的内容成为可能。因此如何有效地存储和查询访问XML文档的数据已经成为研究的热点,一些研究者采用半结构化数据管理系统(Lore[1])实现XML数据的存储和查询。也有不少的研究者使用传统的关系数据库来存储XML[2][3],利用关系数据库系统的查询机制实现对XML数据的查询。本文通对面向对象数据系统处理XML数据的讨论,提出了以下几个方面的具体解决办法:
(1)根据XML文档的DTD建立面向对象模式在数据库系统中,数据模式是核心和基础,因此使用面向对象数据库系统来处理XML数据,需要建立XML文档的面向对象模式。本文首先定义了描述XML数据模型的有向图,并在此基础上提出了XML数据模型到对象模型的映射规则以及根据DTD建立面向对象模式的方法。和数据库系统不同的是XML的模式可选的,一些从其它数据源转换而来的XML往往没有模式只有不完整的模式,本文讨论了无模式的XML的结构化信息的提取方法。
(2)查询语言的转换。目前,已经有许多半结构化查询语言,如XMLQL[4]、Lorel[5]等用于XML文档的数据查询。这些半结构化查询语言比OQL具有更多的灵活性,特别是路径表达式允许使用各种不同的操作符和通配符,这对使用OQL改写这些查询语言提出了挑战。本文就半结构化查询语言转换为OQL提出了简单而有效的方法。
(3)XML索引文档的结构化连接。连接操作通常是关系查询中代价最高的物理操作。在XML的上下文中,除了基于值的连接之外,更常见的是结构化的连接。本文在持久编码模式[6]的基础上引入了引用指针,提出了扩展的持久编码模式的概念,在此概念的基础上给出两种结构化连接算法。此外提出在扩展的持久编码模式的基础上采用B树结构的索引方式,以及基于这种索引结构的结构化连接算法。最后讨论了在这种索引结构中引入右兄弟指针的的插入和删除操作。