基于XML高效存储数据信息的研究

时间:2022-06-20 03:26:08

基于XML高效存储数据信息的研究

[摘要] XML是一种描述型的可扩展标记语言,Web上数据交换和表达的标准形式。本文详细阐述了XML在数据库方面数据存储的应用及.NET中配置信息存储的具体实现。

[关键词] XML NXD 配置文件 序列化

数据库技术及其应用系统的发展,使得其在传统的商业和事务处理领域内逐步成熟,取代了原有的基于文件系统的数据处理方式,成为计算机信息系统中的重要基础和支柱。但随着Internet的飞速发展,Web的出现改变了人们习惯的处理方式,也给数据库技术提出了必须面对的重要问题,即如何有效地存储和管理Web上的数据(文档),用XML可使其既能被高效地操作和维护,又能在Internet平台上方便地表示和交换。对于.NET框架中的配置信息,利用XML可以方便的保存。

一、XML简介

XML(eXtensible Markup Language)是一种描述型的标记语言,与HTML同为SGML(标准通用标记语言,ISO-8879国际标准)的一种应用。由于XML在可扩展性、可移植性和结构性等方面的突出优点,它的应用范围突破了HTML所达到的范围。

XML文档由标记和内容组成。XML中有六种标记:元素(elements)、属性(attributes)、实体引用(entityreferences)、注释(comments)、处理指令(processinginstructions)和CDATA段(CDATAsections)。XML与HTML最显著的不同是XML文档中引入了“文档类型声明”(Document Type Definition)。DTD使文档可以与分析器交流关于它的内容的元信息。DTD的出现,赋予了XML文档可扩展性、结构性和可验证性,使XML具备了类似于数据库的一些性质,可以利用XML来组织和管理信息;又可以与HTML一样在浏览器中方便地表示,在Internet上高效地传递和交换。

目前,处理XML文档的方式主要有SAX与DOM两种。SAX(Simple API for XML)是一种基于流的、以事件处理方式工作的接口。DOM(Document Object Model)则是在对XML文档进行分析后,在内存中建立起一个完整的树结构,然后在此基础上进行各种操作。简单地比较来看,SAX对系统资源要求低、速度快,但对文档的操作是只读的;DOM的处理能力强大,但要求大量的系统资源,尤其是对于大的文档。而后还出现了Xpath和Xpointer用以完成XML的搜索和转换;XSL、XSLT和SOAP用以完成XML的远程对象访问,XML Query Languages的出现使XML查询语言可用于任何XML文档。

二、利用XML存储数据库数据

数据库技术的应用是建立在数据库管理系统基础上的,各数据库管理系统之间的异构性及其所依赖操作系统的异构性,严重限制了信息共享和数据交换范围;数据库技术的语义描述能力差,大多通过技术文档表示,很难实现数据语义的持久性和传递性,而数据交换和信息共享都是基于语义进行的,在异构应用数据交换时,不利于计算机基于语义自动进行正确数据的检索与应用。而随着网络和Internet的发展,数据交换的能力已成为新的应用系统的一个重要的要求。

XML文件是数据的集合,它是自描述的、可交换的,能够以树型或图形结构描述数据。XML提供了许多数据库所具备的工具:存储(XML文档)、模式(DTD,XML schema等)、查询语言(XQuery,XPath,XQL,XML-QL,QUILT等)、编程接口(SAX,DOM,JDOM)等。

利用XML除可以将文件存储于文件系统外,在数据库文件存储方面还有两种形式:一、将文件存储于BLOB(Storing Documents in BLOBs),利用数据库的事务管理、安全、多用户访问等优点。此外许多关系数据库提供的检索工具可以进行全文检索、近似检索、同义词检索和模糊检索。其中某些工具将会支持XML,这样就可消除将XML文件作为纯文本检索所带来的问题。二、将文件存储于原生XML数据库(Native XML Databases,NXD)。NXD是专用于存储XML文件的数据库,支持事务管理、安全、多用户访问、编程API和查询语言等。与其他数据库的惟一区别在于其内部模型是基于XML的。其中,最重要的存储方式当属原生XML数据库。NXD最适于存储以文档为中心的文件,NXD一般采用层次数据存储模型,保持XML文档的树形结构,省掉了XML文档和传统数据库的数据转换过程。

XML技术的出现,使数据处理从文件方式到数据库系统再到文件方式的循环,但新的文件方式已经与最初的文件系统有了本质的区别格式化文档。

三、利用XML存储.NET中配置信息

NET框架提供了很多方法来维护应用程序专用的配置数据。虽然和Windows Forms应用程序有与编程模块相关联的专门配置文件,但是你可以很轻易就利用XML的优势来保存和维护配置信息。

首先把需要存储的文件对象进行序列化。对象序列化指让一个原本存在于内存中的对象变成一个线性字节序列,这样可以方便地把它存储或传输到另一个位置。也就是说,可以把原来只在内存中的对象存到硬盘中,也可以把它们通过网络传输出去。与序列化相对的过程,称作反序列化。它的任务是把一个序列化了的对象恢复到它在内存中的原样,以使程序可以运行。.NET框架为序列化的对象提供了各种不同的命名空间。要对一个对象进行序列化,需要用到System.Runtime.Serialization这个命名空间,并且用[Serializable]属性来标记这个对象,或者需要实现Iserializable接口。 因此需通过加入Serializable属性创建了一个Serializable(可序列化)的Config文件。

其次确定保存位置。使用XML来保存配置数据文件是非常理想的,但是一个重要的问题是决定把已经完成序列化的文件保存在哪里。一个选择是像SQL服务器这样的后端数据库。在这里,建议把应用程序数据保存在下面这三个能够用System.Environment类访问得到的位置,这些目录都可以通过使用下面这三个值调用GetFolderPath方法访问到:

Environment.SpecialFolder.ApplicationData:这是当前用户的目录,网络上所有的机器都可以共享到。

monApplicationData:这个保存信息的目录可以由所有机器上的所有用户都共享得到。

Environment.SpecialFolder.LocalApplicationData:这个目录只能够由登录到本机的当前用户访问得到。

至此配置文件得以比较稳妥的存储。

四、结语

XML技术自出现以来发展非常迅速,不仅在数据管理和存储方面,在许多其他领域内也得到广泛的支持,有着广阔的应用前景。许多应用方面都将XML作为一种基础性、支柱性的技术来看待。

参考文献:

[1]黄健斌严体华:网络计算.西安电子科技大学出版社,2004

[2]蒋直泉Visual Basic:NET程序设计. 地质出版社, 2006

[3]秦健李世祥:WEB前台设计教程. www.省略.

上一篇:ASP.NET的性能优化及其安全性的探讨 下一篇:我国商业银行信息化建设的十大战略对策