论文部分内容阅读
XML迅速的成为Internet上用于数据表示和数据交换的标准。XML文档大量涌现,XML的有效管理受到广泛关注。为了结合数据库发展的需要,我们研究了在关系数据库中存储和查询XML文档的技术。
根据XML查询以路径表达式为主体的特点,提出了一种在关系数据库中存储XML文档的方法,这种方法是基于XPath数据模型的,并对XML文档的元素进行Dietz编码来标识元素,同时在数据库中存储每个元素及其父元素的 Dietz编码来保持元素之间的父子关系以及用于将关系数据转化为XML文档或文档片段。使用该方法我们开发出了一个中间件,将其命名为XR-System。 XR-System将XML文档分为三个关系表进行存储,这些表是Element、Attribute、 Text,分别用来存储XML文档的元素、属性和文本。
基于这种存储方法,研究了如何实现将XML查询转化为SQL的查询转换问题,转换分为三个步骤:首先根据XPath表达式产生XML查询图;然后,将这个查询图根据定位步分解为若干个子图,通过使用基于Dietz编码的XPath快速定位方法得到这些子图所代表的定位步测试结点所对应的元素Dietz编码集合;最后,再根据Dietz编码的XPath快速定位方法由上一步骤得到的Dietz编码集合产生SQL。
整个中间件的设计分为三个组成部分,分别是XML存储模块,查询转换模块和数据格式转换模块。在中间件的实现上采取分层的策略,分为基本组件层,用户界面层,业务逻辑层和数据访问层。我们利用JDOM作为XML解析器使用Java实现了该中间件。