现流行数据库程序开发工具的比较分析

比较|程序|数据|数据库

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

武汉华中师大信管系 谢刚

摘要:随着计算机技术不断发展,各种数据库编程工具也随着发展,使当今的大多数程序开发人员可以摆脱枯燥无味的用计算机指令或汇编语言开发软件,而是利用一系列高效的、具有良好可视化的编程工具去开发各种数据库软件,从而达到事半功倍的效果,但是现在市面上的数据库编程工具门类众多,优良不齐,比如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,WININET API等各类网络或互联网API可自由而方便的调用;提供CAsyncSocket等数量众多的类;功能强大但使用不太方便
JAVA:不可直接调用API但内置非常多的网络及互联网功能;可利用Servlet API,Java Bean API,以及JSP等协同开发功能强大的Web应用;功能强大,对于某些IDE使用不太方便

4 综合评价:
4.1 VB:是新人开发与系统无关的综合应用程序的首选;容易使用和厂商财力很强是其仅有的两点优势。VB开发效率高,代码执行效率一般,但是入门和学习速度快,有较好的学习氛围和帮助书籍和帮助文档。但是随着微软的.net技术的推广,VB将会逐渐推出历史舞台。
PB:是开发大型MIS及各类数据库跨平台应用的首选;从数据库前端工具来讲甚至远远超过了Oracle的Develop系列等专门的工具;从通用语言角度来讲功能也与VB等不相上下;多媒体和网络功能与其他工具相比较弱。

4.2 PB最大的优势就是Datawindow技术的成熟和方便,他成为PB与其他数据库开发工具抗衡的资本。同时PB在对JAVA和WEB,以及面向对象方面的发展也可以预见PB将成继续成为数据库系统(特别是MIS系统)开发工具的首选。同时PB的强大帮助文档也为初学者提供了入门基础,PB连接数据库的自由和方面也为PB的提供了方便,同时PB对API的调用以及对报表的处理强大。但是PB的高级编程书籍的缺乏和基础语言PowerScript的普及程度对PB的明天有一定的限制。

4.3 C++ Builder/Dephi:是唯一一套能够同时适用于开发数据库应用、网络及Web应用、分布式应用、可重用组件、系统软件、驱动程序、多媒体及游戏等所有软件的高效率开发环境;VCL源码基于Object Pascal是C++ Builder 唯一的缺憾,基础语言不够通用和开发系统软件功能不足是Dephi仅有的两点不足。

4.4 VC:从功能上讲除了跨平台应用外什么都可开发;从开发效率角度讲只局限于开发windows系统应用、可重用组件及驱动程序。 又因为有微软的支持,其自身的基础语言的普及程度高,以及其代码的执行效率高等特性、VC自带强大帮助文档和大量优质教材,VC在数据库开发工具中始终可以稳住阵角。

4.5 JAVA:适用于开发除了系统软件、驱动程序、高性能实时系统、大规模图像处理以外所有的应用。在一般的管理信息系统中和一般的数据库开发中,很少有人会选择JAVA,一是由于其开发环境的配置较难,已经和数据库连接时较为负责,对开发人员的开发经验和学习时间都要很高要求,所以对于经验不是很丰富的开发人员一般是不选择JAVA,但是JAVA的强大网络功能和真正的面向对象特性决定了JAVA的未来,JAVA将在一个较为长期的时段里可以与微软家族抗衡。

5 选择开发工具的几点建议:
5.1 如果你的程序基本上完全是数据录入、查询、汇总、打印等,性能要求高,打算使用C/S结构,那么PowerBuilder的确是不错的选择。

5.2 如果数据库要求不高,只是本地的,对于用户界面、通信、多媒体等方面有要求,那么我觉得VB、VC、Delphi更好。我个人不太喜欢BDE,主要是分发和建立别名比较麻烦。

5.3 一旦你确定了基本使用的语言,那么采用什么方式也就定下来。如对于VC、VB,访问本地数据库一般为DAO,访问服务器上数据库一般使用ODBC/RDO/ADO。我在访问本地数据库一般不使用ADO,主要是在配置比较低的机器上速度比较慢,不过DAO迟早要被ADO取代。

5.4 同时结合MS SQL或是My SQL的其他功能,比如触发器,存储过程,视图等。
   
6 说明:
6.1 参考(整理)网友意见部分:
1.1,1.3,1.4,2.2.3,3.3,3.4
6.2 原创部分:
1.2,2.1,2.2,2.3,3.1,3.2,4(全部),5(全部)
6.3 其他为对一些网友和自己的看的整理归纳
6.4 由于自己能力有限,漏洞之处还请大家斧正!
6.5 希望对大家在进行数据库程序开发选择开发工具(或是学习)时有用
6.6 最后提醒一下,注意根据自己的爱好和基础选择一个或是多个适合自己并适合当前程序需求的开发工具。切勿多而不精!

时间: 2024-10-26 01:12:44

现流行数据库程序开发工具的比较分析的相关文章

甲骨文推出两款数据库应用程序开发工具

