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

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

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

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

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

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

作者:Flyingrobot, 2008年7月18日, 企业应用探索日志,  http://blog.csdn.net/flyingrobot
(任何应用、传播请保持原署名及出处。商业机构或营利性使用,需取得作者许可)

更正:之前将Codd的名字打错了。2008-7-19

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值