随着计算机技术不断发展,各种数据库编程工具也随着发展,使当今的大多数程序开发人员可以摆脱枯燥无味的用计算机指令或汇编语言开发软件,而是利用一系列高效的、具有良好可视化的编程工具去开发各种数据库软件,从而达到事半功倍的效果,但是现在市面上的数据库编程工具门类众多,优良不齐,比如VB,VC,DEPHI,PB等。
现在的数据库以关系数据库为主流,但为了赶时髦,各大数据库也在开发面向对象的关系型数据库,把高级程序设计语言和数据库实现无缝连接,以发挥各自的优缺点。高级程序设计语言善于描述复杂的过程,而,数据库有着强大的管理功能和可操作性,我们现在的数据库是以表为基本的存储单元(描述一个对象),但现在的发展越来越快,对数据的复杂性也越来越大。所以我们的二维数据库要转向三维数据库发展,下面介绍下各种数据库的特点,以便我们可以选择设和自己的数据库。
一、各种主流数据库介绍
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。MicrosoftAccess数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃,表现为英文“ServiceUnavailable”。
MS SQL Server是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比MicrosoftAccess要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。MicrosoftSQL Server还有更多的扩展,可以用存储过程,数据库大小无极限限制。
MySql短小精悍,像access一样的文件型数据库,但比access强百倍,是真正多用户多任务的数据库系统,从Linux上移植过来的,安全性非常好,不过大部分操作是在dos下进行,虽然也有第三方开发的图形界面但并不好用。MySQL是跨多平台的数据库管理软件,可运行于LINUX、NT、UNIX等系统,可支持命令和图形化管理,对于一般的数据库足以应付了,占用系统资源较少,速度较快,而且是开源的。
Oracle各方面都比较成熟,但对硬件要求高,用于数据完整性、安全性要求较高的场合,能在所有主流平台上运行,完全支持所有的工业标准,采用完全开放策略。可以使客户选择最适合的解决方案,对开发商全力支持。平行服务器通过使一组结点共享同一簇中的工作来扩展服务器的能力,提供高可用性和高伸缩性的簇的解决方案,获得最高认证级别的iso标准认证,多层次网络计算,支持多种工业标准,可以用odbc,jdbc,oci等网络客户连接,较复杂,同时提供gui和命令行,在windows和unix下操作相同,如果windows不能满足需要,用户可以把数据库移到unix中。其操作和设置比较复杂,适用于有一定操作经验的用户。
SQLServer数据库的特征及其与Access数据库的区别 | ||
内 容 | Access特征 | MSSQL特征 |
版本 | 桌面版 | 网络版,可支持跨界的集团公司异地使用数据库的要求 |
节点 | 一人工作,要锁定,其他人无法使用 | 节点多,支持多重路由器 |
管理权限 | 否 | 管理权限划分细致,对内安全性高 |
防黑客能力 | 否 | 数据库划分细致,对外防黑客能力高 |
并发处理能力 | 100人或稍多 | 同时支持万人在线提交,在其它硬件例如网速等条件匹配的情况下可完全实现 |
导出XML格式 | 可以,需要单作程序 | 可导出成为XML格式,与Oracle数据库和DB2数据库通用,减少开发成本 |
数据处理能力 | 一般 | 快 |
是否被优化过 | 否 | 是 |
二、几种支持数据库的语言介绍
VB(VisualBasic)是以Basic语言作为其基本语言的一种可视化编程工具。在中国乃至全世界都能看到它的身影,它曾是在中国最为流行的编程工具,到现在还占据着非常重要的地位,对于它的好坏大家都有一定的了解,VB作为一种较早出现的开发程序以其容易学习,开发效率较高,具有完善的帮助系统等优点曾影响了好几代编程人员,但是由于VB不具备跨平台这个特性,从而也决定了VB在未来的软件开发中将会逐渐地退出其历史舞台;它对组件技术的支持是基于COM和ActiveX,对于组件技术不断完善发展的今天,它也显出了它的落后性;同时VB在进行系统底层开发的时候也是相对复杂的,调用API函数需声明,调用不方便,不能进行DDK编程,不可能深入Ring0编程,不能嵌套汇编;而且面向对象的特性差;网络功能和数据库功能也没有非常突出的表现,综上所述,VB作为一种可视化的开发工具由于其本身的局限性,导致了它在未来软件开发中逐步被其他工具所代替。
PB全称PowerBuilder,是开发MIS系统和各类数据库跨平台的首选,使用简单,容易学习,容易掌握,在代码执行效率上也有相当出色的表现。PB是一种真正的4GL语言(第四代语言),可随意直接嵌套SQL语句返回值被赋值到语句的变量中,支持语句级游标,存储过程和数据库函数,是一种类似SQLJ的规范,数据访问中具有无可比拟的灵活性。但是它在系统底层开发中犯了跟VB一样的错误,调用API函数需声明,调用不方便,不能进行DDK编程,不可能深入Ring0编程,不能嵌套汇编;在网络开发中提供了较多动态生成Web页面的用户对象和服务以及系统对象,非常适合编写服务端动态Web应用,有利于商业逻辑的封装;但是用于网络通讯的支持不足;静态页面定制支持有限,使得PB在网络方面的应用也不能非常广泛。面向对象特向也不是太好。
C++Builder/Delphi它们都是基于VCL库的可视化开发工具,它们在组件技术的支持、数据库支持、系统底层开发支持、网络开发支持、面向对象特性等各方面都有相当不错的表现,并且学习使用较为容易,充分提现了所见即所得的可视化开发方法,开发效率高。由于两者都是Borland公司的产品,自然继承了该公司一贯以来的优良传统:代码执行效率高。但是,它们并不是毫无缺点,它们所作的最大不足之处就是他们的帮助系统在众多的编程工具中是属于比较差的。C++Builder的VCL库是基于Objectpascal(面向对象pascal),使得C++Builder在程序的调试执行上都面向落后于其他编程工具。而Delphi则是它的语言不够广泛,开发系统软件功能不足两个比较大的缺点。
VisualC++是基于MFC库的可视化的开发工具,从总体上说它是一个功能强大但是不便使用的一种工具。它在网络开发和多媒体开发都具有不俗的表现,帮助系统也做得非常不错(Microsoft在细节方面的处理往往都让人觉得亲切),但是虽然是使用C++作为基本语言,但是它在面向对象特性上却不够好,主要是为了兼容C的程序,结果顾此失彼;在组件支持上也不太好,虽然说除了支持COM,ActiveX外还支持CORBA,但是没有任何IDE支持,是所有C编译器的功能,需要CORBA中间件支持;最大的问题是开发效率也不高。
Java目前比较出名的是Borland出的JBuilder和IBM出的Visual Age forJava,两种工具都有一定数量的是用人群。JBuilder继承了C++Builder/Delphi的特点,在可视化上做得非常不错,使用简便。由于Java本身语言的特点使得他们在网络开发中具有高人一等的表现,而且面向对象特性高,支持的组件技术也非常多,跨平台的特性也使得它在现在和未来的开发中占据越来越重要的地位。但是在系统底层开发和多媒体开发中却表现得并不让人那么满意,这个可能跟设计Java的意图有关吧。
三、编程语言的数据库性能综合评价
VB:是新人开发与系统无关的综合应用程序的首选;容易使用和厂商财力很强是其仅有的两点优势。VB开发效率高,代码执行效率一般,但是入门和学习速度快,有较好的学习氛围和帮助书籍和帮助文档。但是随着微软的.net技术的推广,VB将会逐渐推出历史舞台。
PB:是开发大型MIS及各类数据库跨平台应用的首选;从数据库前端工具来讲甚至远远超过了Oracle的Develop系列等专门的工具;从通用语言角度来讲功能也与VB等不相上下;多媒体和网络功能与其他工具相比较弱。PB最大的优势就是Datawindow技术的成熟和方便,他成为PB与其他数据库开发工具抗衡的资本。同时PB在对Java和WEB,以及面向对象方面的发展也可以预见PB将成继续成为数据库系统(特别是MIS系统)开发工具的首选。同时PB的强大帮助文档也为初学者提供了入门基础,PB连接数据库的自由和方面也为PB的提供了方便,同时PB对API的调用以及对报表的处理强大。但是PB的高级编程书籍的缺乏和基础语言PowerScript的普及程度对PB的明天有一定的限制。
C++Builder/Dephi:是唯一一套能够同时适用于开发数据库应用、网络及Web应用、分布式应用、可重用组件、系统软件、驱动程序、多媒体及游戏等所有软件的高效率开发环境;VCL源码基于ObjectPascal是C++ Builder 唯一的缺憾,基础语言不够通用和开发系统软件功能不足是Dephi仅有的两点不足。
VC:从功能上讲除了跨平台应用外什么都可开发;从开发效率角度讲只局限于开发windows系统应用、可重用组件及驱动程序。又因为有微软的支持,其自身的基础语言的普及程度高,以及其代码的执行效率高等特性、VC自带强大帮助文档和大量优质教材,VC在数据库开发工具中始终可以稳住阵角。
Java:适用于开发除了系统软件、驱动程序、高性能实时系统、大规模图像处理以外所有的应用。在一般的管理信息系统中和一般的数据库开发中,很少有人会选择Java,一是由于其开发环境的配置较难,已经和数据库连接时较为负责,对开发人员的开发经验和学习时间都要很高要求,所以对于经验不是很丰富的开发人员一般是不选择Java,但是Java的强大网络功能和真正的面向对象特性决定了Java的未来,Java将在一个较为长期的时段里可以与微软家族抗衡。