文章詳情頁
DB2 變更管理工具與Rational DA集成(1)
瀏覽:29日期:2023-11-11 11:41:12
本文示例源代碼或素材下載 概述將數據庫變更治理過程想象成一套彼此相連的拼圖。一塊拼圖是數據建模,另一塊是數據庫更改。我們將展示 IBM 為將這兩塊結合在一起而提供的解決方案。IBM DB2 Change Management Expert for Linux®, UNIX®, and Windows® 是一款新的數據庫變更治理工具。它可以單獨使用,也可以與 IBM Rational Data Architect 結合使用,后者是用于企業數據建模和集成設計的工具。在物理數據模型方面,這兩種工具使用相同的語言,因而可以集成從設計和建模到數據庫變更治理的過程。 物理數據模型使數據架構師、開發人員和數據庫治理員面對同一個頁面,而不必在個人與小組之間往返轉換更改。DB2 Change Management Expert 和 Rational Data Architect 都使用 Eclipse 框架。同時使用這兩個產品的團隊可以利用 Eclipse Team 組件來控制信息流。而且,Rational Data Architect 和 DB2 Change Management Expert 可以同時出現在同一個 Eclipse 框架中(也就是說,通過 “shared shell 安裝)。在一人扮演多個角色的情況下,shared shell 可以提供一個單獨的用戶界面。場景概述本文通過一個場景來闡釋客戶如何使用這兩種產品。我們將以一家虛構的公司 JK Enterprises 作為示例客戶。JK Enterprises 已經開始使用 DB2 Change Management Expert 和 Rational Data Architect。JK Enterprises 的數據建模師 Tom 正在使用 Rational Data Architect,而身為公司 DBA 的 Eric 正在使用 DB2 Change Management Expert。但是請注重,在某些較小的工作室,可能一個人同時使用這兩個工具。假設由于 JK Enterprises 的業務需求,他們需要為他們的項目添加完成碼。他們需要對數據庫加以更改,添加一個完成碼表,但是他們還希望在邏輯模型中反映這一更改。由于不確定邏輯模型是否是最新的,因此他們選擇首先根據生產數據庫創建一個物理模型。Eric 將在 DB2 CME 中創建這個物理模型,并將它發送給 Tom。然后,Tom 使用 Rational Data Architect 將這個物理模型轉換為一個邏輯模型,并確定完成碼實體、所需的關系和屬性。然后,通過與 Eric 協商,他在 Rational Data Architect 中將這個邏輯模型轉換成一個物理模型。然后,Eric 在 DB2 Change Management Expert 中使用這個更新后的物理模型,并將變更遷移到一個測試數據庫中。 12345678910下一頁 圖 1. 場景概述
本場景分為以下 3 個主要部分:Eric 使用 DB2 Change Management Expert 為 HR 數據庫 創建物理模型。Tom 使用 Rational Data Architect 將物理模型轉換為邏輯模型,并對邏輯模型作出更改。Eric 使用 DB2 Change Management Expert 將 Tom 作出的更改遷移至 HR 數據庫。假如您具有以下先決條件,那么可以通過完成以下小節中的步驟,嘗試這些步驟。先決條件本場景使用 DB2 Change Management Expert Version 1.1 和 Rational Data Architect 7.0。假設數據庫治理員已經在計算機上安裝了 DB2 Change Management Expert,并且數據架構師已經在計算機上安裝了 Rational Data Architect。(或者,假如一個人既是數據庫治理員又是數據架構師,那么應該在同一臺計算機上同時安裝這兩個工具。)此外,必須在 DB2 Universal Database™ V8 (DB2 UDB) 或 DB2 V9 數據庫中創建 JK Enterprises 的 HR 數據庫。可以使用 DB2 Change Management Expert 來創建這個數據庫。完成以下步驟,以創建并填充該數據庫:下載 CMERDADemo.zip package 到一個臨時目錄中。解壓這個包。使用 DB2 Change Management Expert 創建一個新的數據設計項目。將 createCMERDADemo.chx 從臨時目錄復制到剛才創建的數據設計項目中的 SQL Scripts 文件夾中。展開 SQL Scripts 文件夾。右鍵單擊 createCMERDADemo.chx 文件,然后單擊 Run SQL。這時會彈出 Deploy Change Commands 向導。完成 Deploy Change Commands 向導中的步驟,創建和填充 HR 數據庫: 上一頁12345678910下一頁 確保選擇了適當的數據庫版本。輸入用戶名和密碼。不選 “Create Deployment Project and Script file" 復選框,單擊 Finish。場景步驟A 部分:創建 HR 數據庫的物理模型在本場景的第一部分,Eric(數據庫治理員)創建一個新的部署腳本,它是跟蹤變更治理進程的一個 DB2 Change Management Expert 資源。當他為 HR 數據庫創建部署腳本時,會創建該數據庫的兩個物理模型。一個模型是基本模型,表示數據庫的當前狀態。第二個模型是目標模型,您要編輯這個模型,以指定更改后數據庫的樣子。Eric 會將基本模型發送給 Tom。之后,Eric 將 Tom 在本場景第二部分作出的更改應用到目標模型。和 Eric 一樣,您將完成以下步驟來創建部署腳本和物理模型。從主菜單欄中,單擊 File --> New --> Deployment Script。這時會彈出 Deployment Script 向導。完成 Deployment Script 向導中的步驟:輸入 "CMERDADemo" 作為項目名稱,然后輸入 "CMERDADemo_HR" 作為部署腳本的名稱。單擊 Next。選擇 Use Existing Connection,然后選擇 JKENT。 單擊 Next。輸入用戶 ID 和密碼。單擊 Next。選擇 HR 作為模式。單擊 Next。確認選擇了所有元素。單擊 Next。確認將用于 HR 模式的基本模型和目標模型的默認名稱。單擊 Next。 在這個場景中,默認名稱為 CMERDADemo_HR_base.dbm 和 CMERDADemo_HR_target.dbm。確認 Options 頁面上沒有選中任何復選框。單擊 Finish。DB2 Change Management Experts 創建部署腳本和 HR 模式的基本模型及目標模型。圖 2 展示了當展開 Data Models 和 SQL Scripts 文件夾時出現的這些模型和腳本: 上一頁12345678910下一頁 圖 2. Data Project Explorer此時,通過電子郵件將基本模型發送給 Tom,Tom 是數據建模師和數據架構師,他那里有 Rational Data Architect。或者,也可以將它注冊到一個版本控制系統中,這樣 Tom 就可以通過 Rational Data Architect 在那里查看它。B 部分:將物理模型轉換成邏輯模型,并更改邏輯模型在本場景的第二部分中,Tom 將從 Eric 那里收到的 HR 數據庫的物理模型添加到一個數據設計項目中。他將該物理模型轉換成一個邏輯模型,然后使用一個數據圖對邏輯模型作出以下更改:添加一個新實體 COMPLETION_CODES,該實體有兩個屬性:COMP_CODE 和 DESCRIPTION。添加一個新屬性 COMP_CODE 到 PROJECT 實體中。創建 COMPLETION_CODES 與 PROJECT 實體之間的一個外鍵關系,其中 COMPLETION_CODES 為父實體。刪除 ORGANIZATION 實體的 DEPTNAME 屬性,因為 ORGANIZATION 中的 DEPTNAME 與 DEPARTMENT 實體中的 DEPTNAME 是重復的。對邏輯模型作出更改后,Tom 將邏輯模型轉換成一個物理模型,并將這個有更改的物理模型發送給 Eric。和 Tom 一樣,您將完成以下步驟:啟動 Rational Data Architect。確認進行了偏好設置,以去掉模型轉換期間作為邏輯數據類型的 ROWID 與作為物理數據類型的 CHAR 之間的數據映射。為了檢查偏好設置,完成以下步驟:單擊 Window --> Preferences,以顯示 Preferences 窗口。單擊 Data --> Transform --> Data Type Markup,以顯示 Data Type Map。假如有一行中 Logical Data Type 為 ROWID,則刪除該行。 上一頁12345678910下一頁 單擊 OK。復制 Eric 通過電子郵件發來的物理模型,將其粘貼到一個數據設計項目中。完成以下步驟,將物理模型轉換成邏輯模型:在 Data Project Explorer 中,在數據設計項目的 Data Models 文件夾下,選擇物理模型 CMERDADemo_HR_base.dbm,然后從主菜單欄中單擊 Data --> Transform --> Logical Data Model。這時會彈出 Transform to Logical Data Model 向導。完成向導中的步驟:在 Target Logical Model 頁面上,單擊 Create new model,然后單擊 Next。在 Logical Data Model File 頁面上,接受用于邏輯模型的默認數據設計項目和邏輯模型的默認名稱。單擊 Next。在 Options 頁面上,指定 "HR" 作為包名。單擊 Next。在 Output 頁面上,可以看到物理模型已經被轉換成邏輯模型,單擊 Finish 保存邏輯模型。這時彈出 Logical Data Model Editor,其中顯示關于該邏輯模型的信息。 邏輯模型 CMEDEMO_HR_base.ldm 創建成功,并出現在 Data Models 文件夾中,如圖 3 所示:圖 3. Data Project Explorer為邏輯模型創建一個數據圖。您將使用數據圖對邏輯模型進行更改。Data Models 文件夾中的邏輯模型 CMERDADemo_HR_base.ldm。右鍵單擊 Diagrams(在 HR 下),然后單擊 New Overview Diagram。選擇 HR 模式,以包括所有相應的元素,然后單擊 OK。 該圖在 Data Diagram Editor 中打開,如圖 4 所示:圖 4. HR 模式的實體圖 上一頁12345678910下一頁 將用于完成碼的一個名為 COMPLETION_CODES 的實體添加到模型中。右鍵單擊 Data Diagram Editor 的背景,然后單擊 Add Data Object -> Entity。這樣將添加一個實體到實體圖中。在 Properties 視圖中,單擊 General 標簽頁。將實體重新命名為 COMPLETION_CODES。單擊 Attributes 標簽頁,然后使用 New 按鈕添加兩個新的屬性。將第一個屬性重新命名為 COMP_CODE,指定它為主鍵,并確保它的數據類型為 CHAR(5)。將第二個屬性重新命名為 DESCRIPTION,將它的數據類型改為 VARCHAR(1024)。圖 5 顯示了在作出這些更改后 Data Diagram Editor 和 Properties 視圖的樣子:圖 5. HR 模式的實體圖創建 COMPLETION_CODES 與 PROJECT 之間的一個外鍵關系,其中 COMPLETION_CODES 是父實體,PROJECT 是子實體。從 Data Diagram Editor 中的 Palette 中,選擇 Data --> Non-Identifying Optional。然后選擇作為主鍵和父實體的 COMPLETION_CODES 實體,將其拖放到作為子實體的 PROJECT 實體上。PROJECT 中自動創建一個外鍵屬性 COMP_CODE。從 ORGANIZATION 實體中去掉 DEPTNAME 屬性。選擇 ORGANIZATION 實體。在 Properties 視圖中,單擊 Attributes 標簽頁。 選擇 DEPTNAME,然后單擊 Delete 按鈕刪除它。保存對模型的所有更改。將邏輯模型 CMERDADemo_HR_base.ldm 轉換成一個名為 CMERDADemo_HR_changes.dbm 的物理模型。在 Data Project Explorer 中,進入邏輯模型所在的 Data Models 文件夾。 上一頁12345678910下一頁 選擇邏輯模型 CMERDADemo_base.ldm,然后單擊 Data --> Physical Data Model。這時彈出 Transform to Physical Data Model 向導。完成 Transform to Physical Data Model 向導中的步驟:單擊 Create New Model,然后單擊 Next。在 Physical Data Model File 頁面上,接受數據設計項目的默認值,指定 CMERDADemo_HR_changes 作為物理模型的名稱,指定數據庫類型。單擊 Next。在 Options 頁面上,檢查用于轉換的選項。確保 HR 被指定為模式名稱。單擊 Next。單擊 Finish 保存物理數據模型。此時,將有更改的物理模型通過電子郵件發回給數據庫治理員 Eric。或者,也可以將它注冊到版本控制系統中,以便 Eric 通過 DB2 Change Management Expert 在那里查看它。C 部分:將發回的更改應用到 HR 數據庫上在本場景的最后一部分,Eric 將 Tom 發回的對物理數據模型的更改遷移到 HR 數據庫的目標模型上。之后,Eric 生成將這些更改應用到實際的 HR 數據庫時所需的更改命令,并將更改命令部署到數據庫。和 Eric 一樣,您將完成以下步驟:啟動 DB2 Change Management Expert。復制 Tom 發回的物理數據模型(CMERDADemo_HR_changes.dbm),在 Data Project Explorer 中將其粘貼到 CMERDADemo 數據設計項目的 Data Models 文件夾中。右鍵單擊 SQL Scripts 文件夾中的 CMERDADemo_HR.deployxml,打開部署腳本。Deployment Script Editor 中顯示部署腳本。圖 6 顯示了 Deployment Script Editor:圖 6. Deployment Script Editor 上一頁12345678910下一頁 將 Tom 發回的物理數據模型(CMERDADemo_HR_changes.dbm)中的更改遷移到 HR 數據庫的目標模型(CMERDADemo_HR_Target.dbm)上:單擊 Deployment Script Editor 的 Data Models 標簽頁,在 Data Models 頁面上,單擊 Add。在 Source Models selection 對話框中,通過下鉆選擇有更改的模型(CMERDADemo_HR_changes.dbm),然后單擊 OK。該模型顯示在 Define Source Models 字段中,如圖 7 所示:圖 7. Data Models 頁面選擇該模型,然后單擊 Migrate。這時彈出 Comparison Editor,其左側是有更改的模型,右側是 HR 目標模型。使用工具條中的向下箭頭,在這兩個模型中的各個差別之間進行切換。在這個演示中,Comparison Editor 表明要遷移的變更是從 ORGANIZATION 表中刪除 DEPTNAME 列,在 PROJECT 表中添加新的外鍵 COMPLETION_CODE_PROJ_FK,以及增加新表 COMPLETION_CODES。當轉移外鍵時,外鍵列 COMP_CODE 將被自動轉移。假如在轉移 COMPLETION_CODES 表之前轉移 PROJECT 中的外鍵,則 COMPLETION_CODES 表將被自動轉移。當選中差別時,單擊向右箭頭,將這些更改轉移或應用到目標 HR 模型上。單擊 File --> Save 保存所有更改。關閉 Comparison Editor。單擊 Problems 視圖,更正目標 HR 模型的所有錯誤。DB2 UDB V8.2 用戶注重:您將收到錯誤消息,說 Rational Data Architect 為新的主鍵和外鍵創建的標識符太長。在 DB2 V8.2 中,這些標識符不能超過 18 個字符。圖 8 顯示了一個例子:圖 8. Problems 視圖 上一頁12345678910下一頁 為了檢查和修正這種錯誤:為了使 Problems 視圖中顯示的問題僅限于所選擇的元素(目標 HR 模型),單擊 Filters 圖標( ), 單擊 On selected element only,然后單擊 OK。雙擊顯示的第一個錯誤。單擊 Properties 標簽頁,將主鍵的名稱改為 COMP_CODES_PK。單擊 Problems 視圖,然后雙擊顯示第二個錯誤。單擊 Properties 標簽頁,將外鍵的名稱改為 COMP_PROJ_FK。保存對目標模型的更改。再次單擊 Problems 視圖,確認錯誤已修正。生成更改命令,以實現這些更改。單擊 Deployment Script Editor 的 Change Commands 標簽頁,然后在 Change Commands 頁面上單擊 Generate Change Commands。這時彈出 Generate Change Commands 向導。在該向導中完成以下步驟:在 DDL Generation Options 頁面上,確認將作出正確的更改。確保 Enable Undo 復選框被選中,以生成必要時用于撤銷更改的命令。單擊 Next。在 User Information 頁面上,指定用戶 ID 和密碼。單擊 Next。在 Specify File Information 頁面上,為導出和導入命令指定一個數據文件位置。這里必須指定完整的路徑。指定數據文件格式,接受默認的導出和導入文件名。單擊 Next。Mapping Table 頁面上顯示應該從中導出數據然后再導入數據的表。單擊 Next。在本場景中,為了刪除 ORGANIZATION 表中的 DEPTNAME 列,需要先導出數據,以確保數據不會丟失。通過使用 DB2 Change Management Expert,可以導出數據,刪除表,重新創建一個新表,然后將數據導入到那個新表。還可以使用一個文件,將數據從該文件中導入到新表中。 上一頁12345678910下一頁 在 Customize Export Commands 頁面上,單擊 Default Query,確保要刪除的列 DEPTNAME 不在 SELECT 列表中。單擊 Next。在 Customize Import Commands 頁面上,檢查導出列與 ORGANIZATION 表的導入列之間的映射。單擊 Next。在 DB2 Maintenance Command 頁面上,檢查是否要生成用于保留對象上的授權、重新綁定包、生成 runstats 或者刷新包緩存的命令。默認情況下沒有選擇任何選項。假如選擇重新綁定包,則在 Select Schema 頁面上,需要為之重新綁定包的模式被默認選中。在 Merge Change commands 頁面上,單擊 Next。單擊 Finish 生成更改命令。可以在 Deployment Script Editor 的 Change Commands 頁面上查看生成的更改命令。將更改部署到 HR 數據庫中。在 Deployment Script Editor 的 Change Command 頁面上,單擊 Deploy Changes to the Target Database。這時彈出 Deploy Change Commands 向導。完成 Deploy Change Commands 向導中的步驟。在 Deploy Steps 頁面上,輸入用戶 ID 和密碼。選中復選框。單擊 Next。在 Check Base Model 頁面上,單擊 Next。在 Change Commands 頁面上,查看將被部署到數據庫上的更改命令。單擊 Finish。Data Output 視圖中包含對 HR 數據庫作出的更改的狀態。結束語本文演示了一個關于客戶如何同時使用 DB2 Change Management Expert 和 Rational Data Architect 的場景。這兩種工具之間可以共享相同的物理模型,從而答應從設計和建模到數據庫變更治理的集成過程。這個逐步教程應該可以幫助新用戶學會同時使用這兩種工具。 上一頁12345678910

排行榜