文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>数据库世界的未来格局

数据库世界的未来格局

时间:2010-10-07  来源:youngster21

  “One of the things I've been most entertained by as the years have gone by, is observing what things have lasted and what haven't. So many patterns, frameworks, paradigm changes, and algorithms, allargued for with passion by smart people, thinking of the long term, balancing all the known issues, have not warranted more than a yawn over the long haul.”

                                                                                                            --- By PhilipNelson

 

一.  关系数据库的局限

关系型数据库是目前应用最广泛的数据库,其抓住事物关系的本质,认为再复杂的关系都可以分解来可用二维表表示,所以主要由一个一个的二维表组成。

其主要优点包括:数据库编程接口简单友好;允许用户使用标准查询语言SQL几乎毫无差别地从一个关系型产品到另一个关系型产品存取信息;与关系数据库接口的应用软件具有相似的程序访问机制,提供大量标准的数据存取方法;而且关系数据库具有相当简单的结构(元组),可为用户或程序提供多个复杂的视图。数据库设计和规范化过程也简单易行和易于理解。

但其根本缺陷是缺乏直接构造与应用有关的信息的类型表达能力,造成很多应用问题,比如:大多数RDBMS产品所采用的简单类型在重构复杂数据的过程中将会出现性能问题;数据库设计过程中的额外复杂性;RDBMS产品和编程语言在数据类型方面的不协调。现代的RDBMS产品主要应用于只有相对简单的数据类型的领域,尽管某些产品在一定程度上克服了缺点,但在本质上由于第一范式的要求,所有的数据必须转换为简单的类型。

随着信息技术的飞速发展,数据处理不仅在数量上要求越来越大,而且在质量上也要求越来越高,数据库管理的对象已不再仅限于文本数据等简单的数据类型,而需要描述和保存大量多媒体非结构化的复杂数据,以及数据间的关系。由于关系数据库不能支持复杂数据类型,所以就需要额外地分解数据结构工作,存储开销也会增大,另外这些被分解的结构不能直接表示应用数据,在查询时就需要大量的连接运算,导致性能问题。

二.  技术如何应对需求?

针对上述关系数据库的缺陷,引入允许处理复杂数据类型的基于对象/面向对象数据库似乎是一种必然,并且(面向)对象数据库能够有效解决“阻抗失配”的问题,使得高级程序设计语言与数据库无缝连接,提高效率性能。

具体来说,问题的解决方案有两种:对象关系映射(O-R Mapping)数据库模型和(面向)对象数据模型。对象关系映射数据模型通过提供更加丰富的类型系统---包括复杂数据类型和面向对象---扩展了关系数据模型,简单来说就是建立在关系模型上的面向对象数据库,那么相应地关系查询语言,特别是SQL,需要扩展以处理更丰富的类型系统。(面向)对象数据库系统则是指支持面向对象类型系统并允许直接在面向对象程序语言中使用该语言原有的类型系统访问数据的数据库系统,那么相应地对原有面向对象程序语言进行扩展---在该语言原有的类型系统上增加持久化和其他数据库特征。这样就能相对有效地表达客观世界和有效地查询信息。

SQL语言的声明式本质和有限的能力(与程序设计语言相比)为防止程序设计错误对数据造成破坏提供了很好的保护,同时使得一些高级优化(例如减少I/O)相对简单。对象关系映射模型的目标在于通过使用复杂数据类型而使得数据建模和查询更加容易。然而,对于那些主要在内存中运行以及对数据库进行大量访问的特定类型的应用来说,一个声明式(如SQL)会带来显著的性能损失。持久化程序设计语言定位于那些有高性能要求的应用,提供了对持久数据的低开销存取,并且消除了数据转换的要求(如果这些数据要用程序设计语言来操纵的话)。

虽然(面向)对象数据库有效地弥补了关系数据库的缺陷,但其缺点是1.技术还不是很成熟,所以应用上的风险较大,并且ODBMS如今还存在着标准化问题,由于缺乏标准化,许多不同的ODBMS之间不能通用。此外,是否修改SQL以适应面向对象的程序,还是用新的对象查询语言来代替它,目前还没有解决,这些因素表明随着标准化的出现,ODBMS还会变化。2. 面向对象技术需要一定的训练时间,而数据库系统程序员又多半是熟悉关系数据库编程。要成功地开发这种系统的关键是正规的训练,训练之所以重要是由于面向对象数据库的开发是从关系数据库和功能分解方法转化而来的,人们还需要学习一套新的开发方法使之与现有技术相结合。3. 理论还需完善,从正规的计算机科学方面看,还需要设计出坚实的演算或理论方法来支持ODBMS的产品。

正是由于这些缺陷,阻碍了(面向)对象数据得到应有的应用。但从长远角度来说,(面向)对象数据库必然会应市场需求而蓬勃发展,在一定时期成为主流。需求驱动技术发展的过程往往是:1.由于市场应用本身的惰性(对已熟悉事物的依赖性以及对新生事物的谨慎态度),新兴技术即使更加适应需求,在一段时间内也不得到认可;2.随着进一步的熟悉,需求的不断推动以及技术本身的成熟,新兴技术会得到热捧,甚至得到不合理的应用;3.在“潮流逐步退去”后,技术终于得到合理的认可和应用;4.更新的技术依次规律循环进行。按照这样的规律,只要是对(面向)对象数据库系统的需求是必然趋势,那么不管是何种现状,最终(面向)对象数据库系统会得到广泛的合理的应用。

三.  未来格局如何?

不管是目前(面向)对象数据库系统应用的现状不佳,还是很多专家学者认为关系数据库将死,从信息技术发展的历史来看,未来必然会是两者并存。因为这两种数据模型本质上并不是对立的。

拿函数式语言,过程式语言与面向对象程序语言来说,目前虽然面向对象语言是主流,这是由于多数软件系统越来越庞大复杂,但是不同的应用领域,软件的复杂度是从简单到复杂呈现一定分布的,不同的语言有其不同的优势特长,适合用于解决不同类型问题,不同复杂度的问题,所以在将来这三种语言一定是并存,共分程序设计语言的天下的,当然在不同的时期会出现此消彼长的态势,或者又会出现新的语言。

类似地,数据库系统的世界也是如此。关系数据库系统与(面向)对象数据库系统的出现是为了满足现实中不同需求,没有哪种类型的数据库能够满足所有的需求。不同的需求导致它们会并存分割整个市场。

当然还有一种可能就是关系模型与对象模型相互融合,取长补短,这算不算另一种形式的并存呢?

参考资料

【1】A New Renaissance for ODBMSs?

【2】《数据库系统概念》·计算机科学丛书    机械工业出版社

【3】面向对象数据库与关系数据库

【4】关系数据库系统与面向对象数据库系统各自的优缺点

【5】关系型和后关系型数据库技术的演变

【6】关系数据库的面向对象特征及其局限

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载