數(shù)據(jù)庫設(shè)計(jì)中的敏捷方法

字號(hào):

引言
    在過去幾年中,我們將敏捷方法應(yīng)用于數(shù)據(jù)庫設(shè)計(jì)中。我們總結(jié)出一些技巧,使得當(dāng)應(yīng)用程序發(fā)展時(shí),數(shù)據(jù)庫也能夠進(jìn)化,這是敏捷方法的一個(gè)重要屬性。我們的方法是通過持續(xù)集成以及自動(dòng)重構(gòu),通過數(shù)據(jù)庫管理人員(DBA)和應(yīng)用開發(fā)人員的緊密合作。這些技巧在應(yīng)用開發(fā)的各個(gè)時(shí)期都有效。
    1敏捷方法學(xué)
    近年來,出現(xiàn)了一種新的軟件開發(fā)方法學(xué)—敏捷方法學(xué)。這給數(shù)據(jù)庫設(shè)計(jì)提出了一些新的、巨大的需求。這些需求的一個(gè)中心就是進(jìn)化設(shè)計(jì)。在一個(gè)敏捷項(xiàng)目中,需要假定我們并不能事先確定系統(tǒng)的需求。因此在項(xiàng)目的初期有一個(gè)詳細(xì)設(shè)計(jì)階段的想法是不現(xiàn)實(shí)的。系統(tǒng)的設(shè)計(jì)必須隨著軟件的變化而進(jìn)化。敏捷方法,尤其是極限編程(XP),通過一些實(shí)踐使這種進(jìn)化設(shè)計(jì)成為可能。在數(shù)據(jù)庫設(shè)計(jì)采用敏捷方法,反復(fù)迭代。
    許多人會(huì)懷疑敏捷方法能否用于有大型數(shù)據(jù)庫組件的系統(tǒng)。但我們的確使用了許多敏捷和XP技巧,用于解決基于大型數(shù)據(jù)庫的項(xiàng)目中的進(jìn)化與迭代問題。
    本文將介紹一些在數(shù)據(jù)庫設(shè)計(jì)采用敏捷方法的實(shí)踐。當(dāng)然,這并不是說我們已經(jīng)完全解決了數(shù)據(jù)庫進(jìn)化的問題,但是我們想提供一些行之有效的方法。
    2積極應(yīng)對(duì)變化
    敏捷編程的一個(gè)顯著特點(diǎn)就是它面對(duì)變化的態(tài)度。對(duì)軟件過程的一般解釋是盡早理解需求,停止需求的變動(dòng),將這些需求作為設(shè)計(jì)的基礎(chǔ),停止設(shè)計(jì)的變動(dòng),然后開始構(gòu)筑體系。這就是瀑布方法--基于計(jì)劃的生命周期。
    這種方法通過大量的前期工作來減少變化。一旦前期工作完成,需求變化會(huì)引起很大的問題。因此當(dāng)需求變化時(shí),這樣的方法就會(huì)有很大的問題,因此需求變動(dòng)是這種過程的一個(gè)很大的問題。