日期:2013-10-26  浏览次数:20635 次


[程序开发系列一]现流行数据库程序开发工具的比较分析

武汉华中师大信管系 谢刚

摘要:随着计算机技术不断发展,各种数据库编程工具也随着发展,使当今的大多数程序开发人员可以摆脱单调无味的用计算机指令或汇编言语开发软件,而是利用一系列高效的、具有良好可视化的编程工具去开发各种数据库软件,从而达到事半功倍的效果,但是如今市面上的数据库编程工具门类众多,优秀不齐,比如VB,VC,DEPHI,PB等,对此我特别针对流行的开发言语引见相应的较为成熟的数据库编程工具。

关键字:数据库编程  程序开发工具

1 几种数据库开发工具的引见
1.1 VB
    全称Visual Basic,它是以Basic言语作为其基本言语的一种可视化编程工具。在中国乃至全世界都曾看到过它的身影,它曾是在中国最为流行的编程工具,到如今还占据着非常重要的地位,对于它的好坏大家都有一定的了解,VB作为一种较早出现的开发程序以其容易学习,开发效率较高,具有完善的协助系统等优点曾影响了好几代编程人员,但是由于VB不具备跨平台这个特性,从而也决定了VB在未来的软件开发中将会逐渐地退出其历史舞台;它对组件技术的支持是基于COM和ActiveX,对于组件技术不断完善发展的今天,它也显出了它的落后性;同时VB在进行系统底层开发的时候也是绝对复杂的,调用API函数需声明,调用不方便,不能进行DDK编程,不可能深入Ring0编程,不能嵌套汇编;而且面向对象的特性差;网络功用和数据库功用也没有非常特出的表现,综上所述,VB作为一种可视化的开发工具由于其本身的局限性,导致了它在未来软件开发中逐渐被其他工具所代替。

1.2 PB
    全称PowerBuilder,是开发MIS系统和各类数据库跨平台的首选,使用简单,容易学习,容易掌握,在代码执行效率上也有相当出色的表现。PB是一种真正的4GL言语(第四代言语),可随意直接嵌套SQL语句前往值被赋值到语句的变量中,支持语句级游标,存储过程和数据库函数,是一品种似SQLJ的规范,数据访问中具有无可比拟的灵活性。但是它在系统底层开发中犯了跟VB一样的错误,调用API函数需声明,调用不方便,不能进行DDK编程,不可能深入Ring0编程,不能嵌套汇编;在网络开发中提供了较多动态生成Web页面的用户对象和服务以及系统对象,非常适合编写服务端动态Web使用,有利于商业逻辑的封装;但是用于网络通讯的支持不足;静态页面定制支持无限,使得PB在网络方面的使用也不能非常广泛。面向对象特向也不是太好。

1.3 C++Builder/Delphi
  它们都是基于VCL库的可视化开发工具,它们在组件技术的支持、数据库支持、系统底层开发支持、网络开发支持、面向对象特性等各方面都有相当不错的表现,并且学习使用较为容易,充分提现了所见即所得的可视化开发方法,开发效率高。由于两者都是Borland 公司的产品,自然承继了该公司一向以来的优秀传统:代码执行效率高。但是,它们并不是毫无缺点,它们所作的最大不足之处就是他们的协助系统在众多的编程工具中是属于比较差的。C++Builder 的VCL库是基于Object pascal(面向对象pascal),使得C++Builder在程序的调试执行上都面向落后于其他编程工具。而Delphi则是它的言语不够广泛,开发系统软件功用不足两个比较大的缺点。

1.4 Visual C++
  是基于MFC库的可视化的开发工具,从总体上说它是一个功用强大但是不便使用的一种工具。它在网络开发和多媒体开发都具有不俗的表现,协助系统也做得非常不错(Microsoft 在细节方面的处理往往都让人觉得亲切),但是虽然是使用C++作为基本言语,但是它在面向对象特性上却不够好,次要是为了兼容C的程序,结果顾此失彼;在组件支持上也不太好,虽然说除了支持COM,ActiveX外还支持CORBA,但是没有任何IDE支持,是所有C编译器的功用, 需求CORBA两头件支持;最大的问题是开发效率也不高。

