newasp home
用户管理  |  用户注册
首 页 ┆ 文章中心 ┆ 下载中心 ┆ 社区论坛 ┆ 客户留言
  • 站点首页
  • 电脑网络技术
  • 图形图象技术
  • 网络应用
  • 多媒体技术
  • 电脑入门初步
  • 网络推广技术
  • 数据库设计
  • Linux技术
  • 网络动态
用户名: 密码:
当前位置:PC我爱社区 → 文章中心 → 数据库设计 → 文章内容

重构数据库:演进的数据库设计

减小字体 增大字体 作者:网络  来源:转载  发布时间:2008-5-11 2:49:36

COOCO视频会议实现沟通创造价值!    影视制作、广告摄影、3D制作、企业形象策划
文红论文网提供各类论文发表和翻译 像素科技--全力推出主机租用特惠行动!

   演进的数据库设计(Evolutionary Database Design,EDD,又叫数据库重构)是当今软件开发世界中一个颇具争议的话题。这是一个刺痛很多数据库管理员DBA的话题,因为它推动了对包含实时客户数据的数据库模式的改变,有时候甚至是多个应用程序使用同一个数据库。

   考虑到这个争论性的话题,以及在许多数据库专家对重复技术的抵制,似乎将其中一些公共的批评意见与《重构数据库:演进的数据库设计》一书的作者之一Scott Ambler进行探讨,是一件非常有意义的事情。

   Scott W.Ambler,国际知名的软件过程改进顾问,技术领头人,敏捷建模、敏捷数据、企业统一过程、敏捷统一过程方法学的创始人。Scott经常在Software DeveloPment、JavaOne、OOPSLA和DAMA等会议上进行主题演讲,他写作(或与人合著)出版的书还包括《Agile Modeling》、《Agile DatabaseTeehnique》、《The Obieet Primer,ThirdEdition》、《The Elements of UML UML 2.0 Style》和《TheEnterPrise Unified Process》等。

   RD:你好,Scott。首先,请你告诉我们为什么你认为数据库设计需要一个演进式的方法?

   Scott:大家首要知道的是,数据库没有什么特殊的地方。就如同设计工作方面的演进式方法也可以非常好的适合软件开发的其他方面一样,它们对数据库也同样如此。正如Pramod和我在《重构数据库》一书中所指出的一样,它实际上是使现有的关系数据库模型发展的一个技术上的尝试,甚至可以让数百个不同的系统来访问它。

   不幸的是,传统数据库社区的人们认为改进数据库模式是一件非常难的事情,因此从来不去考虑如何来实现它。更糟糕的是,这种看法导致了一些其他方面人们的疑问,诸如是否需要一个描述系统早期数据方面信息的建模。最终的结果是,许多数据专业人士未能理解今天应用程序开发者认为理所当然的一些基本的原理和技术。他们必须要做很多工作来弥补这个差距。

   RD:就某种意义上来说,这个数据库模式是问题领域的一种反思:只要它经过详细的设计,一旦设计好后,它通常不应该再需要改变太多,当然,这个设计也是来自于客户、终端用户、业务分析师等之间的共同努力而产生的。考虑到这些原因,在软件开发领域真的需要演进的数据库设计吗?

   Scott:我将拿现有的数据库产品的状况来说明这一点。多长时间你会发现数据库的表中具有不再被使用的字段?或者有些表的字段是否被用于好几种用途,因为这个表增加需要的字段已经非常困难;或者发现有存在数据质量问题的表?数据仓库协会(EDWI)几年前曾表示,在美国企业中,数据质量问题每年所带来的损失高达6110亿美元。这个结论告诉我们,实际上我们在前期的设计工作上做的并不完美, 对数据库的需求实际上是随着时间而变化的。事实已经非常明白的说明,企业需要一个安全的方式来修正已有的数据库问题,而在重构数据库中体现的方法只是其中的选择之一。数据库设计的传统方法明显已经被证明不能解决我们所面对的问题。

   RD:你是否把数据库重构看作被应用到细节开发中的一种方法?就像测试驱动设计(TDD)技术一样。因此你要开始一个测试,创建一个表,然后再编写另一个测试,增加一个字段、一个约束等等?

   Scott:当然,事实上我已经在2007年发布的IEEE软件上发表了一篇文章来专门介绍这个话题。

   RD:在此之前,我与一些数据库管理员和开发者进行了交流;发现有个频发困扰他们的主要问题,当你将一个系统投入生产后,然后做出修改的话,需要方案进行升级或数据移植;这种情况每隔几个星期都会发生。

  Scott:这就是为什么人们需要阅读《重构数据库》一书的原因。首先,你在开发者沙盒(sandbox)开发和测试你的修改,只有当你相信这种修改没问题后,你才能进入更高级别的沙盒(sandbox)进行测试。直接针对一个真实的数据库进行开发很明显是一个非常冒险的做法,因此不要那么做。

   其次,正如TDWI数据所显示的那样,你实际上需要一个可行的策略来扩展一个现有的产品数据库。这种策略就是需要一个过渡期,即原有的数据库模式和修正后的模式应该并行运行一段时间,数据库自动保持更新。这个期限可能是几个月也可能是几年,目的是给访问系统的开发团队时间来更新他们的系统,并部署新设计到产品中。

   一旦系统被更新,老模式就被移除。在《重构数据库》一书中,我们提供了解决方案,包含利用这种方法进行的60多个重构实例的完整源代码。
 

[1] [2] [3]  下一页

[] [返回上一页] [打 印]
  • ·上一篇文章:初学者入门:FreeBSD服务器的安装与优化
  • ·下一篇文章:SQL SERVER 2005同步复制技术的应用

文章评论评论内容只代表网友观点,与本站立场无关!

用户名: ! 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容: !

         (注“!”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码

频道栏目导航

  • 电脑网络技术
  • 图形图象技术
  • 网络应用
  • 多媒体技术
  • 电脑入门初步
  • 网络推广技术
  • 数据库设计
  • Linux技术
  • 网络动态
  • 更多分类

本类热门阅览

  • · 如何建立SQL Server 2005数据库邮件...
  • · C# 怎样实现远程连接SQL Server200...
  • · SQL 2005 XML最佳实施策略用法
  • · SQL Server2005高可用性方面的不足...
  • · 在SQL Server 2005中解决死锁问题
  • · Sql server 2005密码安全追踪与存储...
  • · SQL Server2005数据库连接中常见问...
  • · VS 2008和老的VS 2005附件包的兼容...
  • · 专家预言:PHP将比Java更受开发人员...
  • · Windows操作系统下JSP程序开发环境...
  • · Windows下如何用vc直接编译连接DDK...
  • · 黑客编程:ASP木马代码

相关文章

  • ·重构数据库:演进的数据库设计

关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 管理登陆

PC我爱社区 站长:子昀 点击这里和我联系
沪ICP备06047794号