DB2 Express-C 10:更多价值

依旧免费

在我们行业,6 年就意味着永远。以此看来,IBM® DB2® Express-C 已存在了很长时间。自 2006 年作为 IBM DB2 DBMS 的一款免费版本推出以来,DB2 Express-C 迅速在 DBA、应用程序开发人员、学生和 ISV 中流行起来。在 6 年中经过无数更新之后,DB2 Express-C 10 终于在 2012 年 4 月 30 日得以发布,它可供任何人下载或在云上免费使用。我们不会再提供其他使用方式。

Leon Katsnelson, 项目主管,IM Cloud Computing Center of Competence and Evangelism, IBM Canada Ltd.

作者照片Leon Katsnelson 负责云计算方面的 IBM Information Management 工作。Leon 目前专门研究云计算环境中新兴的大数据领域。Leon 领导着 IM 云计算能力中心,这是一个由经验丰富且充满智慧的专业人员所组成的团队,其目标是帮助客户和合作伙伴使用 IBM Information Management 产品(比如 DB2、InfoSphere Warehouse、InfoSphere BigInsights 和 InfoSphere Streams)取得成功,帮助他人在云中取得成功。Leon 拥有 27 年的 IT 职业生涯,其中 18 年担任过 DB2 开发和产品管理方面的各个职位。



2012 年 7 月 13 日

免费下载:IBM® DB2® Express-C 10.1 免费版 或者 DB2® 10.1 for Linux®, UNIX®, and Windows® 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

DB2 Express-C 如何避免变成试用软件

商用产品提供免费版在 2012 年已不再是件新鲜事。开放源码运动带来了人们对免费产品期待的一种气氛,并且许多软件提供商也以发布其商用产品的免费版本来回应这一运动(出于某种原因,律师不喜欢 “免费” 这个词)。提供商用产品免费版并不是一项容易的决定。毕竟,如果一个产品可免费获得,那么还有什么理由继续支付数十万或者甚至数百万美元购买相同的产品呢?

为了保护来自现有产品的可观收入,供应商为其免费产品添加了限制,这些限制如此严格,以至于大部分这样的产品都被称为 “试用软件”。一个很好的例子是来自 Oracle 和 Microsoft 的 DBMS 免费版。Oracle Express Edition 和 Microsoft SQL Server Express Edition 均是其非常昂贵商用产品所对应的强大免费版本。为了保护收入(他们也应该这么做),Oracle 和 Microsoft 在内存使用、处理能力和可用性等区域引入了非常相似的限制。尽管面向低端市场,这些限制仍然是在不削弱功能的前提下限制 DBMS 性能的合理方式。但是,两家供应商都选择严格限制免费 DBMS 能处理的数据量。Oracle 将 Oracle XE 限制为 11GB 数据,Microsoft SQL Server 引入了 10GB 的限制。

DB2 Express-C 与其他免费商用 DBMS 有何不同?

DB2 Express-C 选择了一种不同的战略。尽管对 IBM 而言充满风险,但我们觉得我们所采取的措施对我们的客户更好。(如果人们不付费,他们还是您的客户吗?我们认为是的。)此战略毫无保留地向应用程序开发人员提供了 DB2 的所有功能。当使用 DB2 Express-C 构建应用程序时,您可以确定 DB2 提供的每个编程接口都可供您使用。您也可以确定您使用 DB2 Express-C 编写的应用程序代码可原封不动地在任何其他 DB2 for Linux®, UNIX®, and Windows® 和 IBM InfoSphere® Warehouse(DB2 数据仓库产品)中运行。在大部分情况下,它还将原封不动地在 DB2 for z/OS® 和 DB2 on System i® 上运行。

