DoSOFT产品技术分析 数据库应用演化论

在关系型数据库之后,数据库应用将向什么方向演进?XML数据库已经成为必然的趋势,但是XML数据库也有其一定的局限性。一时之间,后关系型数据库,BI数据库,XML数据库,混合数据库,众多的 数据库产品市场新鲜的理念与产品风起云涌,不知谁主沉浮。让我们回顾一下数据库走过的50多年历程,然后再来展望数据库的未来!

想了解数据库发展最新趋势,请点击这里

从最早用文件系统存储数据算起,数据库的发展已经有 50 多年了,其间经历了 20 世纪 60 年代的层次数据库(IBM 的 IMS)和网状数据库(GE 的 IDS)的并存,70 年代~80 年代关系数据库的异军突起,90 年代对象技术的影响。

关系型数据库面临挑战

但是,相对硬件的发展速度而言,数据库的功能似乎进展得还不够快。毋庸置疑,今天,信息的存储、组织、管理和访问,依然是计算机技术最重要的领域之一。近年来,随着科学技术、电子商务尤其是 Internet 的迅猛发展,信息的来源、数量、形式和使用方式都发生了很大变化,使传统关系数据库面临着巨大挑战。

  • 多样化的世界-信息的复杂性

今天信息的复杂性与关系型数据库理论产生的时代已不可同日而语,信息的结构日益复杂,随着个性化服务等需求增长,信息的多样性和差异性都大大增加了,而关系型理论在管理信息复杂性方面的不足日益明显。

E-R模型本质上是一个二维的模型,通过一系列二维关系的组合来描述复杂实体对象,每个表所代表的所有实体在建模设计时没有差异性,即使只有一个实体拥有某种属性,也必须为其建立一个字段。因而在很多系统中,我们经常可以看到一张表有数百个字段,而对于每条记录,大多数字段都是空的。

如果这种个体间的差异性不是仅仅表现在属性上,而且涉及结构和关系,则需要为有差异的实体建立不同的表和对应关系。因而今天的许多业务系统往往需要几千张表,甚至数万张表。数据库的结构变得十分复杂,数据库中的信息变得难以理解。

  • 多种信息应用方式-信息的可理解性

从某种意义上而言,今天业务系统数据库的信息是业务系统运行的副产物。数据库是为支撑特定业务应用的运行而设计,数据库中的数据也只被单一系统使用,所以很少考虑这些信息是否易于理解。然而,今天越来越多的系统需要相互协作、共享信息。信息的可读性、能否易于理解变得日益重要。关系型数据库在此方面存在较大不足,表中的数据不能自我描述,表与表之间的关系在数据中不能直接清晰地体现。从而使很多系统即使开放表结构,其他应用依然难以理解数据的关系和含义。

  • 需求及业务的变化-信息的灵活性 

随着IT系统进入社会生活的各个方面,信息不仅日益复杂,而且其需求内容和结构随着时间的推移也不断地产生变化.现实世界要求信息技术具有越来越高的灵活性和适应性.关系型数据理论所采用的是一种固定的建模方式,任何关系和属性一旦定义,就是固定的,难以随着需求的变化进行灵活的调整。

XML数据库的必然与局限

XML作为一种数据格式在上世纪90年代中期出现,一开始其主要目的是应用于系统间数据的交换。为便于数据交换,其设计包含了几个主要的特点,首先是采用自描述的标签式数据描述方式,数据本身描述自己的含义,从而使数据的可读性大大提高,十分易于人或程序理解。

另外,XML采用层次型(树型)的方式组织数据,通过层次关系体现出数据与数据之间的关系。层次模型能够比较清晰地描述复杂对象,并易于扩展。经过近10年的发展,XML已经成为数据交换的事实标准,国际上形成了很多行业性的XML技术标准,对信息技术产生很大的影响。

虽然XML设计之初主要应用于数据交换,但这种新型的数据组织方式却在应对信息的复杂性、可理解性和灵活性的挑战方面开启了新的道路,迎合了技术发展的方向和潮流。同时XML也模糊了传统上结构化数据和非结构化数据的严格分界线,对20余年来关系型数据库理论基础产生冲击。人们反思数据究竟应该是关系的还是层次化的,是单一的表格关系还是多样化的对象?

与此同时,在过去10余年中,另外一个重要的技术也对IT产生了重要的影响,这就是面向对象的技术。

