数据库技术及其应用系统经历了从层次数据库网状数据库到关系数据库以及面向对象数据库的发展在传统的商业和事务处理领域内逐步成熟取代了原有的基于文件系统的数据处理方式成为计算机信息系统中的重要基础和支柱但随着Internet的飞速发展Web的出现改变了人们习惯的处理方式也给数据库技术提出了必须面对的重要问题即如何有效地存储和管理Web上的数据(文档)使其既能被高效地操作和维护又能在Internet平台上方便地表示和交换
XML技术自出现以来发展非常迅速在许多领域内得到广泛的支持而有着广阔的应用前景例如电子数据交换电子商务等更是将XML作为一种基础性支柱性的技术来看待
数据库简史
数据库系统是随着计算机技术的不断发展在特定的历史时期特定的需求环境下出现的在年的第一台计算机到世纪年代这漫长的年里计算机操作系统主要局限于文件的操作对数据的管理也主要是通过文件系统来实现进行计算所需要的各种数据存放在各自的文件里使用这些数据时将文件打开读取文件中的数据到内存中当计算完毕后将计算结果仍旧写入到文件中去它的不足主要集中在无法对数据进行有效的统一管理针对文件系统的重要缺点人们逐步发展了以统一管理数据和共享数据为主要特征的系统即数据库系统年美国通用电气公司开发成功了世界上的第一个数据库系统IDS(IntegratedDataStore)IDS奠定了网状数据库的基础并得到了广泛的发行和应用成为数据库系统发展史上的一座丰碑年美国国际商用机器公司(IBM)也推出世界上第一个层次数据库系统IMS(InformationManagement System)同样在数据库系统发展史上占有重要的地位
年代初EFCodd在总结前面的层次网状数据库优缺点的基础上提出了关系数据模型的概念及关系代数和关系演算在年代关系数据库系统无论从理论上还是实践上都取得了丰硕的成果在理论上确立了完整的关系模型理论数据依赖理论和关系数据库的设计理论在实践上世界上出现了很多着名的关系数据库系统比较着名的如SystemRINGRESOracle等
与文件系统相比数据库系统有几个方面的特点向用户提供高级的接口向用户提供非过程化的数据库语言(即SQL语言)查询的处理和优化并发控制数据的完整性约束
进入年代之后计算机硬件技术的飞速提高促使计算机应用不断深入产生了许多新的应用领域例如计算机辅助设计计算机辅助制造计算机辅助教学办公自动化智能信息处理决策支持等这些新的领域对数据库系统提出了新的要求但由于应用的多元化不能设计出一个统一的数据模型来表示这些新型的数据及其相互关系因而出现了百家争鸣的局面产生了演绎数据库面向对象数据库分布式数据库工程数据库时态数据库模糊数据库等新型数据库的研究和应用
XML简介
XML推荐标准版发布于年月之后迅速在全球掀起了XML应用的浪潮XML是一种描述型的标记语言与HTML同为SGML(标准通用标记语言ISO国际标准)的一种应用由于XML在可扩展性可移植性和结构性等方面的突出优点它的应用范围突破了HTML所达到的范围
一篇XML文档由标记和内容组成XML中有六种标记元素(elements)属性(attributes)实体引用(entityreferences)注释(comments)处理指令(processinginstructions)和CDATA段(CDATAsections)XML与HTML最显着的不同是XML文档中引入了文档类型声明(Document Type Declarations)DTD使文档可以与分析器交流关于它的内容的元信息DTD的出现赋予了XML文档可扩展性结构性和可验证性使XML具备了类似于数据库的一些性质可以利用XML来组织和管理信息又可以与HTML一样在浏览器中方便地表示在Internet上高效地传递和交换考虑到与HTML的兼容DTD并不是XML文档必需的成份具有DTD的XML文档称作Valid否则就是Wellformed
目前处理XML文档的方式主要有SAX与DOM两种SAX(SimpleAPIforXML)是一种基于流的以事件处理方式工作的接口SAX 在年月发布增强了许多功能包括对名字空间的支持DOM(Document Object Model)则是在对XML文档进行分析后在内存中建立起一个完整的树结构然后在此基础上进行各种操作简单地比较来看SAX对系统资源要求低速度快但对文档的操作是只读的DOM的处理能力强大但要求大量的系统资源尤其是对于大的文档而后还出现了Xpath和Xpointer用以完成XML的搜索和转换XSLXSLT和SOAP用以完成XML的远程对象访问XML Query Languages的出现使XML查询语言可用于任何XML文档
XML与数据库
XML文件是数据的集合它是自描述的可交换的能够以树型或图形结构描述数据XML提供了许多数据库所具备的工具存储(XML文档)模式(DTDXMLschemaREAXNG等)查询语言(XQueryXPathXQLXMLQLQUILT等)编程接口(SAXDOMJDOM)等但XML并不能完全替代数据库技术XML缺少作为实用的数据库所应具备的特性高效的存储索引和数据修改机制严格的数据安全控制完整的事务和数据一致性控制多用户访问机制触发器完善的并发控制等因此尽管在数据量小用户少和性能要求不太高的环境下可以将XML文档用作数据库但却不适用于用户量大数据集成度高以及性能要求高的作业环境
随着Web技术的不断发展信息共享和数据交换的范围不断扩大传统的关系数据库也面临着挑战数据库技术的应用是建立在数据库管理系统基础上的各数据库管理系统之间的异构性及其所依赖操作系统的异构性严重限制了信息共享和数据交换范围数据库技术的语义描述能力差大多通过技术文档表示很难实现数据语义的持久性和传递性而数据交换和信息共享都是基于语义进行的在异构应用数据交换时不利于计算机基于语义自动进行正确数据的检索与应用数据库属于高端应用需要昂贵的价格和运行环境而随着网络和Internet的发展数据交换的能力已成为新的应用系统的一个重要的要求XML的好处是数据的可交换性(portable)同时在数据应用方面还具有如下优点()XML文件为纯文本文件不受操作系统软件平台的限制()XML具有基于Schema自描述语义的功能容易描述数据的语义这种描述能为计算机理解和自动处理()XML不仅可以描述结构化数据还可有效描述半结构化甚至非结构化数据
XML文件的存储
XML文件的存储方式有三大类()将文件存储于文件系统(StoringDocumentsinthe File System)()将文件存储于BLOB(Storing Documents in BLOBs)利用数据库的事务管理安全多用户访问等优点此外许多关系数据库提供的检索工具可以进行全文检索近似检索同义词检索和模糊检索其中某些工具将会支持XML这样就可消除将XML文件作为纯文本检索所带来的问题()将文件存储于原生XML数据库(Native XML DatabasesNXD)NXD是专用于存储XML文件的数据库支持事务管理安全多用户访问编程API和查询语言等与其它数据库的唯一区别在于其内部模型是基于XML的其中最重要的存储方式当属原生XML数据库
原生XML数据库
原生XML数据库(NativeXMLDatabases)为XML文档定义了一个(逻辑)模型并根据该模型存取文件这个模型至少应包括元素属性PCDATA和文件顺序其例子有XPath数据模型XMLInfoset以及DOM所用的模型和SAX 的事件它以XML文件作为其基本存储单位对底层的物理存储模型没有特殊要求例如它可以建在关系型层次型或面向对象的数据库之上或者使用专用的存储格式比如索引或压缩文件
NXD最适于存储以文档为中心的文件这是由于NXD保留了文件顺序处理指令注释CDATA块以及实体引用等而支持XML的数据库XED(XMLenableddatabase)无法做到XED是在原有数据库基础上扩展了XML支持模块完成XML数据和数据库之间的格式转换和传输从存储粒度上可以把整个XML文档作为RDBMS表中一行或把XML文档进行解析后存储到相应的表格中为了支持WC的一些XML操作标准XpathXED提供一些新的原语(如OracleiR增加了一些数据包来操作XML数据等)并优化了XML处理模块
NXD一般采用层次数据存储模型保持XML文档的树形结构省掉了XML文档和传统数据库的数据转换过程NXD还适用于存储天然格式为XML的文件NXD还可以存储半结构化数据在某种特定情形下提高存取速度以及存储没有DTD的文件(良构的文件)
原生XML数据库的结构
原生XML数据库的结构可分为两大类基于文本的和基于模型的
基于文本的NXD(TextBasedNativeXMLDatabases)将XML作为文本存储它可以是文件系统中的文件关系数据库中的BLOB或特定的文件格式基于文本的NXD与层次结构的数据库很相似当存取预先定义好层次的数据时它比关系数据库更胜一筹和层次结构的数据库一样当以其它形式比如转置层次存取数据时NXD也会遇到麻烦这个问题的严重程度尚未可知很多关系数据库都使用逻辑指针使相同复杂度的查询以相同的速度完成
基于模型的NXD(ModelBasedNativeXMLDatabases)是根据文件构造一个内部模型并存储这个模型有些数据库将该模型存储于关系型和面向对象的数据库中例如在关系型数据库中存储DOM时就会有元素属性PCDATA实体实体引用等表格其他数据库使用了专为这种模型优化了的存储格式使用专用存储格式的基于模型的NXD如果以文件的存储顺序读取文件其性能与基于文本的NXD相似
原生XML数据库的特性
原生XML数据库的特性(FeaturesofNativeXML Databases)有()文件集(Document Collections)支持集合(Collection)的概念其作用相当于关系数据库中的表和文件系统中的文件夹()查询语言(Query Languages)最常用的有XPath(对多个文件的查询作了扩充)和XQL以及专有的查询语言()更新和删除(Updates and Deletes)NXD对文件的更新和删除方式从简单的替换或删除现有文件到修改当前活动的DOM树以及用于指定如何修改文件片断的语言()事务锁定和并发(TransactionsLockingand Concurrency)支持事务处理锁定通常是对整个文档的所以多用户并发性相对较低问题的大小取决于应用程序以及文件的构成()原生数据库提供应用程序接口API(Application Programming InterfacesAPIs)()NXD的一个重要特性是它可以为XML文档提供往返车票(roundtrip)可以将XML文件存放在NXD中而且再取回同样的文件对于以文档为中心的应用程序来说非常重要因为CDATA部分实体用法注释和处理指令是这些文档不可缺少的组成部分特别是对于法律和医学文件按规定这些文档必须要保持原样()外部数据(Remote Data)某些NXD可包含有外部数据它来自存储在数据库中的文档通常这些数据通过ODBCOLE DB或JDBC从关系数据中取出模型可以是基于表格的或对象关系型映射()支持元素和属性的索引
结论
XML技术的出现使数据处理从文件方式到数据库系统再到文件方式的循环但新的文件方式已经与最初的文件系统有了本质的区别格式化文档XML和关系数据库在数据应用和数据管理方面各有优势
一方面我们要研究数据库的新技术探索数据库的发展方向另一方面在数据库的基本实现基础上添加必要的新技术是探索新数据库的发展方向