而且,因为 DB2 Express-C 包含与 DB2 for Linux, UNIX, and Windows 的付费版本完全相同的代码,所以您可以确定,您的应用程序在与付费 DB2 版本和免费 DB2 Express-C 中使用时均具有完全相同的行为。与来自 Oracle 和 Microsoft 的竞争产品不同,您不会受到 DB2 Express-C 可管理数据量的限制。任何人在处理大小超出 11GB 的数据库时看到 ORA-12592 错误消息都能可证实这有多糟糕,尤其是在您的声誉与您客户密不可分的时候。DB2 Express-C 中没有类似的消息,DB2 绝不会因为您处理超出限制大小的数据量而停止工作。DB2 Express-C 可管理的数据库大小在本质上是无限的。它只会受限于您向 DB2 Express-C 服务器提供的资源,而这一限制只会影响性能,而不会影响功能。DB2 Express-C 不会将您置身于由于许可限制应用程序停止工作的境地。

因为我们探讨的是数据库和资源的主题,所以我们还应该指出,DB2 Express-C 服务器可以是物理的或虚拟的。而且,您可以在单个服务器上运行多个 DB2 实例,每个实例可拥有多达 256 个独立且不同的 DB2 数据库。每个数据库可进一步将数据分解为 32000 种模式。这对任何付费 DBMS 而言都是一种强大的功能,在 “免费 DBMS” 市场更是绝无仅有的。

如果 DB2 Express-C 免费提供了这么强大的能力,为什么要付费购买 DB2 的 Express、Workgroup、Enterprise 和 Advanced Enterprise 版本?DBMS 的性能高度依赖于可供它使用的内存和处理器资源。它的价值也与通过数据库管理员可用的高级功能优化 DBMS 操作的操作效率直接相关。这些是各种 DB2 版本的两个方面的区别。


可供 DB2 Express-C 使用的资源

让我们首先看看资源方面。DB2 Express-C 可部署在拥有任何内存量的任何大小服务器(无论是物理的还是虚拟的)上。换句话说,您选择来运行 DB2 Express-C 的服务器硬件不会受到任何限制。但是,DB2 Express-C 将控制自身仅使用许可协议条款允许使用的资源。具体来讲,DB2 Express-C 将计划在两个处理器核心上执行 DB2 任务,无论运行 DB2 Express-C 的服务器上存在多少个处理器核心。这项工作是自动完成的,不会添加任何监视和管理客户合规性的负担。如果您愿意,可以更改供 DB2 Express-C 使用的处理器核心。默认情况下,它将使用前两个处理器核心,也就是编号为 0 和 1 的处理器核心。DB2 Express-C 10 中存在这一 CPU 能力限制是自 DB2 Express-C 之前版本开始就有的。

资源的另一个方面是主内存或 RAM。DB2 Express-C 的早期版本将自身限制为使用最多 2GB 内存。DB2 Express-C 版本 10 将最大内存量翻了一倍,更改为 4GB。您可能想知道为什么我们选择将可用内存量翻倍,而与早期版本相同的处理器数量。我们发现,内存对性能的影响比 CPU 容量对性能的影响要大得多。具体来讲,我们发现许多新工作负载(比如涉及文本和 XML 处理的工作负载)实际上会使用更多内存。

为了全面理解资源方面,请考虑两个示例。假设您有一个 x64 架构的服务器,它具有两个四核处理器和 64GB 内存。您可以在此服务器上部署 DB2 Express-C,无需担忧许可合规性。DB2 Express-C 将使用两个处理器核心,将剩余 6 个核心留给其他工作负载,比如 Web 和应用服务器或新的文本搜索服务器(稍后将更详细介绍)。类似地,DB2 Express-C 将使用 4GB 内存,将剩余 60GB 用于其他工作负载。

您可能会一直在想为什么要升级到付费版 DB2 的这个问题。DB2 的付费版本会利用更多处理器和内存资源。因此,他们将提供更高的性能水平。此外,DB2 付费版本为 DBA 提供了额外的功能来优化数据库的性能,减少操作成本。例如,DB2 付费版本提供了高级数据压缩功能,它可显著减少存储成本,同时改善性能。对于需要管理非常庞大数据库的客户,单单在存储成本上的节省就足以补偿 DB2 许可的成本。

DB2 付费版本中可实现成本节约的功能的另一个示例是多温度存储(V10.1 中的新功能)。此功能允许 DBA 将经常使用的和重要的数据(热数据)放在更快的存储上,比如 SSD,将参考数据或不常使用的数据(冷数据)放在更加廉价的存储上。类似于压缩,在性能得到的改善以及在存储成本的缩减足以补偿 DB2 许可的成本。

