技术开发 频道

传统数据库设计被“演进”取代?


【IT168技术资讯】

   上击发布了一篇文章来介绍演进的数据库设计(EDBD)的优点,这是一种从敏捷/极限编程世界中衍生出来的数据库设计的一种新方法。为了从另一个角度来看问题,我们请Mark WhiteHorn对这篇文章进行了评论,并给出它对演进的数据库设计(EDBD)和传统的数据库设计(TDBD)方法的看法。

什么是传统的数据库设计?

   正如对于敏捷建模和极限编程没有统一的定义一样,传统数据库设计(TDBD)也是如此。如果三个传统的数据库设计者在一起,你会发现关于如何最好的设计数据库的四个看法。但是,出于讨论的目的,我们假定其为基于用户的开发,逻辑和物理建模。

   首先业务分析人员与用户进行交流,因为用户心中有自己的模型;根据这些交流的结果,分析师建立一个逻辑模型。这就是典型的实体关系(Entity Relationship,ER)模型,它可以被用户否决从而重新设计。开发者然后根据这个模型增加烦琐的技术元素(诸如数据类型、索引等等),这将逻辑模型转化为一个物理模型。最后,他们在建模工具中按下一个虚拟的按钮,得到适合他们所选引擎的数据库模式。

不支持我们,就是反对我们?

   这篇文章表现出来的一个方面是对传统的数据库设计者的轻视:“数据库设计人员未能充分理解它的基本原理和技术…他们有很多东西需要做。”和“还需要做更多的工作来让现有的数据库从业人士认同它,并克服长期以来一直存在的许多错误的看法。”

   尽管这样说会引起演进的数据库设计(EDBD)支持者的极大的满足,它也会疏远那些这篇文章试图所说服的那些人,我认为这是一件可耻的事情。传统数据库设计这样已经确立的方法会因为受到各种挑战而获益,因为它可以被完善或被取代。

   这篇文章提出这样一个前提:‘数据库设计的传统方法很明显已经不忙满足我们的需要’,那么让我们来看一下这个观点。

传统数据库设计不能满足我们的要求了吗?

   让我们看一下原文中如何描述传统数据库设计已经不满足用户要求了吧,‘多长时间你就会发现数据库的表中具有不再被使用的字段?或者有些表的字段是否被用于好几种用途,因为这个表增加需要的字段已经非常困难;或者发现有存在数据质量问题的表’的确,我不能否认这些都是一些存在的问题。

   但是,根据这些就能判定传统数据库设计有缺陷吗?不,演进的数据库设计(EDBD)支持者在这一点上进行争论,就如同说‘我们看到了大量的坏数据库,因此这个设计过程是有缺陷的,因此我们必须改变它。’问题就在于此,条件和结论之间不符合逻辑。

   你可以这样想一下,“我们看到了大量的道路交通事故,因此交通法规就是存在缺陷的,因此我们必须修改它。”事实上,大多数交通事故的发生是因为人们没有正确的按照交通规则来驾驶。规则规定人们不能喝酒驾驶,但是人们不遵守。人们往往超速驾驶;他们还闯红灯等等。

   类似的方式,我同意存在很多有缺陷的数据库,但是这并不能说明传统数据库设计存在缺陷的。
0
相关文章