或許您已經知道,DB2 Express-C 是 DB2 免費的社區版本。您可以將它應用在產品中,或者在應用系統中分發,或者只是為了簡單的開發目的而使用它,並且所有這些都是免費的!盡管 DB2 Express – C 只能使用兩個處理器和 2G 內存,但是您可以在任何大小的服務器上安裝它,而且在數據庫的大小上是沒有任何限制的。與其他廠商提供的社區版本相比,這是相當慷慨的捐贈了。
DB2 Express-C 的 9.5 版是在 2007 年 11 月發布。從那時起,幾個重要的改進和新的特性已被添加到新版本的 DB2 Express-C 中。盡管這些特性原先只存在於 DB2 的收費版本中,但是現在它們也被整合到最新發布的 DB2 Express-C 9.5.2 版本中了。
截止到撰稿時,DB2 Express-C 團隊正在對該社區版支持的所有平台的官方版做最後的質量測試;但是,這篇文章要比預期提前發表,而官方版還沒有被發布,但是您仍然可以使用從 2008 年 10 月份就可以下載的 DB2 Express-C 的 Beta 版。
通過使用新版本的 DB2 Express-C 您可以充分體驗下面的這些新功能:
DB2 文本搜索,新被整合到此產品中,允許您在文本列中執行快速的檢索;
任務管理調度器,允許開發者有規化地調度任務;
支持本地化敏感的排序,支持符合本地文化習慣的排序;
PureXML 增強,比如支持向 XML 文檔中插入數據的 LOAD 功能;
許多針對 JDBC, SQLJ 和 .Net 客戶端和驅動的增強。
除了對 DB2 Express-C 9.5 的改進和新功能的增加,DB2 Express-C 9.5.2 同樣修補了 9.5 以來發現的缺陷。對於修復列表,請參照本文中的“參考資源”部分。
DB2 文本搜索
DB2 文本搜索應該是 DB2 9.5.2 版本中最重要的新特性。 DB2 文本搜索允許您在 DB2 數據庫中使用 SQL、SQL/XML、還有 XQuery 語句來對存儲在 DB2 數據庫中的數據執行文本搜索。例如,假設您為您的公司開發了一個 Web 應用程序,一本 IT 雜志。公司的 Web 站點允許讀者對文章進行評論,並把這些信息存儲到一個叫做 Article 的表中,如下面表一所示:
表 1. Article 表的結構
ID
Integer
Titlevarchar (30)
Reader_commentsvarchar (100)
101 The Job market for Database Professionals Awesome article! I ’ ve been working as a DBA for 10 years, and this one is right on the mark! 101 The Job market for Database Professionals What is the difference between a Database Architect and a Database Administrator? 105 Working with ORM frameworks Nice to know how these frameworks work! 102 New with DB2 Express-C 9.5.2 Glad to see new features coming out with DB2 ’ s new release. Thanks IBM! 105 Working with ORM frameworks Great article. Thanks!使用常規的 SQL 操作符比如“ = ”或者謂詞比如“ LIKE ”,您僅能和搜索的模式進行匹配,比如:
SELECT reader_comments
FROM article
WHERE title = ‘ Working with ORM frameworks ’
或者
SELECT reader_comments
FROM article
WHERE title like ‘ Worki% ’
第一種情況下,您必須把文章的整個標題准確的存儲到數據庫中,第二種情況,您可以將 LIKE 和 “ % ” 結合起來使用;盡管如此,您仍然需要知道在文章標題開頭的那些文字。另一方面,使用 DB2 文本搜索,您可以在一個文本列上使用 CONTAINS() 函數來執行搜索,而且不需要指定准確的搜索條件(參數),或者它在字符串中的位置。它使用了語言學處理,那就是,它可以在搜索文本中找到和搜索詞匹配的不同形式。例如,下面的查詢語句將會把文章標題為“ Working with ORM frameworks ” 的內容檢索出來,即使使用的搜索條件(參數)是“ work ”。
SELECT reader_comments
FROM article
WHERE CONTAINS(title, 'work') = 1
您同樣也可以創建一個同義詞詞典,輸入單詞,您就會找到該單詞的同義詞。例如,您把 “ DBA ” 添加為“ Database administrator ”的同義詞,那麼當您使用 CONTAINS() 輸入“ DBA ”後,“ Database administrator ”也將會出現在檢索出的行中。
DB2 文本搜索對支持 pureXML 的 DB2 中的 XML 列也同樣適用。 XQuery 是 DB2 查詢 XML 文檔最優先選擇的語言。盡管如此,在一個 XML 元素內,可能也會有很多不便於使用 XQuery 搜索的部分。對這類數據 DB2 文本搜索就會變得非常有用。
在上面例子中列“ reader_comments ”被定義為 VARCHAR 。如果您把這個列定義為一個 XML 類型列,並且把所有的評論都作為 XML 來存儲,您就可以以同樣的方式使用 DB2 文本搜索,但是此時您不能再使用函數 CONTAINS,而是使用另一個對應的函數 XMLcolumn-contains(),如下:
xquery db2-fn:XMLcolumn-contains('ARTICLE.READER_COMMENTS', 'DBA')/articleinfo
在上面的例子中,我們通過 XQuery 查詢語言,在表 ARTICLE 的 READER_COMMENTS 列中查找存儲在這些 XML 文檔中包含‘ DBA ’的語句。這個搜索在 XML ‘ articleinfo ’下執行。
除了對英文的支持外,DB2 文本搜索還支持對不同語言的文檔處理,像阿拉伯語,捷克語,中文,丹麥語,德語,希臘語,西班牙語,芬蘭語,法語,意大利語,波蘭語,葡萄牙語,俄語等等。
DB2 文本搜索同時被 IBM OmniFind™ 文本搜索服務器所支持,下面是它所提供的其它一些特性:
DB2 的安裝和配置操作
在文本,Html 和 XML 文檔中的全文本搜索,包括布爾值和通配符搜索
完全被 SQL,SQL/XML,還有 XQuery 支持,包括對 XML 文檔搜索的子集 XPath 語法的支持
隱式認證
對錯誤處理的 SQL codes 機制
對大量數據的快速索引
通過調度選擇增量和異步索引更新
CONTAINS 和 SCORE SQL 函數
XMLcolumn-contains 函數
與 DB2 優化器結合在一起的 SQL 內置函數
所有支持語言的語言處理
同義詞字典支持
DB2 文本搜索提供的相似功能也同樣可以在叫做 Net Search Extender (NSE) 的 DB2 擴展中找到。 NSE 正在被整合到支持 DB2 文本搜索的產品中去,而不是像以前那樣作為一個擴展。
任務管理調度器
任務管理調度器是 DB2 Express-C 9.5.2 提供的又一項改進。通過它,開發人員現在可以建立,由程序動態控制的應用,來實現在 DB2 服務器上自動執行管理任務。這項功能的運行可以不依賴 Task Center(Task Center 不具備這項可編程的 SQL 接口,而且依賴於 DAS)單獨運行。
如果要使用這個組件新建一個任務,需調用“ ADMIN_CMD ”過程。通過調用該過程,您可以運行諸如 backup、 runstats、prune history 等管理命令,而且,您可以將這些命令加入到任務中,並指定該任務的運行時間和方式。
任務管理調度器中的任務列表是通過內嵌過程 ADMIN_TASK_ADD、ADMIN_TASK_UPDATE 和 ADMIN_TASK_REMOVE 進行管理的。您也可以使用管理視圖來監控任務列表和已執行的任務。
基於 UCA 本地化的敏感排序規則為訂制數據提供更多選項
在使用 DB2 Express-C 9.5.2 時 , 當您建立了一個 Unicode 數據庫,您現在便可以指定排序規則以便提供符合文化習慣的排序。例如,在西班牙語(拉丁美洲)中,字母表的排列如下:
A, B, C, CH, D, E, …
注意‘ CH ’本身即是一個字母。如果這個沒有被考慮到,那麼在拉丁美洲的西班牙語國家,我們可能會遇到被錯誤排序的單詞。例如下面的西班牙語單詞在默認的排序規則下可能會被排列如下:
Caballo, Cometa, Chofer
這些排序規則亦可被無縫地用於提供大小寫和發音敏感的順序。在 DB2 9.5.2 版中本地敏感的排序規則是基於 Uniocde 排序算法 5.0 版的,該算法為比較兩個 Unicode 字符串提供了遵守 Unicode 標准要求的規范。
您還可以通過 COLLATION_KEY_BIT SQL 標量函數來采用同為本地化敏感的基於 UCA 排序規則。
pureXML 增強
現在,在 DB2 Express-C 9.5.2 中,您可以使用 LOAD 組件將 XML 文檔插入到 DB2 的表中。 LOAD 組件提供了比 IMPORT 組件更好的性能,因為前者通常可以在寫入最少日志的情況下將數據直接寫入數據庫,從而提供了更為高效的數據移動。
加載 XML 數據的能力也允許您對包含 XML 列的數據表使用指定加載選項,例如從 CURSOR 類型的文件以及各種不同的數據交換功能部件加載。
NET 增強
在 DB2 Express-C 9.5.2 中,.Net 公共語言運行時(CLR)例程(包含存儲過程和用戶定義的函數)現在可以部署在 64 位環境中。
客戶端與驅動增強
盡管以下的增強適用於客戶端和驅動,它們也包含在 DB2 Express-C 9.5.2 服務器中。因此,如果您一直使用您的 DB2 Express-C 服務器作為連接到數據庫的客戶端,或者一直使用與之配套的驅動,您現在就可以得到以下功能部件的好處:
1. 針對 JDBC 和 SQLJ 的 IBM 數據服務驅動增強
下面列出的是針對 JDBC 和 SQLJ 而為 IBM 數據服務驅動而建立的增強。請參閱本文的“參考資源”一節以獲取這些增強的完整說明。
無須再向 CLASSPATH 中添加 db2jcc_license_*.jar 證書文件。
使用 Type4 連接支持 XML 數據類型加密。
為 LOB 提供過程化流的支持。
增加了針對動態滾動游標的 ResultSet 和 DatabaseMetaData 方法。
com.ibm.db2.jcc.DB2Array 接口支持數組。
支持十進制浮點數(DECFLOAT)。
增強了客戶端重定向功能組件。
為驅動管理器連接添加了連接集線器和 Sysplex 工作量平衡支持。
支持不定長度的 setXXXStream 方法。
為 XML 模式升級增加了 Java™ 應用支持。
支持 PerparedStatement.setObject 調用 Reader 和 InputStream 對象。
移除了 Javax_jcc.jar,因其不必再包含在 CLASSPATH 中。
支持樂觀鎖機制。
支持超時方法。
增加更多的 JDBC 3.0 方法。
使用 Type4 連接時支持內部指令緩存。
包含 sqlj4.zip 文件(與 db2jcc4.jar 同為驅動文件),這些文件支持 JDBC4.0 和更早版本,並且要求 Java SDK 版本不低於 6 。
2. 增強了針對 .Net 的 IBM 數據服務提供者
IBM .NET 數據服務提供器包含了 ASP.Net 提供器
支持受信任的上下文應用以獲得更高的傳送速度及安全性。
在安裝 DB2 Express-C 9.5.2 後,包含於 .Net Framework 3.5 Service Pack 1 的 LINQ 實體架構的升級可在此 beta driver 中獲得支持。
關於 DB2 Express-C 9.5.2 和客戶端 / 驅動增強還有更多的細節。可以在 DB2 Information Center 找到它們。
總結
IBM 繼續發布免費的 DB2 Express-C 升級版本:DB2 Express-C 9.5.2,以踐行對社區應盡的責任。這些新的功能和增強大多數都曾隨付費的 DB2 版本提供,同時也提供給使用定期證書的 DB2 Express-C 的用戶。
在本文中,我們簡要介紹了本產品中最為重要的一些增強。特別是針對社區提出的 DB2 文本搜索功能的需求。這一新的功能使得用戶可以進行強大的文本搜索,並且支持多種語言,如漢語,俄語和葡萄牙語。還有其它的增強包括:一個可由 DBA 定制的可用於程序動態控制任務執行計劃的管理任務調度器;對符合文化傳統預期的排序規則的支持;對使用 LOAD 組件更加快捷地向 DB2 數據庫插入大量 XML 文檔的支持,以及一系列用於客戶端和驅動的增強也都隨 DB2 Express-C 9.5.2 一起被發布。