在线观看国产区-在线观看国产欧美-在线观看国产免费高清不卡-在线观看国产久青草-久久国产精品久久久久久-久久国产精品久久久

美章網(wǎng) 資料文庫 數(shù)據(jù)庫重構(gòu)在軟件開發(fā)中的應(yīng)用范文

數(shù)據(jù)庫重構(gòu)在軟件開發(fā)中的應(yīng)用范文

本站小編為你精心準(zhǔn)備了數(shù)據(jù)庫重構(gòu)在軟件開發(fā)中的應(yīng)用參考范文,愿這些范文能點燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。

數(shù)據(jù)庫重構(gòu)在軟件開發(fā)中的應(yīng)用

1數(shù)據(jù)庫重構(gòu)條件

數(shù)據(jù)庫重構(gòu)不僅適用于新數(shù)據(jù)庫開發(fā),也適用于正在進行維護和修改的現(xiàn)有數(shù)據(jù)倉庫。在數(shù)據(jù)庫重構(gòu)過程中要高度結(jié)構(gòu)化和安全化,確保被其支持的應(yīng)用程序正常運行。出現(xiàn)如下情形時數(shù)據(jù)庫必須重構(gòu)。

(1)有太多的行和列數(shù)據(jù)庫中的表展現(xiàn)了其在性能方面存在的問題,通常數(shù)據(jù)庫包含一些含有10多億行的表,像這種情形可能更適用于分段數(shù)據(jù)庫或系統(tǒng)記錄資料庫。

(2)出現(xiàn)多功能表和多用途列用于數(shù)據(jù)語義的列在很多情況下取決于上下文是否需要重構(gòu)。例如,使用一個數(shù)據(jù)列存儲用戶生日還是雇員日期,取決于記錄指代的是一個用戶還是一個雇員。表缺乏內(nèi)聚力,其中的一列不能完全明確用途,試圖存放來自多個不同實體的數(shù)據(jù),這種情況下需對列進行處理。(3)存在冗余信息重復(fù)數(shù)據(jù)展現(xiàn)了數(shù)據(jù)不一致的可能性,例如,在多個源數(shù)據(jù)系統(tǒng)中客戶信息是重復(fù)的,解決數(shù)據(jù)重復(fù)是數(shù)據(jù)庫的功能之一。

(4)存在復(fù)雜的ETL現(xiàn)象當(dāng)ETL包中存在太多流動路徑和復(fù)雜的變換節(jié)點時,故障排除和維護就變得困難。圍繞這些多用途的ETL對象,編寫測試用例會很困難,因此,建立簡單、單一用途的ETL對象集合并使用序?qū)ο箧溄铀鼈兪欠浅?扇〉谩?/p>

(5)存在大型SQL模塊當(dāng)一個SQL腳本或者預(yù)存程序視圖完成太多內(nèi)容時,它經(jīng)常會是一個很大的、包含多個SQL語句的腳本。這樣的腳本存在著代碼重復(fù)的風(fēng)險,所以應(yīng)該分解為一小組獨立的、高內(nèi)聚低耦合的模塊。

(6)存在不符合的維度有兩個或兩個以上維度,并包含重疊數(shù)據(jù)的多維度數(shù)據(jù)模型會引起數(shù)據(jù)重復(fù)和不一致性,必須創(chuàng)造單一的、多功能的維度來避免這個問題。

(7)濫用物化視圖有索引的視圖或物化的視圖是現(xiàn)代關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的一個很強大的功能。明智地使用,它們可以是數(shù)據(jù)存取和基表物理實現(xiàn)之間的一個有效緩沖區(qū)。然而,濫用物化視圖會嚴重地混淆數(shù)據(jù)庫設(shè)計。