1.5 Java编程工具
  目前比较出名的是Borland出的JBuilder和IBM出的Visual Age for Java,两种工具都有一定数量的是用人群。JBuilder承继了C++Builder/Delphi的特点,在可视化上做得非常不错,使用简便。由于Java本身言语的特点使得他们在网络开发中具有高人一等的表现,而且面向对象特性高,支持的组件技术也非常多,跨平台的特性也使得它在如今和未来的开发中占据越来越重要的地位。但是在系统底层开发和多媒体开发中却表现得并不让人那么满意,这个可能跟设计Java的意图有关吧。

2 各种开发工具在对数据库方面的支持比较分析
2.1数据访问对象:
2.1.1VB:DAO,ADO,RDO功用相仿;
2.1.2PB:Transaction,DwControl,可绑定任何SQL语句和存储过程,数据访问具有无与比拟的灵活性
2.1.3 C++ Builder/Dephi:具有包括DataSource,Table,Query,Midas,ADO在内的二十多个组件和类完成数据访问
2.1.4 VC:同VB,但有不少类库可供使用,但极不方便,开发效率很低
2.1.5 JAVA:JAVA JDBC API,不同的IDE具有不同的组件

2.2 数据表现对象:
2.2.1 VB:DBGriD,与数据库相关的数据表现控件只要此一种,只能表现简单表格数据,表现手段单一
2.2.2 PB:DataWindow对象(功用异常强大,其资源描述语句构成类似HTML的另外一种言语,可在其中插入任何对象,具有包括DBGrid在内的数百种数据表现方法),只此一项功用就注定了PB在数据库的功用从诞生的那一天起就远远超过了某些开发工具今天的水平
2.2.3 C++Builder/Dephi:具有包括DBGrid,DBNavigator,DBEdit, DBLookupListBox在内的15个数据感知组件,DecisionCube, DecisionQuery在内的6个数据仓库组件和包括QRChart, QRExpr在内的20多个报表组建,可灵活表现数据
2.2.4 VC:同数据访问对象
2.2.5 JAVA:不同的IDE具有不同的组件,比较著名的有Jbuilder,PowerJ, VisualAge for Java

2.3 语句执行方式:
2.3.1 VB:将一句SQL串绑定到一个命令对象中,结果前往到ResultSet对象中自行拆取
2.3.2 PB:是一种真正的4GL言语,可随意直接嵌套SQL语句前往值被赋值到语句的变量中,支持语句级游标,存储过程和数据库函数,是一品种似SQLJ的规范
2.3.3 C++ Builder/Dephi:使用数据库组件或类完成SQL语句串的执行和提交
2.3.4 VC:同数据访问对象
2.3.5 JAVA:SQLJ,JAVA JDBC API

3 各种开发工具其他的比较分析
3.1面向对象特性
VB:差;PB:较好;C++ Builder/Dephi:很好; VC:普通 ;JAVA:非常好

3.2跨平台特性
VB:跨平台性不怎样好,但是可以与WINDOWS 家族无缝连接。
PB:跨平台性普通
C++ Builder/Dephi:WINDOWS家族,Linux
VC:无
JAVA:所有能够运转JAVA虚拟机的操作系统

3.3 组件技术支持
VB:COM,ActiveX
PB:COM,JavaBean,Jaguar,UserObject使用:CORBA+Acti veX
C++ Builder/Dephi:COM, ActiveX CORBA(本身自带CORBA两头件VisiBroker,有丰富导游)
VC:COM,ActiveX,CORBA(没有任何IDE支持,是所有C编译器的功用,需求CORBA两头件支持)
JAVA:JavaBean,CORBA;ActiveX

3.4网络或Web开发支持
VB:Asp,VBScript,具有编写DHTML的简单IDE,编写静态页面非常方便;用于网络通讯的支持普通
PB:DynaSript, Web.PB;提供了较多动态生成Web页面的用户对象和服务以及系统对象,非常适合编写服务端动态Web使用,有利于商业逻辑的封装;用于网络通讯的支持不足;静态页面定制支持无限
C++ Builder/Dephi:ISAPI,WININET API等各类网络或互联网API可自在而方便的调用;提供了ServerSocket,ClientSocket等三十余个组件及类,用来处理网络通讯控制,流处理,Mail,Email,FTP,HTTP等使用协议处理以及生成动态页面和商业逻辑的封装;功用强大,使用方便
VC:SAPI,WI