DB2还行不行?IBM i:我要支持多元数据库!

2019-02-14 16:46 来源:未知

  【IT168 编译】IBM i与其他平台有很多不同之处,其中最独特的就是集成了DB2数据库,专门供IBM i客户使用。但现在是不是到了IBM i支持多元数据库的时候了?

  在许多方面,DB2 for i都是平台最大的优势。IBM i以其交付处理能力而着称,推动了ERP和其他业务应用程序的发展,DB2 for i为这些系统提供坚定的动力引擎。

  理论上来讲,没有DB2 for i的IBM i服务器也是可以运行的,例如你可能想在X86服务器上单独运行Oracle或SQL Server数据库。但是这样做,就完全失去了IBM i平台的优势,更别说计算规律了。在Oracle JD Edwards和SAP Business Suite的常见异构设置中,IBM i服务器几乎总是为数据库供电,而主流X86服务器及其Windows和Linux操作系统为应用程序和HTTP服务器提供动力。

  这个以数据库为中心的身份几十年来一直服务于IBM中端平台。DB2 for i数据库非常成熟强大,支持SQL和DDS编程结构,支持ANSI SQL。更重要的是,IBM i平台每发布一个新版本,在我看来,DB2的性能也越好。所以,我们是否需要IBM i有更多的东西?

  这个问题的重点可能是在数据本身的性质正在发生改变,所以存储方式也需要改变。IBM首次开发AS / 400时,存储(主要指磁盘)相对于今天来说是昂贵的,因此公司希望将其存储量减到最少。IBM的存储架构也反映了这一事实,因此写入磁盘的数据是高度精炼或结构化的。

  这对关注结构化数据的行业提供了很多便利,关系型数据库管理系统(RDBMS)也得到了飞速的发展。

  但是随着时间的飞逝和存储成本的降低,需要优化数据以适应小空间的数据越来越少。2000年左右,可扩展标记语言(XML)开始流行,它将通过数据自我参照(即每个数据)大大地扩展了我们可以通过数据和应用程序做的事情。XML文档,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。

  虽然XML大大简化了数据集成的挑战,但是它自身也存在很多挑战,其中最明显的就是XML文档解析慢,如果要解析成DB2 for I 所理解的格式,XLS运行程序的处理器会耗尽。这对于重视简单性和易用性的传统RPG程序员来说,明显是有点复杂。

  10年前,Web 2.0革命刚刚开始时,JSON开始走入了我们的视线。与XML一样,JSON也是一种自定义的半结构化数据格式,但是JSON比XML要快得多。

  如今JSON已经超过XML成为了Web开发十分受欢迎的数据格式,而且还激发了新的非关系型数据库管理系统的诞生——NoSQL。目前比较流行的NoSQL数据库之一——MongoDB,它就是将数据以类似JSON的格式存储,名为BSON。Couchbase也是一款十分受开发人员欢迎的NoSQL数据库,它也是以JSON格式存储数据。

  从DB-Engine来看,目前四大流行数据库分别是Oracle、MySQL、SQL Server和PostgreSQL 。关系型数据库还是占据主导地位,而且全球很多企业之前都部署了关系型数据库,而且耗资数万亿美元用于开发应用,所以关系型数据库是不会轻易狗带的。

  但是NoSQL数据库也在以迅猛的速度来获得更多的市场份额,尤其是在Web和移动应用程序领域。NoSQL数据库的巨大进步使得开发人员在为应用程序读取数据时更愿意选择NoSQL数据库而不是关系型数据库。NoSQL数据库专注于存储自定义数据类型,随着时间的推移,它的优势会更加明显。

  当然诸如DB2这样的RDBMS也在发展,支持一些NoSQL功能,如水平可扩展性、JSON支持等等。IBM早期也为i添加了对JSON的支持,但是这种支持还不完整,未来的技术更新可能会支持更多的功能。

  虽然DB2 for IBM是IBM i平台的故事主线,但是它并不是该平台正式支持的唯一数据库。

  差不多十年之前,IBM正式支持了一个由Monty Widenius创建的开源关系数据库,该数据库主要用于支持PHP应用程序。而现在随着Oracle对MySQL的一些自私作为,再加上2001年IBM i平台放弃了对于MySQL的支持,MariaDB正在全球慢慢取代MySQL。

  MariaDB和MySQL都是关系数据库,他们有PHP,Perl和Python开发社区的支持,所以IBM i平台上以这些语言编写的程序都会得到简化,但是它们不提供与DB2 for i完全不同的数据存储。

  MariaDB和MySQL是平台上替代数据库的最佳示例,除了它们还有一些其它项目。其中之一是由IBM i开发人员Christopher Burns牵头的Inuendo项目。

  Inuendo是IBM i的关联数据库,旨在大大简化数据存储的方式,从而加快交易处理量。关联数据库不是使用数十个相互关联的表、索引和访问路径构建数据库模式,而是依赖于一组唯一的标识符来提供对存储在数据库中的业务实体的访问。虽然支持SQL,但访问主要是通过一定数量的API。

  IBM i的另一个数据库是ERROS connectionist数据库,由英国IBM i开发人员Rob Dixon开发。Dixon最初开发了ERROS的初衷是支持他正在开发的S / 38应用程序,其在尊重权威和维持高性能的同时支持了灵活性。

  作为connectionist数据库,ERROS特别适用于定义双向关系,无需查询语言即可导向关系的任一方,拥有几乎存储无限深度的层级能力。

  值得注意的是,与其它数据库想要提到DB2相比,ERROS更像是站在DB2的肩膀上。Dixon表示,ERROS核心的“通用数据结构”存储了所有数据定义、应用程序定义和权限以及所有用户数据。

  Dixon 表示ERROS允许增量开发,没有详细的用户规范,没有物理文件设计或规范化,没有SQL,我创建ERROS的初衷是为人文创造一个先进的系统,但它同样也适用于在商业环境中创建主要的互联网系统,包括事务处理。”

  即使数据的性质发生了变化,我们也要使用数据库来存储它。IBM在交易处理方面的优势存在并将长期存在下去。但是现在大部分企业的数据都不是关系型的,并不适合整合在RDBMS中。

  所以IBM也在积极的适应这些改变,向MariaDB为开源编程语言开发的插件提供兼容性。正如程序员的开发工具正在逐渐变化,数据库的数量和种类也在变化。为了确保能够和快速变化的IT保持同步,IBM会将更多更新的开发技术整合到IBM i 平台中,让程序员更容易的将不同类型的数据处理引擎插入到IBM i中。

TAG标签: db2数据库
版权声明:转载须经版权人书面授权并注明来源