本場景分為以下 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 新聞熱點
疑難解答