簡介
DB2 9(以前的代號為 “Viper”)提供了大量的增強來簡化數據庫應用程序的開發,減少開發時間,以及提高開發人員的生產率。除了為健壯的企業應用提供一個平台外,DB2 9 還在快速構建基於 Web 服務、XML 提要、數據聯合等技術的新型 “Web 2.0” 應用程序方面進行了優化。
新的 Developer Workbench
Developer Workbench 是一個可視化工具,用於輔助快速開發 DB2 業務對象,它是免費提供的。這個新設計出來的工具基於 Eclipse 框架,用於替代 DB2 Development Center(基於 Swing 架構)。
Developer Workbench 使以下任務變得容易:
創建、查看和編輯數據庫對象(例如表和模式)。
浏覽和編輯表和行中的數據。
可視化地構造 SQL 和 XQuery 語句。
開發和部署存儲過程、用戶定義函數(UDF)、例程和腳本。
調試 SQL 和 Java™ 存儲過程
開發 SQLJ 應用程序。
開發針對 XML 數據的查詢和例程。
執行數據移動(例如裝載和提取)。
與小組成員協作和共享項目。
從 DB2 Development Center 中遷移項目。
等等……
並不是 Developer Workbench 的所有特性在所有平台上都受支持。在初始發布的 Developer Workbench 中,較早版本的 DB2 可能不受支持。
除了為開發 DB2 9 on Linux, UNIX, and Windows 應用程序和對象提供界面外,Developer Workbench 還為在其他平台(DB2 for iSerIEs™ 和 DB2 for z/OS®)上使用 DB2 提供了一個公共接口。也可以將 Developer Workbench 與 IBM Cloudscape™ 或 apache Derby 一起使用。
Developer Workbench —— 安裝
Developer Workbench 安裝媒體與基本 DB2 9 產品安裝 CD 是分開的,但是可以在同一個媒體包中找到。由於 Developer Workbench 可以與各種不同平台和 IBM 數據服務器一起使用,因此可以從網上免費下載。它的安裝非常簡單,通過使用圖形安裝程序,只需單擊幾下鼠標就能完成安裝。安裝時所用空間大約為 400MB(在不同平台上可能有所差異),其中包含一個獨立的 Eclipse 鏡像,以減少與安裝在系統上的其他基於 Eclipse 的工具之間的版本問題。隨 Developer Workbench 一起安裝的信息中心中含有 Developer Workbench 幫助和教程。
Developer Workbench —— 布局
Developer Workbench 有多個用於開發 DB2 業務對象的視圖,例如:
Database Explorer 視圖 —— 顯示數據庫中有哪些東西(例如表、存儲過程、UDF、依賴關系、遠程服務器),並允許執行針對這些對象的動作(例如創建、運行以及浏覽屬性)。
Data Project Explorer 視圖 —— 在該視圖中,可以通過一些簡單的操作,如拖放、復制和粘貼、向導、上下文敏感的完成選項,進行過程、UDF 和 SQL 語句的開發。
Data Output 視圖 —— 通過該視圖可以查看在數據庫上的數據開發動作的報告。
圖 1. 顯示多個視圖的 DB2 Developer Workbench 布局
圖片看不清楚?請點擊這裡查看原圖(大圖)。
Developer Workbench —— 開發和部署例程
通過 Developer Workbench 很容易開發 SQL 和 Java 例程(存儲過程和 UDF)。這些服務器端對象可以幫助封裝業務邏輯,並減少網絡傳輸。對於例程,在 Developer Workbench 中可以執行以下動作:
顯示數據庫服務器中已有的例程。
使用向導創建一個新的例程。
導入例程源文件,或者將已有的過程復制到開發項目中。
用例程編輯器編輯過程源代碼和屬性。
將 Java 過程打包在多個 JAR 文件中。
將過程部署到不同的服務器上(例如,將為 DB2 for Windows 服務器開發的例程部署到 DB2 for System z™)。
估計在 DB2 for z/OS 上運行語句的成本。
並排比較和編輯例程。
導出過程,以便獨立於集成開發環境(IDE)進行批量部署。
運行例程(測試調用)。
通過在代碼中逐步執行、設置斷點、查看變量內容等方法調試存儲過程。
將例程從數據庫連接拖放到項目中。
圖 2. 使用 Developer Workbench 開發存儲過程
圖片看不清楚?請點擊這裡查看原圖(大圖)。
更深入的 .Net 集成
DB2 是第一個提供對 Microsoft® .NET framework 內置支持的主流數據服務器,甚至早於 Microsoft 自己的 SQL Server。DB2 9 則更進一步,它提供了更豐富、更深入的 .Net 與 Visual Studio 之間的集成,以幫助您以更快的速度開發更強大的應用程序。DB2 在這方面的增強包括:
更豐富的用於 Visual Studio 2005 的工具和插件。
經過更新的用於 .Net framework Version 2.0 的數據提供程序。
更豐富的 Visual Studio 2005 插件
DB2 提供了用於 Visual Studio 的插件,來幫助您用少量或者完全不用 C# 或 Visual Basic 代碼輕松構建 .Net 應用程序、Web 站點、Web 服務和數據庫服務器端業務邏輯,並且這一切都不必離開 Visual Studio 環境。在 DB2 9 中,這些插件得到了極大的增強,包含了很多獨特的功能,而其他數據服務器通常需要借助第三方的插件來獲得這些功能。
這些增強的用於 Visual Basic 的 DB2 工具包括:
IBM Server Explorer 已經從用於 Microsoft Visual Studio 2005 的 IBM 數據庫插件中消失,但是仍然保留在用於 Microsoft Visual Studio 2003 的 IBM 數據庫插件當中。
用於容易地處理數據庫對象(例如表、視圖、腳本、過程和結果集)的新的 IBM 設計器
在無需編寫代碼的情況下生成和部署基於 DB2 的 Web 服務的能力
與 Microsoft Server Explorer 的集成,用以執行數據庫活動(例如管理連接和浏覽數據庫對象)
容易地創建和調試 SQL 過程(包括公共語言運行時 [CLR] 存儲過程)的能力
克隆 DB2 數據庫對象的能力
用於快速訪問模式信息的模式緩存
高級對象過濾功能
將數據導入和導出數據網格的功能
與 Microsoft Query Builder 的集成
用於重新運行例程的參數持久性支持
對 IBM 家族的數據服務器,包括 Informix® Dynamic Server (IDS)、DB2 for z/OS、DB2 for iSerIEs 以及 DB2 for Linux, UNIX, and Windows 的支持
對新的 DB2 pureXML™ 數據類型和特性的全面支持
圖 3. Visual Studio 2005 中用於開發存儲過程的 DB2 插件
經過更新的本地 DB2 .Net 數據提供程序
DB2 附帶了一個經過更新、能用於 .NET framework Version 2.0 的本地 .NET 數據提供程序,並且該數據提供程序被集成到 Visual Studio Server Explorer 中。這個更新後的 .Net 數據提供程序包括以下增強:
對 System.Data.Common 基類的支持 —— 這使您可以開發通用的 .NET 數據庫應用程序,而不必引用任何與特定類相關的數據提供程序。在編寫要在各種不同數據服務器(或提供程序)中重用的應用程序代碼時,這一點尤其有用。在適當情況下,DB2 .Net 數據提供程序從 System.Data.Common 名稱空間中的相應類繼承而來。 DbProviderFactory myFactory =
DbProviderFactorIEs.GetFactory("IBM.Data.DB2");
或者,也可以使用 DB2Factory 類來創建與 DB2 相關的 .Net 對象:
DB2Factory myFactory = DB2Factory.Instance;
DB2 數據類型與 .NET 數據類型的對等關系 —— 在 .Net 中,對於所有 DB2 數據類型,DB2Type 名稱空間中都有一個對等的數據類型。借助這一點,開發人員可以使數據類型完全保持原狀。DB2Types 類型還提供了將 DB2 數據庫列值表示為一個個可以為空的對象的方法。DB2Types 類的實例還可以作為 CLR 存儲過程或用戶定義函數的參數。
可滾動和可更新結果集 —— 現有 DB2Command 類中添加了新的方法,用於創建可導航的結果集。這些方法使您的應用程序可以更新單個的列值,或者前後滾動結果集。
數據分頁功能 —— DB2Command 類現在有一個 ExecutePageReader 方法,該方法使應用程序可以從數據庫中取一組特定的行。它允許應用程序指定從數據庫中所取的起始行,以及所取的行數。在查找一組特定的行的時候,這個特性非常有用,而且比通過滾動整個結果集尋找所需的行要快得多,也簡單得多。
批量數據復制 —— 新的 DB2BulkCopyOperation 類提供了批量復制 DB2 表中的數據的能力。這使得插入來自 DataReader 之類的數據源或非 DB2 數據源的記錄變得容易。
SQL 語句的批量更新 —— DB2DataAdapter 的 UpdateBatchSize 屬性使應用程序可以在將 SQL 語句成批發送給 DB2 數據庫服務器之前,確定要收集的 SQL 語句的數量。這可以大大提高性能,因為這樣減少了客戶機應用程序與數據庫服務器之間零散的數據傳輸。
豐富的 XML 開發支持
DB2 9 包含 pureXML 技術,該技術為高度有效地管理和提供 XML 數據提供了一組獨特的功能。pureXML 技術由一個真正的 XML 數據類型(按分層格式存儲 XML,而不是將其存儲為大型對象或分成幾個關系列)、XML 索引能力、XML 文本搜索支持、SQL/XML 和 XQuery 支持、模式演變的靈活性以及大量其他的功能組成,這些功能在 “What’s new in DB2 Viper: XML to the Core”(developerWorks,2006 年 2 月)中有介紹。
作為 pureXML 技術不可或缺的一部分,DB2 9 包含了對開發以 XML 為中心和混合的應用程序的支持,以簡化代碼編寫工作,減少開發時間,並提高應用程序的應變能力。DB2 9 中的 XML 開發支持包括:
對各種編程語言和應用程序接口的支持
對使用 XQuery 和 SQL/XML(或兩者同時使用)查詢數據的支持
Developer Workbench 中全面的 XML 功能(包括 XQuery builder)
pureXML 與 Visual Studio 和 .Net 的緊密集成
新的 XML 開發代碼示例和 DB2 SAMPLE 數據庫增強
用於編程語言和接口的 XML 數據類型支持
DB2 客戶機接口中已經添加了新的與特定語言相關的 XML 類型和綁定,以允許應用程序高效、無縫地使用 DB2 XML 數據類型。因此,DB2 XML 數據類型支持以下流行的編程語言和應用程序接口:
語言 —— C/C++、Java、C#、Visual Basic、Cobol、PHP
接口 —— JDBC、CLI / ODBC、.Net、Embedded SQL、SQLJ
以 DB2 對 JDBC 中的 XML 的支持為例。新的用於 JDBC 的 DB2 驅動程序已經在 XML 數據方面得到了增強。可以使用 Java 數據類型,例如字符串、字節數組和流,對作為查詢結果和輸入輸出參數的 XML 數據進行綁定。由於當前的 JDBC 3.0 沒有定義一種本地的 XML 數據類型,因此 DB2 提供了一種擴展 XML 類型,即 com.ibm.db2.DB2Xml。DB2Xml 擴展有很多非常有用的方法,這些方法使得對 XML 數據的處理變得容易。在下面的例子中,一個列被檢索出來並存為 DB2Xml 對象。然後,getDB2String 方法返回 XML 值(沒有 XML 聲明)的字符串對象形式的串行化表示。接著,getDB2XMLBinaryStream("UTF-16") 返回一個用 UTF-16 編碼 XML 值的二進制流,並提供了一個匹配的 XML 聲明。
com.ibm.db2.jcc.DB2Xml XML1 =
(com.ibm.db2.jcc.DB2Xml) rs.getObject ("XML_stuff");
String s = XML1.getDB2String();
InputStream is = xml2.getDB2XMLBinaryStream("UTF-16");
Developer Workbench 中的 XML 支持
Developer Workbench 包含對 XML 的全面支持:
對 XML 數據類型的支持 —— 這種數據類型在 Developer Workbench 中被視作一等公民,因此可以在查詢和例程中使用 XML 數據類型。您還可以查看、編輯和更新數據庫中 XML 文檔的內容。
對存儲過程的支持 —— 您可以創建和運行包含 XML 數據類型(輸入或輸出)的參數或者返回 XML 數據的存儲過程。
數據輸出視圖 —— 您可以在結果頁面上查看 XML 數據類型的列,還可以將 XML 列的內容可視化成樹或文檔文本的形式。
對 XML 模式的支持 —— 您可以從數據庫中的 XML 模式庫中裝載已有的 XML 模式和 XML 模式文檔,並查看各種屬性,例如目標名稱空間或模式位置。還可以注冊新的 XML 模式(以及相應的 XML 模式文檔)或者刪除它們。
XML 文檔驗證 —— 您可以在已注冊的 XML 模式上對 XML 文檔執行 XML 值驗證。
XQuery builder —— 通過 XQuery builder,可以創建完整的查詢,而無需理解 XQuery 語義。您可以通過從一個模式或 XML 文檔的樹型表示中選擇示例結果節點,並將這些節點拖放到一個返回網格中,從而可視化地構造一個 XML 查詢。當一個節點在返回網格中被列出來時,就可以鑽取(drill down)到查詢中,添加謂詞和排序方式。您可以在一個查詢中鑽取多層,以指定嵌套的謂詞、子句和表達式。例如,您可以選擇一個節點,然後鑽取到查詢中添加一個謂詞。在那個謂詞中,還可以再次向下鑽取,以添加另一個謂詞。在構造好查詢之後,可以直接在 Developer Workbench 中運行它,以便測試該查詢。
圖 4. Developer Workbench 中的 XQuery builder
圖片看不清楚?請點擊這裡查看原圖(大圖)。
對 Visual Studio 的 pureXML 支持
用於 Visual Studio 的 DB2 插件包含對 pureXML 的全面支持,包括用於執行以下動作的功能:
為列和過程使用 XML 數據類型。
為 XML 列提供 XML 索引。
將 XML 數據可視化的功能。
更新、導入和導出 XML 數據。
在已注冊的 XML 模式上驗證 XML 數據庫。
注冊和注銷 XML 模式。
在 XML 模式的基礎上生成示例數據。
創建和注冊帶注釋的 XML 模式。
執行和可視化 XQuery 和 SQL/XML 腳本。
應用 XSLT 到 XML 數據上,以定制可視化結果。
增強的用於 PHP 的 DB2 驅動程序
PHP 已成為最流行的 Web 應用程序開發語言之一。這種開放源碼的腳本編制語言易於學習,並且帶有很多強大的特性,這些特性使開發人員很容易與 Html 進行交互。有了 Zend 等公司提供的支持和工具,PHP 在企業環境中也變得流行起來,並且被廣泛地與數據庫一起使用。
雖然 PHP 對 DB2 的支持已經提供了較長時間了,但是 IBM 提供的用於 PHP 的驅動程序卻是 2005 年引入的。除了其他改進外,DB2 9 中的 pureXML 支持對於 (ibm_db2) PHP 擴展也是一個增強。
這個用於 PHP 的 DB2 驅動程序還包括在 Zend Core for IBM 中,後者是一個特別適合 DB2、IBM Cloudscape 或 apache Derby 數據服務器的受支持的 PHP 開發和生產環境,它具有無縫、即開即用和易於安裝的優點。
用於 Ruby on Rails 的 DB2 支持
Ruby on Rails 是一種開放源碼的 Web 框架,正迅速成為創建基於 Web 的應用程序的領先技術。Rails 奉行 “約定高於配置(convention over configuration)” 思想以及敏捷開發原則,它可以極大地減少開發時間和花在創建 Web 應用程序上的精力。
IBM 使 DB2 9 支持 Ruby on Rails,並發布了一個用於 DB2 的 Ruby 驅動程序和 Rails 適配器。用於 DB2 on Rails 的 Starter Toolkit 包括 DB2 Express-C (方便構建、部署、分發數據服務器)、教程、例子、Flash 電影,還有其他學習資料。
結束語
在本文中,您看到了 DB2 9 在應用程序開發方面的一些增強,這些增強為開發新的敏捷應用程序提供了強有力的支持,並且可以提高開發人員的生產率。現在,就請測試驅動 DB2 9,並親自體驗其優點。