管理資料庫變更
如果您負責在企業中開發和維護資料庫,可能需要與軟體開發小組協調排程和變更,以建立統一的資料庫應用程式。 如果能採用類似於這些軟體開發人員所用的工具和程序,將可大幅減少花在協調方面的時間和精神。
隨著愈來愈多開發團隊轉向高反覆性的快速開發型態來撰寫程式碼 (例如「敏捷方法」(Agile Method)),軟體和資料庫開發人員對版本控制等工具的需求更甚以往。 這些工具可以降低小組開發的風險。 藉由使用類似的工具和程序,不僅能為管理的資料庫帶來莫大好處,也有助於這些資料庫與互動的軟體之間整合。
Visual Studio 能提供哪些協助
Visual Studio 可協助您與軟體開發工作夥伴協調,讓小組成員從整體的角度檢視和專注在應用程式的行為,而不是實作的細節。 這種方法脫離了將實際執行資料庫 (及其資料) 視為應用程式 Universe 中心的模型。 Visual Studio 所提供的解決方案集是以完整應用程式為主軸,包括資料和邏輯在內。 為建立有效運作、容易維護且快速實作的應用程式,企業開發團隊必須以這種全面的方式檢視應用程式。
Visual Studio提供當今資料庫開發人員和資料庫管理員所需的功能。 例如,Visual Studio 支援每個資料庫專業人員使用「隔離的開發環境」(Isolated Development Environment) 的概念。 小組成員可以執行「結構描述」(Schema) 相關的作業,而不會對其他小組成員或實際執行環境造成不便或影響。 此外,這套軟體著眼於長期目標,不但加入資料庫架構設計人員所需的功能,也為資料庫管理員提供擴充的功能。
主要目標
Visual Studio 的資料庫功能有下列幾個主要目標:
針對資料庫應用程式,提供以整合變更管理為基礎的平台。
提供協助管理資料庫專案的工具。
提供協助了解差異的工具。
提供協助變更和評估影響的工具。
提供協助在隔離環境下工作的工具,降低變更所帶來的風險。
提供協助測試更新方案的工具。
提供簡化資料庫變更部署作業的工具。
提供加速複雜資料庫之共同開發作業的工具。
高階工作
為達成上述目標,Visual Studio 可協助您執行下列高階工作:
建置和部署受版本控制的新資料庫。
使用資料庫專案,將現有資料庫結構描述放入版本控制下。 資料庫專案結構描述是從資料庫或現有指令碼匯入「結構描述」而建立的。
修改資料庫的離線表示 (offline representation),然後部署變更。
比較資料庫的結構描述或資料。
開發並對「資料庫物件」(Database Object) 執行單元測試。
產生可預測的代表性測試資料,而不會破壞重要的實際執行資料。
重新命名資料庫資料表、資料行、檢視或其他物件,然後將這些變更傳播至「資料庫專案」(Database Project) 的其他部分,包括相關的單元測試、檢視、預存程序、觸發程序等。
建立、編輯、驗證以及分析指令碼及查詢。
資料庫開發生命週期
Visual Studio 支援與新工具搭配使用的程序。 您可以將此程序視為「資料庫開發生命週期」(Database Development Lifecycle),這可提供資料庫專業人員隔離的開發環境,以處理和測試變更。 在測試變更之後,小組成員可以透過版本控制系統共用變更。 資料庫開發生命週期分為下列階段:
建立專案環境
執行隔離反覆開發
建置專案
從專案環境部署
建立專案環境
下圖顯示資料庫管理員 (DBA) 角色的小組成員如何建立專案環境:
DBA 一開始會建立資料庫專案,然後從實際執行資料庫匯入資料庫結構描述。 DBA 接著便可建立資料產生計劃,建立隔離開發環境所需的測試資料。 最後,DBA 將資料庫專案簽入版本控制,提供給小組使用。
執行隔離反覆開發
下圖顯示小組成員如何在隔離的環境中執行反覆開發工作:
每位資料庫專業人員將開發環境與版本控制同步處理。 他們可以簽出變更的檔案,然後在隔離的環境下開發和測試這些變更。 對資料庫專案複本所做的變更只會部署到隔離的開發環境。 在產生實際的測試資料並對私用的資料庫複本執行單元測試之後,小組成員將變更簽入版本控制。 其他小組成員再從版本控制取得測試過的變更。
產生專案的每日建置版本
下圖顯示資料庫專案的建置週期:
與版本控制系統中的最新測試版本資料庫專案同步處理,產生每日建置版本。 該建置版本可部署到測試資料庫,對產生的測試資料執行單元測試。
從專案環境部署
下圖顯示 DBA 如何將資料庫專案的版本部署到實際執行環境:
當要將資料庫版本部署到實際執行環境時,DBA 會先與版本控制系統的標籤同步處理。 DBA 擷取資料庫專案中的相符檔案、相關指令碼和測試。 接著,DBA 會建置 .dbschema 檔案。 DBA 會根據 .dbschema 檔案產生部署指令碼、視需要手動修改,然後再測試部署到執行伺服器。 DBA 反覆執行此程序,直到指令碼準備好部署到實際執行伺服器。 如果 DBA 變更結構描述,或變更預先部署或部署後指令碼,這些變更將會再次簽入版本控制。