另一个示例可能是物化查询表 (MQT)。这些在本质上是预先计算的复杂查询,可以对那些在过去可能需要几小时进行计算的问题提供即时的答案。连接集中器功能允许 DBA 处理数万个用户的工作负载,而无需向每个工作负载专门分配数据库服务器资源。这允许单个数据库实例处理大量的并发用户。DB2 付费版本支持此功能,而 DB2 Express-C 产品不支持。高级安全性是另一个示例。基于标签的访问控制 (LBAC) 与行和列访问控制(RCAC,V10.1 中的新功能)允许 DBA 提供更强有力的数据安全性和隐私保护,而无需应用程序开发人员来满足这些需求。

请注意,所有这些功能都旨在帮助 DBA 设计更高性能、更低操作成本且更高安全性的数据库环境。这不是巧合,而是一个设计重点。正如本文前面所述,DB2 Express-C 提供了 DB2 的所有编程接口,允许使用 DB2 Express-C 构建的应用程序在所有 DB2 版本上运行,同时为 DBA 提供了先进的功能来优化这些应用程序的成本和性能。我们还提到,DB2 Express-C 受到志趣相投群体的支持,而 DB2 付费版本却提供了由全球的 IBM 支持团队所带来的技术支持。


DB2 编程接口

目前为止,我们介绍了 DB2 Express-C 如何在资源和操作功能上有所区别的同时提供所有的 DB2 接口。现在是时候讲讲这些接口和 V10 中提供的增强特性。我们首先将介绍 DB2 的最独特的特性之一,那就是使用 pureXML® 功能处理 XML 数据的能力。

更快的 XML 处理

我们非常重视将 pureXML 包含在免费的 DB2 Express-C 中。版本 10 增加了处理 XML 的方式,此项增强可用一个词来描述,即 “速度”。DB2 对 XML 的处理一直都很快。版本 10 中,会变得更快……快得很多。首先,增强引擎内部以加快多种类型 XML 的查询。具体来讲包括使用 XMLTABLE 函数的查询、具有早期联接谓语的查询、非线性 XQuery 查询和具有父轴的查询。最佳特性是,所有的这些增强改善了性能,而未对 API 进行任何更改。您只需升级到 DB2 Express-C 10 即可提升性能,无需触及任何应用程序代码。

加速 XML 查询的另一种方式是通过添加新索引。在 V10 中,您可以在 XML DECIMALINTEGER 数据类型上定义索引。在 DB2 10 之前,您只能在类型 DOUBLE 上定义索引,这不会为原生的 DB2 XML 引擎提供实现最高性能的所有机会。DB2 10 还支持您在 FN:UPPER_CASE XML 函数上定义索引,实现对 XML 数据的不区分大小写的快速搜索。也可以在 FN:EXISTS 函数上定义索引,进而加速搜索一个 XML 列中特定元素的查询。再一次,有必要指出,无需对应用程序代码进行任何更改。只需定义这些新索引即可加速现有的查询。

最后,Java 编程人员现在可利用更加精简的二进制 XML (XDBX) 格式来加速 Java 应用程序和 DB2 Express-C 10 服务器之间的 XML 数据传输。

更高效的文本搜索

在 DB2 中,创建和维护文本搜索索引是文本搜索服务的工作,这经常是一项耗费资源的任务,可能消耗 DB2 Express-C 服务器上的资源。DB2 10 支持您在一个独立的服务器上托管文本搜索服务,这样它就可以获得专门的资源,不会影响其余的 DB2 工作。DB2 Express-C 用户还能获得一项额外的收益。如果您运行 DB2 Express-C 的服务器拥有比 DB2 Express-C 可使用资源(2 个处理器核心和 4GB 内存)更多的资源,则您可以将额外的资源用于文本搜索服务。

除了改善的效率,DB2 Express-C 10 文本搜索还支持模糊搜索以及邻近搜索。模糊搜索允许您找到类似的文本(想想谷歌建议的功能),而邻近搜索允许为您搜索的字符串之间的距离添加限制。与我们目前所介绍的其他功能不同,邻近搜索和模糊搜索都需要对查询进行细微的更改。