甲骨文股份有限公司是全球大型数据库软件公司,成为全球仅次于微软的全球第二大软件公司,总部位于美国加州的红木滩,现时行政总裁为公司创办人罗伦斯·艾利森(Lawrence J. Ellison).甲骨文1977年硅谷由3人合制,最初一年赚不够百万美金,在10年间迅速冒起,2004年市值达640亿美元. 约在2000年前后,微软的数据库产品,只集中在中小企市场,但微软推出MS SQL 7数据库后,技术上突破,抢占高档软件市场.IBM亦以DB2数据库,高姿态抢攻市场,令甲骨文面临庞大挑战.在制定反击策略

使用ADO封装类的数据库程序开发实例[第二版](上)

从上次在VC知识库发表<使用ADO封装类的数据库程序开发实例>一文后,得到许多网友的响应,甚觉欣慰.但由于我对ADO也非完全精通,所以上次写的类很不完美,甚至可能给某些朋友带来麻烦,因此一直想把它写得更完善一点. 现在写的这个类功能应该说比较完善了,基本上封装了ADO组件的大部分方法,并扩展了一些人们常用到的方法,如把文件或图片写到数据库中,从数据库中读出位图字段,字段的值的智能转换等等. 因为实在是时间不够,我几乎没有对command类做任何有效的测试,也没有写相关的文档,而对connect

小程序开发工具全新上线 附下载地址和教程

"为了让开发者更高效地开发和发布小程序,微信开发者工具全新改版上线,并新增测试系统.腾讯云工具.运维性能监控.小程序分阶段发布.WXS脚本语言等" 01.微信开发者工具 为提升小程序开发体验,帮助开发者更高效地开发小程序代码,微信开发者工具全新改版,现面向所有开发者开放. A 新增 申请测试报告功能.为了方便广大开发者检测小程序程序缺陷.评估小程序产品质量,小程序提供了免费的云真机测试环境以及一整套测试方案.在小程序交付到真实用户手中使用之前,你可以将小程序分发到我们的云平台以模拟用户

Firebug 没说再见,现可在 Firefox 开发工具中使用

发生这个巨大的变化是因为火狐的"电解"(Electrolysis)功能 - 用以重新设计 Firefox 架构以提高浏览器响应性.稳定性和安全性. Electrolysis 的多进程架构使得 Firefox 可以在一个进程中运行其用户界面(例如地址栏.选项卡和菜单),而内容(网站)则在其他进程中运行.使用多进程架构,如果网站崩溃,也不会导致整个浏览器崩溃.可惜 Firebug 并没有考虑到多进程的设计,这使得它要在这个新的场景中工作将需要一个非常困难和昂贵的重写.Firebug 工作组

Android数据库程序开发必备工具SqliteDev

找了一晚,终于让我找到了Sqllite数据库管理工具,先介绍下Sqllite数据库: 什么是 sqlite ? sqlite 是一款轻量级的.基于文件的嵌入式数据库,2000年就已经诞生,经过7年多的发展,直到今天已经成为最流行的嵌入式数据库,包括google在内的公司在其桌面软件中亦使用 sqlite 存储用户数据.由此可以看出,已经没有任何理由去怀疑sqlite的稳定性了. sqlite的优势? 1. 免配置,和access一样,只要把数据库文件通过ftp上传到服务器上就可以使用,不需要服务

7种流行PHP集成开发工具的比较

本文发掘集成开发环境(IDE)的所有用途,并比较 7 种流行的 IDE 的成本和优势. 编写关于 PHP 的系列文章让我更加深刻地了解了 PHP 开发人员的世界.我和许多 PHP 程序员交谈过,最令我惊奇的是只有很少的人使用 IDE.大多数程序员使用文本编辑器,比如 Microsoft Windows 上的记事本.Emacs 或者 Vim. 我提到的这些文本编辑器(以及我没提到)都是很不错的 -- 我不想讨论哪个编辑器更好.但是,我要强调的是不使用文本编辑器会使您对 PHP 代码有更深的见解.几

使用ADO封装类的数据库程序开发实例(上)

源代码运行效果图如下: 开发实例(上)-vc数据库编程实例ado"> 一.前言 用过ADO的人都知道, 调用ADO要处理很多"麻烦"的事情,如异常处理等,要写很多try - catch块. 有点不甚其烦.我干脆把常用的函数都封装起来,免去老是要写try - catch块的麻烦.做起来虽然没有什么技术含量,但也比较烦琐,所以只完成了一部分,且由于时间及个人水平有限,没有对封装的东西作全面测试,并必定有很多错误,但想到对某些朋友可能有用.所以先"捐"出来

使用ADO封装类的数据库程序开发实例(下)

五.开始编写ADO应用程序. 使用ADO之前,我们另外还需要添加下面的语句,如此把ADO的库引入到工程中 . #import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF") 根据机器安装时候的设置不同具体的路径可能不一样. 另外编译的时候会出现如下的警告信息: msado15.tlh(405) : warning

使用ADO封装类的数据库程序开发实例[第二版](下)

CAdoRecordSet class: CAdoRecordSet: CAdoRecordSet::CAdoRecordSet() CAdoRecordSet::CAdoRecordSet(CAdoConnection *pConnection) void CAdoRecordSet::SetAdoConnection(CAdoConnection *pConnection) 创建Connection对象. Params: [pConnection]: 连接对象指针. Open 方法: BOO