论文部分内容阅读
XML以其扩展性、结构性、平台独立性和自描述性等特性成为数据表示和交换的事实标准,越来越多的应用使用XML来存储、交换和发布信息。海量的XML带来了一系列的问题:如何存储和管理海量的XML?如何从海量的XML中查找出所需要的数据?如何更新这些数据?XML使用的广泛性使上述问题成为各大公司、企业、学者的热门研究领域。 关系型数据库不能很好地支持XML。关系型数据库或者将XML转换成二维表的形式存储,或者将XML作为BLOB数据进行存储,但XML与二维表存储形式的转换存在性能问题,而将XML作为BLOB数据存储则不能很好地支持对XML的查询与更新。原生XML数据库采用关系型数据库中组织、管理数据的方法管理XML,并使用私有格式存储XML,能很好地解决海量XML带来的问题,得到了广泛瞩目和飞速发展。因为原生XML数据库仍在起步阶段,现有的原生XML数据库存在多种查询语言,而且现有的原生XML数据库的更新语言不够强大,并且查询语言与更新语言分离,上述种种问题给原生XML数据库的用户造成了极大的不便,阻碍的原生XML数据库的发展。 本文在研究了原生XML数据库相关资料及Apache软件基金组织的Xindice数据库后,自行设计并实现了一个原生XML数据库模型——MyNXD。MyNXD使用分页和BTree技术来管理数据库文件,有效提高了XML的I/O效率;MyNXD使用私有格式来存储XML,显著提高了XML内部数据存储格式与DOM模型的转换效率;MyNXD使用CORBA作为客户机与服务器通信的桥梁,大大地增强MyNXD使用的灵活性;MyNXD采用扩展的XQuery语言作为XML数据查询和更新语言,为用户提供了强大的使用接口,方便了用户的使用。 在MyNXD系统的设计中,为了解决目前原生XML数据库存在的不足并减少用户对MyNXD操作的复杂程度,本文提出并实现了扩展的XQuery语言——EXQuery。EXQuery不仅支持对普通XML文档或者对MyNXD数据库进行查询的功能,而且还支持对普通XML文档或者对MyNXD数据库进行更新的功能,从而弥补了只能使用XQuery等XML查询语言执行查询功能和只能使用XUpdate等语言执行更新功能带来的不便,有效的解决了原生XML数据库查询与更新语言上的一系列问题,大大地方便了用户的使用,构成了本文的特色和创新之处。MyNXD系统较好地支持了XML,它的实现将有助于用户管理和操纵XML,有利于XML的进一步推广。