XML作为一种数据格式在上世纪90年代中期出现,一开始其主要的目的应用于系统间数据的交换.为便于数据交换,其设计包含了几个主要的特点.首先是采用自描述的标签式数据描述方式,数据本身描述自己的含义,从而使数据的可读性大大提高,十分易于人或程序理解.另外XML采用层次型(树型)的方式组织数据,通过层次关系体现出数据与数据之间的关系.层次模型能够比较清晰地描述复杂对象,另外十分灵活易于扩展.经过近10年的发展,XML已经成为数据交换的事实标准,国际上形成了很多行业性的XML技术标准,对信息技术产生的很大的影响。
虽然XML设计之初主要应用于数据交换,但这种新型的数据组织方式却在信息管理领域应对信息的复杂性、可理解性和灵活性的挑战开启了新的道路,迎合了技术发展的方向和潮流。同时XML也模糊了传统上结构化数据和非结构化数据的严格分界线,对20余年来关系型数据库理论基础产生冲击。人们反思数据究竟应该是关系的还是层次化的,是单一的表格关系还是多样化的对象?
于此同时,在过去10余年中另外一个重要的技术也对IT产生了重要的影响,这就是面向对象的技术。 对象技术鼓励设计者使用对象而不是表来思考数据,在面向对象的设计思想中,数据也是以对象的形式存在,层次结构是数据对象的最直接、最自然的体现。而关系型数据库的理论与面向对象的思想并不匹配,E-R模型中没有对象的概念,在关系型数据库中实现对象的嵌套、对象的多样性很不直观,需要很大的代价。在关系理论中,数据应该被组织成规范的表——也就是数据应该按唯一的方式组织,使得程序员能够消除冗余,确保数据变化的一致性。这种设计技术的引入确保了关系表中的数据是一组独立的、通过键相关的数据。这种技术来自集合论的数学理论,但问题是集合论不能表达数据之间所有的关系和结构。
以规范的方式存储数据常常要求程序员在存入数据库之前分解对象,并且重新组织数据,但要使用它是,在使用SQL查询(多重连接)。就像在车库中存储车时,你把它的门、椅子、轮子等等分别卸下来存放。这不仅消耗资源,而且没有任何意义。