(8)物化視圖利用不夠如果數(shù)據(jù)庫僅僅依賴訪問基表,那么就存在脆弱性的風(fēng)險。也就是說,這些基表物理實現(xiàn)的輕微變化,會對這些基表的不同訪問器產(chǎn)生意想不到的效應(yīng)。物化視圖的選擇需要在查詢性能、視圖維修成本和基表靈活性之間取得適當(dāng)?shù)钠胶狻?/p>

(9)過度依賴文檔數(shù)據(jù)庫中的表、列、腳本、預(yù)存程序、ETL模塊和其他組件,如果在沒有所附文件的情況下難以理解,那么表明它們可能需要重構(gòu)。和軟件一樣,數(shù)據(jù)庫中的組件需要自我記錄和自我解釋。干凈的設(shè)計可以減少對文檔的需求。

2如何重構(gòu)

(1)驗證重構(gòu)是否適當(dāng)首先應(yīng)思考如下問題:①這個重構(gòu)有意義嗎?②現(xiàn)在所做的修改真的需要嗎,是否可向后推遲?③修改后在哪些方面得到優(yōu)化?

(2)選擇適當(dāng)?shù)闹貥?gòu)一旦確定要進行重構(gòu),一定要選擇一個適當(dāng)?shù)闹貥?gòu)。有時候需要評估對重構(gòu)可能產(chǎn)生影響的數(shù)據(jù)模型等其他領(lǐng)域。例如,某一個項目團隊可能希望引入列在財務(wù)表中添加結(jié)余,但是沒有意識到客戶表中已經(jīng)存在表示結(jié)余的列,在這種情況下,移動列將是一個最合適的重構(gòu)。

(3)棄用原有的架構(gòu)當(dāng)用一個產(chǎn)出的數(shù)據(jù)倉庫重構(gòu)一個數(shù)據(jù)模型時,可能需要建立一個過渡或折舊時期,確保所有BI應(yīng)用能夠正常地工作。在此期間,原始架構(gòu)和重構(gòu)架構(gòu)并行運行。一個BI應(yīng)用使用原始架構(gòu)或新架構(gòu),但不是兩個都使用。兩個架構(gòu)的數(shù)據(jù)必須同步,以確保BI應(yīng)用無論使用哪個架構(gòu)都能正常工作。在折舊期,BI應(yīng)用被修改,并從過時的架構(gòu)移動到新的架構(gòu)。最后,過時的架構(gòu)下線,開始最終測試,確保沒有數(shù)據(jù)損壞。折舊的過程需要盡可能自動化,以確保重構(gòu)期間無縫轉(zhuǎn)變。

(4)在之前、之中、之后測試安全更改數(shù)據(jù)模型的唯一方法是有一個健康的在任何時候均可運行和重復(fù)運行的測試組,并與更改緊密相連。在開始更改之前,要確保所有測試全部通過,并評估測試組的完整性,增加任何希望擁有的測試用例。測試BI應(yīng)用數(shù)據(jù)架構(gòu)的所有方式。此外,要創(chuàng)建一個測試組來驗證數(shù)據(jù)遷移策略。測試所有BI應(yīng)用,確保它們在數(shù)據(jù)或者行為中不發(fā)生更改。最為重要的是,為新引入的架構(gòu)更改增加新的測試,刪除過時或無關(guān)的測試。測試自動化是在整個數(shù)據(jù)庫重構(gòu)過程中唯一可行的測試或復(fù)驗方法。

(5)修改數(shù)據(jù)庫架構(gòu)可使用小的、高度凝聚的、腳本化的變化來實現(xiàn)已經(jīng)計劃了的重構(gòu)。使用測試驅(qū)動數(shù)據(jù)庫開發(fā)方法進行很小的測試,建立一個可以持續(xù)使用的回歸測試組。編寫完新代碼并通過新測試,檢查這些更改已經(jīng)在版本控制系統(tǒng)中。

