面向对象在商务智能中的应用?
在Jdon这个网站学习了很多面向对象的知识。看到这里很多人有数据库要灭亡的说法。
我一直很困惑,像我现在做的移动经分项目,主要做的就是数据统计,以便移动领导决策分析。
在我们这里数据统计动着几千万条,上亿条的也有可能,性能对我们很重要。我很难想象如果把这些数据从数据库中搬出来,封装在对象里面,然后在计算(我们主要做数据抽取、转换、加载)。我们有强大的数据库系统,为什么还要搬到小型的业务系统上去了。业务系统也不可能保存几十T的数据吧。
我们常常说数据库是数据冬眠的地方。是的,我也是这么认为的。但实际上我们的数据库不只是保存数据(或者面向对象的说法,叫做数据持久化)。我们可能要对些字段做统计,或者转换。当我们面临很小的数据时,如几万条或者百万条的时候,也许我们还可以从数据库把他们取出来,再统计,再转换,再插入另外一张表。这个过程我们都可以用OO完成。 如果数据量到了千万条,上亿条,我真的想象不出,为什么不用数据库自身的统计,转换能力来做这些事。却要把它抽取出来,封装在对象中,做完转换,在写回去,这样做是很浪费网络,和计算资源的。这是我的困惑之一。
我另外的困惑就是,确实现在的数据库设计思想还有很多停留在过程设计阶段。它有很多缺陷,它没用面向对象那样直观的表示。要用数学的思考方式考虑很多细节。它没有对象里面的继承实现方法。有的话,各个数据库实现也不是一样的。在我们的开发中常遇到的问题是很难封装变化点。很难重用一些做好的设计。很难使数据库开发敏捷化。
我真的希望能有一套很好的数据库面向对象设计、开发方法学。我们现在为了追求性能用的是存储过程来实现数据库的开发。