面向对象技术鼓励设计者使用对象(而不是表)来思考数据,在面向对象的设计思想中,数据也是以对象的形式存在,层次结构是对数据对象最直接、最自然的体现。

而关系型数据库的理论与面向对象的思想并不匹配,E-R模型中没有对象的概念,在关系型数据库中实现对象的嵌套、对象的多样性很不直观,需要很大的代价。在关系理论中,数据应该被组织成规范的表–也就是数据应该按唯一的方式组织,使得程序员能够消除冗余,确保数据变化的一致性。这种设计技术的引入确保了关系表中的数据是一组独立的、通过键来关联数据。这种技术来自集合论的数学理论,但问题是集合论不能表达数据之间所有的关系和结构。

以规范的方式存储数据常常要求程序员在存入数据库之前分解对象,并且重新组织数据–就像在车库中停车时,你把它的门、椅子、轮子等等分别卸下来存放。这不仅消耗资源,而且没有任何意义。

今天在应用领域,软件开发已经广泛采用了面向对象的设计思想和技术。而面向对象的数据库技术却迟迟未被市场接受。对象数据库出现时,关系型数据库供应商已经积聚了巨大的动力,并占领了大量市场份额。在标准的SQL接口下,访问关系型数据库的面向对象程序很容易写。相反,多数早期的对象数据完全不提供SQL接口,不适合任何查询应用程序。

XML技术的出现,以及相关国际标准的制定(如Xquery, SQL/XML)为数据库引入面向对象的技术提供了新的动力。现实外部世界的技术挑战,XML、面向对象技术与标准的成熟为新一代数据库的创新提供了条件。那么未来会是怎样呢?迎接新的技术变革我们准备好了吗?
 
融合之道:混合数据库与PureXML

今天,关系数据库推动各种规模的公司发展业务。尽管这些数据库是受欢迎而且重要的,但从长远来看,它们根本无法与用 XML 表示的半结构化(和分层)内容相比。我们无法忽略过去20年来业界在关系型数据库上的巨大投入(企业在关系数据和关系数据库管理系统 (RDBMS) 方面的投资高达万亿美元)。

因此,简单地将 RDBMS 替换成纯 XML 存储的做法并不可取,但我们更无法回避新技术的潮流和巨大价值。世界既可以是关系的,也可以是层次的,两种技术各自有其优势和局限性,因而容纳关系型和层次型两类模型的混合数据库就成为数据库发展的必然选择。

IBM 的新一代数据库 DB2 9中第一次实现了关系型引擎与层次型引擎的结合,实现了混合数据库。IBM将此技术称为pureXML技术。
关系型数据库很早就已经开始考虑对XML的支持,但传统的技术一般还是基于关系型数据库的基本框架,用表之间的关系去模拟XML的层次结构.仅仅是对关系型数据的一些功能性增强,而非真正去适应XML所代表的层次型结构和面向对象的数据处理方法,因而难以发挥XML的灵活性、扩展性等方面的优势,大大限制了XML技术在数据库的应用.

关系数据库中的第一代 XML 支持是切分(或分解)文档以适应关系表格,或将文档原封不动地存储为字符或二进制大对象(CLOB 或 BLOB)。这两个方法中的任一种,都尝试将 XML 模型强制转换成关系模型。以大对象保存XML数据的方式,使得数据库无法理解XML中的信息内容,每次对XML中任何信息的访问都必须将整个文档取出,然后再分解获得相应的信息内容,效率和灵活性都存在极大的限制. 

如果采用将XML文档中的数据项都拆分到很多个对应的关系型表中的方式,首先失去了XML灵活性的优势。由于XML的数据项与关系型表中字段的对应是固定的,所以XML的扩展和变化必然要求数据库中对应表的结构改变;另外数据对象拆分后,已经不再有物理上对象的概念,同样在功能和性能上都有很大的局限性。
 
与过去关系型数据库的XML增强功能不同,pureXML技术第一次真正意义上提供了一种与XML层次型结构相匹配的层次型存储方式和相对应的操作访问方式。在pureXML中,XML 作为一种新的数据类型。几乎每个 DB2 组件、工具和实用程序都已得到增强,以识别和处理这种新数据类型。新的存储模式以解析后的注释树形式(类似于 XML 文档对象模型 (DOM))保留 XML,它与关系数据存储分开。

想了解数据库发展最新趋势,请点击这里