数据库最严重的问题是数据库的滥用和数据的无规划,本文只提出数据库的滥用问题,希望起到抛砖引玉的作用,引起大家重视。
数据库滥用现象有两个层面的意思,一个是在不该使用数据库的需求中使用数据库,另一个是在数据库的使用上有很大的随意性和惯性。
数据库滥用的根源在于国内除了极少数行业,很少有真正的DB参与项目,在国内的项目,大多都是以完成功能为首要任务(能做好功能已经很优秀了),对数据规划的漠视甚至无视越来越严重,造成的后果在信息化初期是没有体现的,但经过了10多年的高速发展(伴随互联网和网络的发展,从2000年左右开始,信息化经历了一个高速膨胀的发展阶段),恶果必定会逐渐体现出来。
现在计算机的任务说到根上就是计算和信息处理。计算是专指计算机完成大规模的数学计算任务,与本文关系不大。信息处理指包含数据、文本、多媒体等各种类型数据的创建、保存、流转、共享、维护。互联网网站的主要功能是信息共享,财务系统除了计算之外,也是数据的共享和流转,大到互联网、ERP,小到日记本,数据都是所有软件的核心,而数据存储应该是核心的核心,其重要程度犹如大厦的基石,而对数据库的滥用,很大程度上影响了这个基石的牢固。
项目的开始应该对系统涉及到的数据进行详细规划,由数据量和数据类型、数据需求确定如何对数据进行存储,然后再对数据库进行技术选型。数据库的不同对软件的实施成本影响极大,使用Oracle和mySql,甚至Access或文本系统是完全不同的,国内盗版的横行和版权意识的缺失,更助长了滥用的风气。
另一个方面,架构师或者DB应该对各种持久化技术有所了解。现在很多公司的技术模式是习惯影响设计,而不是需求影响设计,用惯了Oracle就不会再用sqlServer, 更别说mySql了,一个简单的存储,或者一个小规模系统也要上Oracle,这种现象还是很普遍的,甚至很多小系统根本不需要数据库的支撑却使用企业级数据库,有些技术人员脱离了数据库就不知道软件怎么做,增删改查+UI控件就是一个技术人员的全部技能,这种人不在少数,这里并不是批评程序员,是整个行业的浮躁和氛围影响了每个人。本人也仅仅是意识到这个问题,并从自身在改善这种现状。
精力所限,先简单写这么多。
注:相信有技术优秀的公司已经做的不错了,但是在国内这种公司一定是凤毛麟角。
【争论】
关于数据库做多少事适合的问题是个争论很久的话题,让数据库处理业务逻辑是最高效的,缺点是维护和移植困难。像oracle这样的数据库的确提供了非常强大的功能,数据存储只是其最最基础的功能,但我觉得对于常规应用,除非很必要,尽可能的还是要让数据库少做事,从设计到实现,现在用的面向对象语言的可塑性远比数据库语言要好很多。
原文链接:http://www.cnblogs.com/mexi/archive/2011/07/03/2096724.html