今天是:
首页 联系我们 网站地图 加入收藏 设为首页
 
模具制造类
工艺品类
化妆品类
医疗保健类
旅游快递类
电脑与互联网类
塑料用品类
大型网站程序及高级系统
图书书店类
法律类
人才招骋类
留学移民咨询类
教育类
广告/传播类
影视音乐类
文化艺术类
宾馆饭店类
烟酒/食品/饮料类
农林畜牧渔类
清洁类
服装鞋帽类
家居装饰类
婚介爱情类
绿色环保类
机械设备类
电子电器类
招商拍卖类
房产金融类
其他类别
汽车摩托车及配件
您当前所在的位置:首页 >> 新闻动态     
  招聘与培训 >> 数据库栏目 >> 经验交流:数据库设计中的敏捷方法01  
 
引言
  在过去几年中,我们将敏捷方法应用于数据库设计中。我们总结出一些技巧,使得当应用程序发展时,数据库也能够进化,这是敏捷方法的一个重要属性。我们的方法是通过持续集成以及自动重构,通过数据库管理人员(DBA)和应用开发人员的紧密合作。这些技巧在应用开发的各个时期都有效。

  1敏捷方法学
  近年来,出现了一种新的软件开发方法学-敏捷方法学。这给数据库设计提出了一些新的、巨大的需求。这些需求的一个中心就是进化设计。在一个敏捷项目中,需要假定我们并不能事先确定系统的需求。因此在项目的初期有一个详细设计阶段的想法是不现实的。系统的设计必须随着软件的变化而进化。敏捷方法,尤其是极限编程(XP),通过一些实践使这种进化设计成为可能。在数据库设计采用敏捷方法,反复迭代。

  许多人会怀疑敏捷方法能否用于有大型数据库组件的系统。但我们的确使用了许多敏捷和XP技巧,用于解决基于大型数据库的项目中的进化与迭代问题。

  本文将介绍一些在数据库设计采用敏捷方法的实践。当然,这并不是说我们已经完全解决了数据库进化的问题,但是我们想提供一些行之有效的方法。

  2积极应对变化
  敏捷编程的一个显著特点就是它面对变化的态度。对软件过程的一般解释是尽早理解需求,停止需求的变动,将这些需求作为设计的基础,停止设计的变动,然后开始构筑体系。这就是瀑布方法--基于计划的生命周期。

  这种方法通过大量的前期工作来减少变化。一旦前期工作完成,需求变化会引起很大的问题。因此当需求变化时,这样的方法就会有很大的问题,因此需求变动是这种过程的一个很大的问题。

  而敏捷编程却以另外一种方式来面对变化。拥抱变化,甚至允许在项目开发的后期发生变化。尽管变化会被控制,但是这种态度会允许尽可能多的变化。变化部分来自于项目需求的不稳定,部分来自于要支持变化的商业环境来面对竞争压力。

  为了做到这样,必须采取不同的设计态度。设计不仅仅是一个阶段--在开始建筑之前就大部分完成的一个阶段;设计是一个持续的过程,与编码、测试甚至发布相关。这是计划设计与进化设计的不同之处。敏捷方法的一个重要贡献是提出了在可控制方式下的进化设计。因此不是由于设计没有预先计划好,产生了混乱。敏捷方法提供了控制进化设计和使其可行的技巧。

  敏捷方法的一个重要特点就是迭代式开发,即整个项目生命周期中运行多个完整的软件生命周期循环。敏捷过程在每次迭代中都会度过一个完整的生命周期。迭代可以完成最终产品的需求子集中编码、测试以及集成代码。敏捷方法迭代时间较短,通常是一周到两个月之间,而且我们更倾向于更短的迭代周期。

  当使用敏捷方法时,最大的问题就是数据库如何进行进化设计。许多人认为数据库设计是前期计划的工作,而在后期改变数据库设计计划会引起应用软件的崩溃;在配置以后改变数据库设计计划会导致数据迁移问题。

  在过去三年我们参加了一个大型的项目,其中用到了切实可行的进化设计的方法。该项目包括100人的项目组, 200多张表格,数据库在一年半的最初开发中一直在进化,甚至在为多用户分发的过程中也在进化。一开始我们一个月迭代一次,过了几个月之后变为2周迭代一次。

  随着我们将这些经验推广到项目中越来越多的部分,从越来越多的案例中获得经验。同时,我们也从其他敏捷项目中吸收了一些经验。

  2.1限制条件
  在讲述实践方法之前,必须指出我们并没有解决所有的数据库进化设计问题,特别是:

  ü 我们是为单独的应用设计一个应用数据库,而不是试图集成多个数据库;

  ü 我们没有做到24*7的数据库更新。

  虽然很多人认为我们无法解决这个问题,但其实这些问题是可以解决的。当然这需要进一步的工作,光说是不能解决问题的。

  点击数:1078  录入时间:2005/9/15 【打印此页】 【返回  
   
   
 
版权所有© 2005-2008 温岭太平环宇联动电脑技术工作室
本站域名:www.stonekj.com www.chinahyld.com
服务热线:0576-6176228
QQ 在 线:21395330 43513147
《中华人民共和国电信与信息服务业务》经营许可证 浙ICP证010050号
浙ICP备05027518号