RDF:DB2 Express-C 的一个全新机会

Internet 的广泛流行和 Web 资源的大量增生使许多人认识到了,需要一个凝聚性的框架来管理海量资源中的元数据。例如,一个简单的网页可能包含标题、作者、创建与修改日期,以及属性信息,如果机器支持在 Web 上搜索和发现资源,那么所有这些信息都具有重要的价值。计算机使用这些元数据来理解有关 Web 资源信息的能力是语义 Web 背后的理念。

资源描述框架 (RDF) 是一个描述 Web 资源的 W3C 标准。RDF 以主-谓-宾的形式描述 Web 资源,例如 “Leon 是加拿大人” 或 “Leon 认识 Paul”。这些以主-谓-宾形式表示的数据实体类型称之为三元组,存储在专门的 triplestore 数据库中。DB2 Express-C 10 可用作原生的 triplestore 数据库,提供了在 DB2 Express-C 中存储和查询 RDF 数据的能力。RDF 是一种非常有趣的数据格式,用于表述如社交图等关系(想想 Facebook 和 Twitter 等社交网络)。Friend of a friend (FOAF) 是一个项目,它创建机器可读的信息来描述人们和他们之间的关系,是使用 RDF 数据的一个示例。

对数据执行时间旅行

如今,人们对以数据维度的形式管理时间的兴趣比以往更高涨。这一需求有由许多业务所驱动的。这样的需求是来自于对遵守各种政府和行业法规的需求。许多合规性需求都以保留完整的数据更改历史为中心。许多法规要求能够回答有关业务状态和一个时间点的各种数据点的问题。许多组织需要查询和更新其操作的生效日期和有效期的能力。

DB2 Express-C 10 引入了一种时态数据管理功能 DB2 Time Travel Query,它使采集随着时间发生的数据更改或设置生效日期和有效期的过程变成了一个只需几条 SQL 语句的过程。在过去,添加时态功能将需要创建数据库触发器和非常复杂的应用程序逻辑。新的 Time Travel Query 大大简化了这一过程。我们的测量表明,DB2 Time Travel Query 可将所需的工作减少 45 倍。这对免费产品而言是一项重要价值。

请在文章 “时间问题:DB2 10 中的时态数据管理” 中了解时态数据和时间旅行查询的详细介绍。

Oracle 兼容性

如果不提及 DB2 Express-C 10 的 Oracle 兼容性功能,对新编程功能的讨论就不会完整。尽管我们在 Oracle compatibility available in DB2 Express-C V9.7.5 中引入了 Oracle 兼容性,但许多人都是在第 10 版的 DB2 Express-C 中第一次体验这些功能。另外,在第 10 版中,我们进一步增强了 Oracle 兼容性,使为 Oracle 构建的更多应用程序只需进行极少更改即可在 DB2 上轻松运行。最新研究表明,为 Oracle 编写的应用程序代码中高达 98% 可原封不动地运行,应用程序仍将适用于 DB2 Express-C。我们这里不会详细介绍 DB2 的所有 Oracle 兼容性功能,因为已有大量关于这一主题的信息,比如文章 “DB2 10:在 DB2 10 for Linux, UNIX, and Windows 上运行 Oracle 应用程序。”


现在是开始使用 DB2 Express-C 10 的绝佳时机

现在您已看到 DB2 Express-C 10 产品提供的所有价值,令人惊奇的是这些价值完全免费。我们还使开始使用 DB2 Express-C v10 这一过程变得非常简单。该产品可从 ibm.com/developerworks/cn/downloads 下载。您也可以让您自己的 DB2 Express-C 服务器在云上运行,只需不到 30 分钟:http://bit.ly/Iv8837。您也可以期待 DB2University.com 上推出新的免费课程,而且还有大量介绍 DB2 10 中新功能的文章和教程正在涌现出来。现在正是采取行动和试用 DB2 Express-C 10 的时机。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=825823
ArticleTitle=DB2 Express-C 10:更多价值
publish-date=07132012