论文部分内容阅读
在IBM DB2 UDB(Universal Database)最新的8.1版本这个系列中,我们惊奇地发现,除了一直在高端数据库市场有着举足轻重分量的Enterprise版本外,还特别推出了Express版本,IBM此举意义何在?接下来的文章就会告诉大家,当然我们也希望借这篇文章阐述IBM DB2 Express给我们带来的一些新特性。
从70年代关系数据库出现到现在,各种各样的数据库产品在激烈的市场竞争下被淘汰出局,而仅存的几家厂商凭借自己的实力在各自擅长的领域里稳占一席之地,IBM作为关系数据库技术的领头人,自然也就挑起了高端数据库应用的重担,本刊2003年13期曾经以一篇《三国争霸——演绎数据库技术》给读者介绍了当前数据库应用中的各种新技术,我们可以预见,数据库的发展受到应用复杂化的挑战,除了通过增加新的功能来适应更多的应用外,推出更加细致的产品线也是一个主要趋势。
各据一方看厂商
随着各种企业应用的复杂化,人们在各种规模下对数据库系统的偏爱是有增无减,像在小型Web应用中被大量采用的PostgreSQL/Mysql等小型数据库,由于其容易取得,并且拥有多平台支持能力,以及非常好的响应速度,成为很多爱好者学习和了解数据库的最佳途径。但是由于这类产品在一开始设计的时候,并没有考虑到在企业环境中应用所需要的可靠性,因此在中小型的企业应用中很少被采用,而更多的是采用Oracle和SQLServer这些有比较好的支持,并且也确实针对企业应用开发的中、小型产品,其中由于SQLServer和微软的产品有着一脉相承的关系,所以在安装和配置的习惯上更加容易被用户所接受,所以被大量采用。而Infomix,Sybase等数据库的应用环境更加有针对性,所以用户对其了解也不是很多。反倒是由于三巨头之首IBM的DB2 UDB长期以来都是在比较大的环境中运行,所以人们对于DB2的了解相对较少,甚至有一点神秘的感觉。
人性化设计谈定位
其实,IBM早在1996年确立的DB2 Universal Database(通用)名称里面就非常直接地体现出了这样的思路:Universal(通用)除了代表能够支持各种数据处理功能外,还意味着对各种运行环境的适应。虽然IBM早就推出能够在Intel平台上运行的产品,不过由于当时人们对信息系统的需求还不是很大,所以依然采用了和Enterprise同样的定位策略,让很多了解并且希望使用DB2的用户望而却步,不得已而改选择其他厂商的产品。但是在企业规模和需求上升到一定程度后,有些厂商针对中小环境设计的产品往往无法提供平稳过渡和迁移到更大规模平台的能力,但企业用户不得不选择全面升级到大型数据库平台时,就直接导致更多的重复投入。IBM也看到了这一点,所以在这样的需求逐渐增大时乘势推出了DB2 UDB Express 8.1产品,希望能够通过新的策略来夺回曾经被自己忽略的市场。
并不简单的Express
随着IBM策略的改变,这次发布的DB2 UDB Express系列就不像以往的DB2产品一样只提供单一的选择了。除了Express版本外,用户还可以根据自己的应用需求选择其他的版本,如Workgroup 或Workgroup Unlimited等,用户能够采用单一的拷贝来安装,根据自己的应用规模来选择对应的许可就能够拥有不同伸缩能力的DB2 UDB了。而且所有的DB2 UDB家族产品都采用一样的核心,也就是说在升级和规模扩张的过程中,完全不会受到数据库功能的限制(见图1)。
在拿到这款产品之前,我们已经接触过DB2 UDB 8.1的Enterprise for AIX版本,所以在安装这款产品的时候我们感到非常有意思,因为从风格上来看,它们是完全一致的(DB2 三个版本的比较)。考虑到中小企业实际环境,为了更好地控制研发成本,IBM只为DB2 Express 8.1提供了Windows和Linux的支持,这显然也是合理的。一方面,Windows拥有非常高的易用性和相当高的中小企业占有率,支持Windows等于拥有了铺开这个市场的敲门砖。另一方面,Linux是目前最容易获得的Unix类系统,正在向高端企业级特性靠拢,有技术能力的用户可以基于Linux构建更加强大的数据库平台。不过从目前的情况来看,由于Linux目前还不能够很好地支持轻量级线程等技术,以及具有很多企业级特性的Linux 2.6系列核心还在测试阶段,因此在很多情况下,Windows将为DB2 Express提供更好的应用环境。
在我们新安装好的Windows XP系统下,完全采用默认选项就能够顺利安装好DB2 Express。当然,真正的工作才刚刚开始,因为我们最关心的是能否让我们的数据库运行起来,因此按照文档的说明,我们从新创建的DB2快捷方式中找到了控制中心。由于是采用Java编写的软件界面,因此需要少许等待后才出现管理界面(注意只是图形界面而已,这并不会影响核心服务进程的效率)。我们在选择创建实例后,在向导的提示下,用默认参数就非常容易地完成了数据库和实例的创建和配置。 当然,用户可以根据自己的需要进行参数的调整以进一步优化性能。由于充满了专业术语,需要用户有比较完整的数据库知识才能够很好地设置好每一个参数,毕竟调试过程中还有一些至关重要的参数会直接影响到数据库的性能,所以管理员必须要多加小心。和很多其他同类产品不同,DB2 Express不但继承了其经典的动态SQL语句优化功能(见图2),还给我们提供了在数据库正常运行以后,通过运行数据库优化向导来进行专门优化(优化向导)的能力(见图3),这也充分体现了IBM在数据库系统应用中的经验以及在易用性方面所作出的努力,也令本次评测过程更为灵活、方便。
易用设计勿忽视
说到数据库产品的易用性,我们当然得和DBA(Database Administrator)沾上一点关系。由于在一个基于数据库的应用系统中,DBA从设计结构、开发到运行都必须负担起很重要的责任,一个良好的管理界面能够让DBA从管理杂项中脱身出来,把所有的精力放到对数据库的性能和结构调整上。但也许有的习惯命令行的用户(包括我自己)都会有这样的疑问:过于精致的图形化界面会不会限制管理上的灵活性?但是从我们本次试用中发现,IBM采用了非常简单却很有效的方法来兼顾所有的习惯。首先,DB2 Express 8.1的两个版本都保留了完整的命令行工具,甚至安装向导也有一个命令行版本(Windows因为不提供shell工具,所以没有提供命令行安装向导),而采用Java编写的图形工具则显得非常灵活,并包含了完整的可选参数,而不是像一些一味追求易用性的软件,在隐瞒具体细节的同时却丧失掉灵活性。当然,过多的参数调整也容易导致系统失效,IBM充分考虑到了这点,大部分在图形工具下面的调整步骤都是有恢复机会的,一旦用户发现调整出现问题,可以及时恢复到之前的正常状况。让用户能够随时在自己最熟悉的环境下管理DB2 Express,这也体现了IBM的口号“管理你的数据,而非数据库”。
最终性能靠优化
我们先给大家看一个例子:因为工作关系,笔者在2000年曾经接触过一个项目,是为北京一个比较大的连锁餐饮公司开发一套POS系统,采用典型的C/S结构,服务器端是采用直接连接到数据库的方式,使用Microsoft SQL Server 2000,客户端采用Delphi开发,由于数据库开发经验的不足,开发团队把大部分运算和数据的处理放到客户端进行(而不是在数据库中创建过程或者视图),这对于一个熟悉Delphi的程序员来说,确实比调整数据库要顺手许多。在开发完成后,由于在实施中采用了专用的POS终端,硬件性能非常低,导致过于复杂的客户端根本无法在上面正常运行,而且客户端程序在短时间内根本无法很好地优化速度,整个开发计划因此搁浅,使工程方和餐饮公司都受到了不少损失。
这个例子说明了两个问题,首先就是在这种环境下(也是目前大多数采用数据库的小规模环境中),其实数据库系统根本没有起到足够多的作用,只是作为一个简单的存储器来使用,因此在发生性能问题的时候,是无法通过优化数据库来提高整个系统的运行效率的。其次就是提醒我们数据库需要有非常好的优化和管理能力,才能够在系统的设计、开发和运行等各个环节进行有效地调整来适应不同的应用,让整个系统在最高的效率下工作。
在我们的试用中,DB2 Express提供的数据库优化功能确实让我们感到高兴,其中程序包/物化视图/优化器/分布式查询(见图4)/在线表—索引重组的特性更是把矛头指向了在这个领域的强劲对手SQL Server。
扩展、支持皆重要
和DB2 UDB家族中的所有产品一样,DB2的高可用性和对数据的在线备份等特性也都在Express上得到了保留,能够实现数据库的故障接管,保证了数据库服务器的连续运行。不过类似数据库集群和分布式查询等大规模应用所需要的功能就需要用户更新Enterprise级别的许可了。
在对开发商的支持上,IBM的价值又一次得到体现。由于长期和不同厂商的合作,DB2 Express提供了包括JDBC、SQLJ、ODBC、OLD DB、ADO、ADO.NET、DB2 CLI、Embedded SQL、XML、WebServer等在内的几乎全部开放标准支持,使得开发者能够利用最熟悉的开发方式进行开发,大大缩短了开发时间,削减部署成本,避免受到任何单一平台或者专有接口的局限。
工程师寄语:
技术从高端应用逐渐走向低端市场显然是IT行业中不可避免的一个过程,在合适的时机作出这样的举措,对于抢占市场也非常有利。当然,用户能够从先进的高端技术中获益,提高自己的生产效率也是我们所希望看到的。从IBM发布DB2 Express和一直以来在Linux上的大量投入我们可以看出,IBM正在逐渐了解国内企业信息化的水平,重新调整自己在国内对于中小企业的定位,以便从中小企业这个原本很少涉足的领域里面分一杯羹。虽说这样一来用户又能够多一个好的选择,但是这个市场的竞争会演变得更加激烈。
关系数据库和IBM DB2
在数据库技术发展的历史上,1 9 7 0 年是发生伟大转折的一年。这一年的6月,I B M圣约瑟研究实验室的高级研究员埃德加·考特 (Edgar Frank Codd) 在Communications of ACM 上发表了《大型共享数据库数据的关系模型》一文。它首次明确而清晰地为数据库系统提出了一种崭新的模型,即关系模型。“关系”( Relation ) 是数学中的一个基本概念,由集合中的任意元素所组成的若干有序偶对表示,用以反映客观事物间的一定关系。如数之间的大小关系、人之间的亲属关系、商品流通中的购销关系等等。在自然界和社会中,关系无处不在;在计算机科学中,关系的概念也具有十分重要的意义。计算机的逻辑设计、编译程序设计、算法分析与程序结构、信息检索等,都应用了关系的概念。而用关系的概念来建立数据模型,用以描述、设计与操纵数据库,考特是第一人,也被称之为“关系数据库之父”。由于关系模型既简单、又有坚实的数学基础,所以一经提出,立即引起学术界和产业界的广泛重视,从理论与实践两方面对数据库技术产生了强烈的冲击。在关系模型提出之后,以前的基于层次模型和网状模型的数据库产品很快走向衰败以至消亡,一大批商品化关系数据库系统很快被开发出来并迅速占领了市场。其交替速度之快、除旧布新之彻底是软件史上所罕见的。在考特提出关系模型以后,I B M 投巨资开展关系数据库管理系统的研究,其“System R”项目的研究成果极大地推动了关系数据库技术的发展,在此基础上推出的DB2和SQL等产品成为IBM的主流产品。System R本身作为原型并未问世。而今年恰逢DB2 20周年华诞,IBM不但将“数据管理产品”统一更名为“信息管理产品”,同时也将DB2 Express版则作为其生日的贺礼送给中小企业用户。——引自美国《Programmer》
从70年代关系数据库出现到现在,各种各样的数据库产品在激烈的市场竞争下被淘汰出局,而仅存的几家厂商凭借自己的实力在各自擅长的领域里稳占一席之地,IBM作为关系数据库技术的领头人,自然也就挑起了高端数据库应用的重担,本刊2003年13期曾经以一篇《三国争霸——演绎数据库技术》给读者介绍了当前数据库应用中的各种新技术,我们可以预见,数据库的发展受到应用复杂化的挑战,除了通过增加新的功能来适应更多的应用外,推出更加细致的产品线也是一个主要趋势。
各据一方看厂商
随着各种企业应用的复杂化,人们在各种规模下对数据库系统的偏爱是有增无减,像在小型Web应用中被大量采用的PostgreSQL/Mysql等小型数据库,由于其容易取得,并且拥有多平台支持能力,以及非常好的响应速度,成为很多爱好者学习和了解数据库的最佳途径。但是由于这类产品在一开始设计的时候,并没有考虑到在企业环境中应用所需要的可靠性,因此在中小型的企业应用中很少被采用,而更多的是采用Oracle和SQLServer这些有比较好的支持,并且也确实针对企业应用开发的中、小型产品,其中由于SQLServer和微软的产品有着一脉相承的关系,所以在安装和配置的习惯上更加容易被用户所接受,所以被大量采用。而Infomix,Sybase等数据库的应用环境更加有针对性,所以用户对其了解也不是很多。反倒是由于三巨头之首IBM的DB2 UDB长期以来都是在比较大的环境中运行,所以人们对于DB2的了解相对较少,甚至有一点神秘的感觉。
人性化设计谈定位
其实,IBM早在1996年确立的DB2 Universal Database(通用)名称里面就非常直接地体现出了这样的思路:Universal(通用)除了代表能够支持各种数据处理功能外,还意味着对各种运行环境的适应。虽然IBM早就推出能够在Intel平台上运行的产品,不过由于当时人们对信息系统的需求还不是很大,所以依然采用了和Enterprise同样的定位策略,让很多了解并且希望使用DB2的用户望而却步,不得已而改选择其他厂商的产品。但是在企业规模和需求上升到一定程度后,有些厂商针对中小环境设计的产品往往无法提供平稳过渡和迁移到更大规模平台的能力,但企业用户不得不选择全面升级到大型数据库平台时,就直接导致更多的重复投入。IBM也看到了这一点,所以在这样的需求逐渐增大时乘势推出了DB2 UDB Express 8.1产品,希望能够通过新的策略来夺回曾经被自己忽略的市场。
并不简单的Express
随着IBM策略的改变,这次发布的DB2 UDB Express系列就不像以往的DB2产品一样只提供单一的选择了。除了Express版本外,用户还可以根据自己的应用需求选择其他的版本,如Workgroup 或Workgroup Unlimited等,用户能够采用单一的拷贝来安装,根据自己的应用规模来选择对应的许可就能够拥有不同伸缩能力的DB2 UDB了。而且所有的DB2 UDB家族产品都采用一样的核心,也就是说在升级和规模扩张的过程中,完全不会受到数据库功能的限制(见图1)。
在拿到这款产品之前,我们已经接触过DB2 UDB 8.1的Enterprise for AIX版本,所以在安装这款产品的时候我们感到非常有意思,因为从风格上来看,它们是完全一致的(DB2 三个版本的比较)。考虑到中小企业实际环境,为了更好地控制研发成本,IBM只为DB2 Express 8.1提供了Windows和Linux的支持,这显然也是合理的。一方面,Windows拥有非常高的易用性和相当高的中小企业占有率,支持Windows等于拥有了铺开这个市场的敲门砖。另一方面,Linux是目前最容易获得的Unix类系统,正在向高端企业级特性靠拢,有技术能力的用户可以基于Linux构建更加强大的数据库平台。不过从目前的情况来看,由于Linux目前还不能够很好地支持轻量级线程等技术,以及具有很多企业级特性的Linux 2.6系列核心还在测试阶段,因此在很多情况下,Windows将为DB2 Express提供更好的应用环境。
在我们新安装好的Windows XP系统下,完全采用默认选项就能够顺利安装好DB2 Express。当然,真正的工作才刚刚开始,因为我们最关心的是能否让我们的数据库运行起来,因此按照文档的说明,我们从新创建的DB2快捷方式中找到了控制中心。由于是采用Java编写的软件界面,因此需要少许等待后才出现管理界面(注意只是图形界面而已,这并不会影响核心服务进程的效率)。我们在选择创建实例后,在向导的提示下,用默认参数就非常容易地完成了数据库和实例的创建和配置。 当然,用户可以根据自己的需要进行参数的调整以进一步优化性能。由于充满了专业术语,需要用户有比较完整的数据库知识才能够很好地设置好每一个参数,毕竟调试过程中还有一些至关重要的参数会直接影响到数据库的性能,所以管理员必须要多加小心。和很多其他同类产品不同,DB2 Express不但继承了其经典的动态SQL语句优化功能(见图2),还给我们提供了在数据库正常运行以后,通过运行数据库优化向导来进行专门优化(优化向导)的能力(见图3),这也充分体现了IBM在数据库系统应用中的经验以及在易用性方面所作出的努力,也令本次评测过程更为灵活、方便。
易用设计勿忽视
说到数据库产品的易用性,我们当然得和DBA(Database Administrator)沾上一点关系。由于在一个基于数据库的应用系统中,DBA从设计结构、开发到运行都必须负担起很重要的责任,一个良好的管理界面能够让DBA从管理杂项中脱身出来,把所有的精力放到对数据库的性能和结构调整上。但也许有的习惯命令行的用户(包括我自己)都会有这样的疑问:过于精致的图形化界面会不会限制管理上的灵活性?但是从我们本次试用中发现,IBM采用了非常简单却很有效的方法来兼顾所有的习惯。首先,DB2 Express 8.1的两个版本都保留了完整的命令行工具,甚至安装向导也有一个命令行版本(Windows因为不提供shell工具,所以没有提供命令行安装向导),而采用Java编写的图形工具则显得非常灵活,并包含了完整的可选参数,而不是像一些一味追求易用性的软件,在隐瞒具体细节的同时却丧失掉灵活性。当然,过多的参数调整也容易导致系统失效,IBM充分考虑到了这点,大部分在图形工具下面的调整步骤都是有恢复机会的,一旦用户发现调整出现问题,可以及时恢复到之前的正常状况。让用户能够随时在自己最熟悉的环境下管理DB2 Express,这也体现了IBM的口号“管理你的数据,而非数据库”。
最终性能靠优化
我们先给大家看一个例子:因为工作关系,笔者在2000年曾经接触过一个项目,是为北京一个比较大的连锁餐饮公司开发一套POS系统,采用典型的C/S结构,服务器端是采用直接连接到数据库的方式,使用Microsoft SQL Server 2000,客户端采用Delphi开发,由于数据库开发经验的不足,开发团队把大部分运算和数据的处理放到客户端进行(而不是在数据库中创建过程或者视图),这对于一个熟悉Delphi的程序员来说,确实比调整数据库要顺手许多。在开发完成后,由于在实施中采用了专用的POS终端,硬件性能非常低,导致过于复杂的客户端根本无法在上面正常运行,而且客户端程序在短时间内根本无法很好地优化速度,整个开发计划因此搁浅,使工程方和餐饮公司都受到了不少损失。
这个例子说明了两个问题,首先就是在这种环境下(也是目前大多数采用数据库的小规模环境中),其实数据库系统根本没有起到足够多的作用,只是作为一个简单的存储器来使用,因此在发生性能问题的时候,是无法通过优化数据库来提高整个系统的运行效率的。其次就是提醒我们数据库需要有非常好的优化和管理能力,才能够在系统的设计、开发和运行等各个环节进行有效地调整来适应不同的应用,让整个系统在最高的效率下工作。
在我们的试用中,DB2 Express提供的数据库优化功能确实让我们感到高兴,其中程序包/物化视图/优化器/分布式查询(见图4)/在线表—索引重组的特性更是把矛头指向了在这个领域的强劲对手SQL Server。
扩展、支持皆重要
和DB2 UDB家族中的所有产品一样,DB2的高可用性和对数据的在线备份等特性也都在Express上得到了保留,能够实现数据库的故障接管,保证了数据库服务器的连续运行。不过类似数据库集群和分布式查询等大规模应用所需要的功能就需要用户更新Enterprise级别的许可了。
在对开发商的支持上,IBM的价值又一次得到体现。由于长期和不同厂商的合作,DB2 Express提供了包括JDBC、SQLJ、ODBC、OLD DB、ADO、ADO.NET、DB2 CLI、Embedded SQL、XML、WebServer等在内的几乎全部开放标准支持,使得开发者能够利用最熟悉的开发方式进行开发,大大缩短了开发时间,削减部署成本,避免受到任何单一平台或者专有接口的局限。
工程师寄语:
技术从高端应用逐渐走向低端市场显然是IT行业中不可避免的一个过程,在合适的时机作出这样的举措,对于抢占市场也非常有利。当然,用户能够从先进的高端技术中获益,提高自己的生产效率也是我们所希望看到的。从IBM发布DB2 Express和一直以来在Linux上的大量投入我们可以看出,IBM正在逐渐了解国内企业信息化的水平,重新调整自己在国内对于中小企业的定位,以便从中小企业这个原本很少涉足的领域里面分一杯羹。虽说这样一来用户又能够多一个好的选择,但是这个市场的竞争会演变得更加激烈。
关系数据库和IBM DB2
在数据库技术发展的历史上,1 9 7 0 年是发生伟大转折的一年。这一年的6月,I B M圣约瑟研究实验室的高级研究员埃德加·考特 (Edgar Frank Codd) 在Communications of ACM 上发表了《大型共享数据库数据的关系模型》一文。它首次明确而清晰地为数据库系统提出了一种崭新的模型,即关系模型。“关系”( Relation ) 是数学中的一个基本概念,由集合中的任意元素所组成的若干有序偶对表示,用以反映客观事物间的一定关系。如数之间的大小关系、人之间的亲属关系、商品流通中的购销关系等等。在自然界和社会中,关系无处不在;在计算机科学中,关系的概念也具有十分重要的意义。计算机的逻辑设计、编译程序设计、算法分析与程序结构、信息检索等,都应用了关系的概念。而用关系的概念来建立数据模型,用以描述、设计与操纵数据库,考特是第一人,也被称之为“关系数据库之父”。由于关系模型既简单、又有坚实的数学基础,所以一经提出,立即引起学术界和产业界的广泛重视,从理论与实践两方面对数据库技术产生了强烈的冲击。在关系模型提出之后,以前的基于层次模型和网状模型的数据库产品很快走向衰败以至消亡,一大批商品化关系数据库系统很快被开发出来并迅速占领了市场。其交替速度之快、除旧布新之彻底是软件史上所罕见的。在考特提出关系模型以后,I B M 投巨资开展关系数据库管理系统的研究,其“System R”项目的研究成果极大地推动了关系数据库技术的发展,在此基础上推出的DB2和SQL等产品成为IBM的主流产品。System R本身作为原型并未问世。而今年恰逢DB2 20周年华诞,IBM不但将“数据管理产品”统一更名为“信息管理产品”,同时也将DB2 Express版则作为其生日的贺礼送给中小企业用户。——引自美国《Programmer》