或许您已经知道,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 | Title varchar (30) | Reader_comments varchar (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 数据服务驱动而建立的增强。请参阅本文的“参考资源”一节以获取这些增强的完整说明。