Enterprise Engineering Forum

企业工程论坛
Categorized as: 系统实现,系统架构   Tagged as: ,, ,

数据库和面向对象本来是两股道上跑的车

Author: flyingrobot,  Source: 企业应用探索日志,  Published: 2008年7月

Excerpt: 比较Codd所提出的数据库概念中的架构思想,与面向对象(OO)的对象永久化,二者有根本不同,但这并非谁更重要、谁取代谁的问题。

自E.F. Codd提出的数据库概念,首先理解为一种应用架构:把数据是独立的、专门管理公用资源。库(base, 一开始叫做数据银行data bank)构造和操作方式(比如存、取)是与具体的“使用”无关的。数据库中的数据,首先应当被看作独立、集中、公共的(根据需要可以附加操作权限)。

这个思想带来的是什么呢?不仅仅是“大量数据的管理”,更重要的是操作方式的标准化和简约化(所有的应用都表现为SELECT,UPDATE,INSERT,DELETE几种元操作)。它带来的好处和重要性,似乎有点被当今的程序员遗忘。

难得的是,Codd不仅提出了这一重要的应用架构或者思想,也提出了它的技术方案核心(关系数据模型, RDM),并且天才地将其建筑在集合论-关系代数之上。这个近乎完美的研究,奠定了近几十年商业计算的基础。类似的成果,迄今在计算机界,也没有第二个。

与数据库的数据集中、标准化管理相反 ,作为一种软件底层架构的面向对象(),要点之一是数据的私有化(封装),这同时还伴随着分隔化。一个类的大量对象(实例),都具有一样的操作,但可能并非一次性操作,这带来“永久化”的需要——选择适合的方法,将需要重用的实例保存起来,在需要的时候,将其读出(或激活)为当前活动的对象。

就算这种对象永久化选择了关系数据库作为其存储方案,这个体系,和Codd的数据库完全是两回事。形象地说,数据库和面向对象,本来是两股道上跑的车。如今对多数程序员,原本的“”是一个被遗忘的传说。但这个名字的暗示,和“数据库平台”(尤其是关系平台),总是在暗示和提醒着它们的不同,结果就闹 出许多许多的“争论”(比如,这篇《关系模型和对象模型的究竟匹配还是不匹配? 》和引发的热议)面向对象是重要的、基本的,但数据库的原理被遗忘,是一种损失,它不是面向对象所应该或适合“取代”的东西。而对它们的关系和结合,似乎很难看到有说服力甚至比较有条理的分析。

Copyright

  本发布物版权归原作者所有,经原作者许可在企业工程论坛(EE-Forum.org)公开发布,并允许个人及公益性机构非牟利性使用及传播。传播中需保持从标题、署名到各项内容及此声明包括链接地址等完整内容不变。引用或摘编文中内容或观点应符合公认准则。其它机构,或牟利性使用,请预先取得作者许可。保留一切未说明的权利。
  详细说明见: http://www.ee-forum.org/about/copyright ,管理者电子邮箱:admin(at)ee-forum(.)org

Cite Style

GB7714 style: flyingrobot. 数据库和面向对象本来是两股道上跑的车[EB/OL]. 企业应用探索日志, http://blog.csdn.net/flyingrobot/archive/2008/07/18/2673380.aspx, 2008年7月[2017-05-01 12:38]

Chicago style: flyingrobot, "数据库和面向对象本来是两股道上跑的车", 企业应用探索日志, http://blog.csdn.net/flyingrobot/archive/2008/07/18/2673380.aspx(accessed 2017-05-01 12:38)

Posted by   2010-01-06(转载)   Hits 3885   Modified 2010-01-25(Locked)
Prev Post: 
Next Post: 

Related Entries:

一个模型驱动企业应用平台架构方案框架
对模型驱动软件开发的理解
模型驱动机制与模型驱动系统(MDM&MDS)
复杂系统的层级原理与模型驱动软件体系结构
面向服务体系架构(SOA)和数据仓库(DW)的思考

Leave a Response

You must be logged in to post a comment.