(6)遷移源數(shù)據(jù)許多重構(gòu)需要把數(shù)據(jù)從舊架構(gòu)遷移到新架構(gòu)中,尤其當(dāng)重構(gòu)是一個產(chǎn)出的數(shù)據(jù)倉庫時。移動數(shù)據(jù)重構(gòu)是專門針對此項而進行的設(shè)計。但有時候,如何提高數(shù)據(jù)質(zhì)量是重構(gòu)的一個目標(biāo),可進行一個或多個數(shù)據(jù)質(zhì)量重構(gòu),例如,采用標(biāo)準(zhǔn)版本或者引入通用格式這樣的重構(gòu)。數(shù)據(jù)遷移也應(yīng)該編寫腳本,但其需要經(jīng)過測試,以證明支持數(shù)據(jù)遷移。

(7)重構(gòu)外部訪問程序通常這涉及讓BI應(yīng)用適應(yīng)新架構(gòu),但也有可能涉及修改訪問數(shù)據(jù)倉庫的自定義程序。修改這些外部程序需要遵循規(guī)范的重構(gòu)步驟。

(8)運行所有測試所有測試都必須在重構(gòu)前進行,所有在重構(gòu)過程中添加的新測試也需要在完成重構(gòu)之后全部通過。理想情況下,讓所有測試自動化進行,并且在重構(gòu)期間重復(fù)第運行它們。

(9)控制版本確保向版本控制系統(tǒng)提交所有修改過的文件和新文件,包括任何新部署或修改過的腳本或ETL對象、測試數(shù)據(jù)、生成代碼、測試用例、文檔和模型。

(10)宣布重構(gòu)向數(shù)據(jù)倉庫和商業(yè)智能團隊中的每個人宣傳重構(gòu)。除了直接訪問數(shù)據(jù)倉庫內(nèi)部架構(gòu)的所有團體之外,確保所有人都正確地使用新架構(gòu)。

3結(jié)論

對數(shù)據(jù)庫進行重構(gòu)時,最重要的是持續(xù)確保完備數(shù)據(jù)建模原則所提供的架構(gòu)和這種自適應(yīng)方法提供的靈活性之間的平衡。如果健全的前期設(shè)計使用不足且過渡依賴重構(gòu),那么就可能會導(dǎo)致不必要的返工。相反地,適當(dāng)?shù)姆倒玫礁谩⒏线m的數(shù)據(jù)庫設(shè)計選擇。

作者:張如云 單位:徐州機電工程高等職業(yè)學(xué)校

主站蜘蛛池模板: 桃花阁成人网在线观看 | 欧美视频自拍偷拍 | 日韩成人在线免费视频 | 日韩毛片免费视频 | 亚洲婷婷在线 | 激情六月在线视频观看 | 樱花aⅴ一区二区三区四区 亚洲天堂男人的天堂 | 中文字幕一区二区三区四区五区 | 亚洲综合色一区二区三区另类 | 最近中文字幕无吗高清免费视频 | 国产99久久久国产精品免费直播 | 一区二区三区在线 | 国产精品久久久久久久久久直 | 亚洲国产精品看片在线观看 | 亚洲电影成人 | 一级欧美日韩 | 偷拍区自拍区 | 99久久精品国产一区二区 | 久久久99精品久久久久久 | 国产亚洲欧美久久精品 | 国产四虎精品 | www.婷婷.com | 日韩精品专区 | 高清偷自拍第1页 | www.黄色小说.com | 国产日韩欧美视频 | 六月婷婷七月丁香 | 99久久综合狠狠综合久久一区 | 丁香花在线影院在线播放 | 国产成人精品亚洲日本在线 | 天堂日本 | 日本不卡高清免费v日本 | 成人欧美一区二区三区视频不卡 | 国色天香社区视频免费 | 最近国语高清视频在线播放 | 亚洲波多野结衣日韩在线 | 精品成人一区二区三区免费视频 | 欧美视频在线观看一区二区 | 欧美精品人爱a欧美精品 | 男人的天堂日本 | 高清色本在线www |