数据库技术及其应用系统经历了从层次数据库、网状数据库到关系数据库以及面向对象数据库的发展,在传统的商业和事务处理领域内逐步成熟,取代了原有的基于文件系统的数据处理方式,成为计算机信息系统中的重要基础和支柱。但随着Internet的飞速发展,Web的出现改变了人们习惯的处理方式,也给数据库技术提出了必须面对的重要问题,即如何有效地存储和管理Web上的数据(文档),使其既能被高效地操作和维护,又能在Internet平台上方便地表示和交换。
XML技术自出现以来发展非常迅速,在许多领域内得到广泛的支持而有着广阔的应用前景。例如电子数据交换、电子商务等更是将XML作为一种基础性、支柱性的技术来看待。
1、数据库简史
数据库系统是随着计算机技术的不断发展,在特定的历史时期、特定的需求环境下出现的。在1946年的第一台计算机到20世纪60年代这漫长的20 年里,计算机操作系统主要局限于文件的操作,对数据的管理也主要是通过文件系统来实现。进行计算所需要的各种数据存放在各自的文件里,使用这些数据时将文件打开,读取文件中的数据到内存中,当计算完毕后,将计算结果仍旧写入到文件中去,它的不足主要集中在无法对数据进行有效的统一管理。针对文件系统的重要缺点,人们逐步发展了以统一管理数据和共享数据为主要特征的系统,即数据库系统。1964年,美国通用电气公司开发成功了世界上的第一个数据库系统IDS (IntegratedDataStore)。IDS奠定了网状数据库的基础,并得到了广泛的发行和应用,成为数据库系统发展史上的一座丰碑。1969 年,美国国际商用机器公司(IBM)也推出世界上第一个层次数据库系统IMS(InformationManagement System),同样在数据库系统发展史上占有重要的地位。
70年代初,E.F.Codd在总结前面的层次、网状数据库优缺点的基础上,提出了关系数据模型的概念及关系代数和关系演算。在70年代,关系数据库系统无论从理论上还是实践上都取得了丰硕的成果。在理论上确立了完整的关系模型理论、数据依赖理论和关系数据库的设计理论;在实践上,世界上出现了很多著名的关系数据库系统,比较著名的如SystemR、INGRES、Oracle等。
与文件系统相比,数据库系统有几个方面的特点:向用户提供高级的接口;向用户提供非过程化的数据库语言(即SQL语言);查询的处理和优化;并发控制;数据的完整性约束。
进入80年代之后,计算机硬件技术的飞速提高促使计算机应用不断深入,产生了许多新的应用领域,例如计算机辅助设计、计算机辅助制造、计算机辅助教学、办公自动化、智能信息处理、决策支持等。这些新的领域对数据库系统提出了新的要求。但由于应用的多元化,不能设计出一个统一的数据模型来表示这些新型的数据及其相互关系,因而出现了百家争鸣的局面,产生了演绎数据库、面向对象数据库、分布式数据库、工程数据库、时态数据库、模糊数据库等新型数据库的研究和应用。
2、XML简介
XML推荐标准1.0版发布于1998年2月,之后迅速在全球掀起了XML应用的浪潮。XML是一种描述型的标记语言,与HTML同为SGML (标准通用标记语言,ISO-8879国际标准)的一种应用。由于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”,否则就是“Well-formed”。
目前,处理XML文档的方式主要有SAX与DOM两种。SAX(SimpleAPIforXML)是一种基于流的、以事件处理方式工作的接口。 SAX 2.0在2000年5月发布,增强了许多功能,包括对名字空间的支持。DOM(Document Object Model)则是在对XML文档进行分析后,在内存中建立起一个完整的树结构,然后在此基础上进行各种操作。简单地比较来看,SAX对系统资源要求低、速度快,但对文档的操作是只读的;DOM的处理能力强大,但要求大量的系统资源,尤其是对于大的文档。而后还出现了Xpath和Xpointer用以完成 XML的搜索和转换;XSL、XSLT和SOAP用以完成XML的远程对象访问,XML Query Languages的出现使XML查询语言可用于任何XML文档。
3、XML与数据库
XML文件是数据的集合,它是自描述的、可交换的,能够以树型或图形结构描述数据。XML提供了许多数据库所具备的工具:存储(XML文档)、模式(DTD,XMLschema,RE1AXNG等)、查询语言(XQuery,XPath,XQL,XML-QL,QUILT等)、编程接口(SAX, DOM,JDOM)等。但XML并不能完全替代数据库技术。XML缺少作为实用的数据库所应具备的特性:高效的存储、索引和数据修改机制;严格的数据安全控制;完整的事务和数据一致性控制;多用户访问机制;触发器、完善的并发控制等。因此,尽管在数据量小、用户少和性能要求不太高的环境下,可以将XML文档用作数据库,但却不适用于用户量大、数据集成度高以及性能要求高的作业环境。
随着Web技术的不断发展,信息共享和数据交换的范围不断扩大,传统的关系数据库也面临着挑战。数据库技术的应用是建立在数据库管理系统基础上的,各数据库管理系统之间的异构性及其所依赖操作系统的异构性,严重限制了信息共享和数据交换范围;数据库技术的语义描述能力差,大多通过技术文档表示,很难实现数据语义的持久性和传递性,而数据交换和信息共享都是基于语义进行的,在异构应用数据交换时,不利于计算机基于语义自动进行正确数据的检索与应用;数据库属于高端应用,需要昂贵的价格和运行环境。而随着网络和Internet的发展,数据交换的能力已成为新的应用系统的一个重要的要求。XML的好处是数据的可交换性(portable),同时在数据应用方面还具有如下优点:(1)XML文件为纯文本文件,不受操作系统、软件平台的限制;(2) XML具有基于Schema自描述语义的功能,容易描述数据的语义,这种描述能为计算机理解和自动处理;(3)XML不仅可以描述结构化数据,还可有效描述半结构化,甚至非结构化数据。