在 3 月 16 日,IBM 宣布了 Rational Data Architect (RDA),這是一種新的基於 Eclipse 的工具,通過它可以發現、建模、可視化、關聯和開發不同格式的分布式數據資產。
RDA 是 WebSphere Information Integration 平台的一部分,它是 IBM Information On Demand 圖景中信息集成服務層的具體實現。
WebSphere Information Integration 公文包使企業可以執行五大關鍵集成功能:
連接存儲在任何地方的數據或內容
理解和分析信息、它的意義以及關系
清洗信息,以保證信息的質量和一致性
轉換信息,以提供豐富的、經過定制的信息
將信息組成聯邦,使需要它的人、過程和應用程序能夠訪問它
在這些功能之下是一個公共元數據和並行處理基礎設施層。通過發布的共享服務,這些功能可以放在一個面向服務架構(SOA)中使用。
RDA 屬於 Understand(理解)功能。它幫助創建整個信息基礎設施的“大圖畫”。有了 RDA,您可以設計新的數據庫,對已有的數據源進行反向工程,執行數據源之間的相互映射,以及生成實現數據庫中聯邦概念所需的代碼。
RDA 可以運行在 Windows (2000, XP, 2003) 和 Linux (SUSE Linux 9, RedHat ES Linux 3.0) 平台上,它使用與其他 Rational 設計和構造工具相同的平台,因而具有可擴展性和熟悉的用戶體驗。例如,Workspace 是 RAD 將永久保存的所有信息的根位置,而它也是所有 Rational 工具所共有的。項目(project)是 Rational 用戶熟悉的另一個概念,項目是為描述將被處理的工作類型而創建的。例如,在一個 Workspace 中,您將發現一個 Data Design Project 和一個 Data Development Project。這種結構顯示在 Project Explorer 中,後者是用於 RDA 和大多數基於 Eclipse 的工具的導航工具。
在本文中,我將 RDA 的一些關鍵功能分為以下幾類進行概述:
設計和建模
理解關系
變更管理
設計和建模
設計和建模功能包括邏輯數據建模、物理數據建模和不同數據源的相互映射以及將不同數據源集成到一個聯邦模式中。標准(例如命名)可以與其他規則(例如第一、第二和第三范式以及索引的過度使用)可以一起實施。
邏輯數據建模。RDA 允許數據架構師執行邏輯數據建模任務,例如定義帶屬性、鍵、約束和特性的實體。通過定義關系,實體之間可以相互關聯,實體之間的關系可以是等同關系(identifying)、非等同關系(nonidentifying)、多對多關系,或者表示一種泛化(generalization)。設計人員可以創建一個實體關系圖,這個實體關系圖一開始是一個空白的邏輯模型,或者是一個模板,或者是包含標准或核心企業實體的可重用的模型。這些實體關系圖中可以加入對實體和屬性的描述,並帶上注釋(見圖 1)。
圖 1. 這個邏輯數據模型闡釋了屬性、主鍵、外鍵、等同關系、非等同關系和基數。
RDA 為邏輯數據模型提供了一組預定義的數據類型。除了這些預定義數據類型外,還可以增加用戶定義數據類型,即所謂的域(domain)。域可以在邏輯模型中定義,也可以在一個不同的域模型中定義,其他模型可以重用這個域模型。RDA 允許創建含有用戶數據類型的標准化數據字典,不同項目的數據模型可以共享這個數據字典。域的種類包括原子域(基於邏輯數據類型,並帶有約束)、列表域(帶約束的枚舉值)和聯合域(邏輯數據類型的聯合體,並帶有約束)。
通過使用約束和關系,可以定義簡單的業務規則。但是 RDA 還可以做更多的事情。Analyze Model 功能可以顯示一個模型分析窗口,通過這個窗口可以指定應該執行哪些預定義的分析窗口。內置的 RDA 規則包括:
重復關系
第一范式
第二范式
第三范式
過度索引
模型語法檢查
SQL 語法檢查
您可以使用 Java 或對象約束語言(OCL)添加用戶可定義的驗證規則或業務規則,OCL 是統一建模語言(UML)的一部分。
RDA 還允許根據命名標准為新元素(實體、屬性、關系)生成名稱。
物理數據建模。物理數據建模將邏輯數據模型與一個特定的 RDBMS 和所有約束鏈接起來。對於邏輯數據模型中指定的同一個解決方案,可以有任意數量的物理實現。有了 RDA,對於相同的物理模型,您還可以有任意數量的邏輯模型。在一些人數不多的小組做一個大型數據庫項目,並且需要在小組之間同步更新的情況下,這種功能會比較有用。
取決於 RDMS,物理數據模型將包含表(帶有約束、索引和觸發器)、視圖、函數、存儲過程、用戶定義數據類型、別名、物化查詢表、昵稱、序列、表空間、緩沖池、存儲建模圖等對象。
RDA 提供了三種方式來創建一個物理數據模型:
從頭開始創建(在少數情況下會這樣做)
通過反向工程
將邏輯模型轉換成物理實現
每種 RDBMS 都會在實現上施加一組不同的約束,這些約束是在一個轉換對話框中指定的,RDA 支持的 RDBMS 包括:
DB2 UDB for Linux, Unix, and Windows 8.1 and 8.2
DB2 UDB for iSerIEs V5R2 and V5R3
DB2 UDB for z/OS 7 and 8
IBM Cloudscape 10.0
Informix versions 9.2、9.3、9.4 and 10
Oracle versions 8, 9 and 10
Microsoft SQL Server 2000
Sybase ASE 12
WebSphere Information Integrator (Standard Edition, Advanced Edition)
所有連接都是通過 JDBC 接口建立的,這需要在工作站上安裝特定的 JDBC 驅動程序。
RDA 可以根據模型、通過一個代碼生成對話框來生成特定於語法的 DDL 或 XML 模式,DBA 可以在代碼生成對話框中選擇將哪些元素包括在代碼生成中。生成的代碼放在一個腳本中,並保存在項目的腳本文件夾下,RDBMS 可以執行該腳本。RDA 還可以生成示例測試數據。
RDA 還支持聯邦數據庫(這種技術允許對不同數據源進行實時訪問)。以多個源數據庫表為基礎,通過使用源和目標之間的映射發現,可以創建一個物理目標數據模型。RAD 根據映射編輯器中定義的映射來生成代碼,其中包含用於創建視圖和昵稱的語句。
理解和通信基礎設施
RDA 允許創建關系數據源,並且還允許對關系數據源進行反向工程。此外,用戶可以發現、暴露和導航已有數據源的結構,這些結構可以可視化為實體關系圖。RDA 能夠與軟件生命周期的其他方面集成,以支持設計小組環境。例如,RAD 可以訪問存儲在 IBM Rational RequisitePro 中的需求,並將其與相應的建模元素關聯。IBM Rational ClearCase 或 CVS 可以管理 RDA Modeling 文件,提供無縫的版本控制、分支管理和變更的同步。
DBA 或數據架構師常常會碰到這樣的情況:一些數據庫包含相同類型的數據。於是,他們必須理解數據庫之間的關系,以便提供可靠的數據質量。這種理解需要擁有對關系的反向工程、發現、可視化和導航的能力以及集成可用數據資產的能力。
在反向工程中,以一個已有的物理數據庫實現為基礎,根據這個物理數據庫實現生成一個圖形化的物理數據模型。這個圖形化模型可以作為應用增強以創建新版本的物理數據模型的起點。RDA 還可以發現不同級別上的信息源:服務器、JDBC 連接、數據庫結構、選定元素的屬性和示例數據內容。圖 2 展示了 RDA 如何在拓撲或概要圖中為發現的結構提供導航和可視化支持。
圖 2. 顯示數據庫結構的一個視圖的拓撲圖
有了 RDA,您可以發現新創建的目標模式與被反向工程的源模式之間的所有映射,並將這些映射編制為文檔。RDA 的映射編輯器就是專門為這個目的而設計的。映射可以是基於列的(有轉換或者無轉換),可以是基於表的(連接),甚至可以生成代碼(SQL 或 XML)。
有了映射發現後,RDA 使用一些算法(取決於結構或內容)來比較源結構與目標結構,並推薦可能的映射。然後,DBA 可以接受或拒絕推薦的映射。當然,也可以創建更多的映射。甚至還可以定義源列與目標列之間的轉換表達式。可以連接多個源表,並將它們映射到一個目標表。對於數據庫設計和已有數據庫的同步,例如對於主數據管理來說,這些映射具有巨大的價值。
RDA 允許將多個源模式映射到一個目標模式。這種映射必須是在一個單步過程中可執行的,並且這個單步過程包含源和目標之間可執行的轉換。目標可以被實現為新的表、視圖、物化查詢表或昵稱(對源表的引用),它們都可以以聯邦的方式來訪問。
RDA 使用一個可擴展的開放標准,即基於 Eclipse 建模框架(EMF)的 SQL 模型,它提供了對數據庫信息的結構化表示,並提供了一些供應商中立的、對於多種數據庫類型和 SQL 方言都是可擴展的功能。這種基於 EMF 的 SQL 模型起初是由 IBM RDA 小組開發的,之後被 Eclipse 開放源代碼社區的數據工具項目(Data Tools Project,DTP) 采納。Oracle 和 Sybase 等供應商也已經采納了這種基於 EMF 的 SQL 模型。
變更管理
RDA 允許在兩個模型(邏輯模型或物理模型)之間、物理模型與數據庫之間甚至在兩個數據庫之間進行比較。在比較之後,RDA 可以執行一次同步,這種同步由生成的 DDL(更新目標以包含源的選定特征)組成,或者由對圖形化目標模型的更新(反映源的特征)組成。一個典型的例子就是比較一個開發數據庫與一個生產數據庫。
當然,您可以使用 RDA,通過對數據庫進行反向工程,或者從其他工具導入模型,來發現已有數據庫是什麼模式。RDA 還可以有選擇性地使新的數據模型與一個企業數據模型同步,或者將一個數據模型與其他數據庫設計人員開發的工作成果進行比較。
RDA 能夠與項目生命周期的其他方面集成。業務需求是不斷變化的;數據架構師需要立即知道這些變化將產生怎樣的影響。
RDA 能與源代碼控制管理系統,例如 Rational ClearCase LT 和 CVS 集成,因此數據架構師和 DBA 可以與負責軟件配置管理的開發人員合作。RDA 還可以與 Rational RequisitePro 和 Rational ClearQuest 集成,因而提供了從需求到設計再到實現的自動化可跟蹤性。
這些集成使 RDA 成為為由不同角色的成員組成的大型小組提供支持的理想選擇。大型企業數據模型可以劃分為多個包或主題,根據各自的職責,不同的小組成員可以創建和管理不同的包或主題。
通過應用反向工程,進行必要的更新,考慮目標 RDBMS 類型,以及生成和執行 DDL,RDA 允許將一個模式從一種類型的 RDBMS 遷移到另一種類型的 RDBMS。這樣的例子有從 Oracle 到 DB2 UDB for z/OS 的模式遷移,以及從關系模式到 XML 模式的遷移。
滿足相互沖突的需求
RDA 是一種數據建模和集成設計工具,適用於很多類型的信息架構挑戰。它簡化了理解當前數據源與設計新數據源時涉及到的過程。
數據庫設計通常必須滿足兩個相互沖突的需求:數據庫必須足夠健壯,從而不需要進行重大的結構上的修改,但是另一方面,數據庫又必須足夠靈活,以滿足新的業務需求。RDA 提供了一種穩定的建模和設計環境,以幫助數據架構師滿足這些需求。