Web数据库技术介绍_Windows教程
教程Tag:暂无Tag,欢迎添加,赚取U币!
一、引言
Internet网是目前全球最大的计算机通信网,它遍及全球几乎所有的国家和地区。WWW系统是一个大型的分布式超媒体信息数据库,它极大地推动了Internet的发展,已经成为Internet中最流行、最主要的信息服务方式。它能够把各种类型的信息资源,如静态图象、文本、数据、视频和音频有机地结合起来,使用户能够在Internet上浏览、查询和共享建立在WWW服务器所有站点上的超媒体信息。目前Web技术与数据库管理系统(DBMS)相互融合领域的研究已成为热点方向之一,数据库厂家和WEB公司也纷纷推出各自的产品和中间件支持Web技术和DBMS的融合,将两者取长补短,发挥各自的优势,使用户可以在Web浏览器上方便地检索数据库的内容。所谓Web数据库管理系统是指基于Web模式的DBMS的信息服务,充分发挥DBMS高效的数据存储和管理能力,以Web这种浏览器/服务器(B/S)模式为平台,将客户端融入统一的Web浏览器,为Internet用户提供使用简便、内容丰富的服务。Web数据库管理系统必将成为Internet和Intranet提供的核心服务,为Internet上的电子商务提供技术支持。
二、通过WWW访问数据库的优点
数据库应用的一个重要方面就是对数据的访问,但是许多数据库系统目前提供的访问方式,或是一个字符方式的查询界面,或是通过编程方式实现,无论哪种方式都较难使用,近年来发展的一些RAD(Rapid Application development)工具,如VB、Delphi、PowerBuilder等可以方便地开发一些图形界面的访问数据库软件,但是这样的开发工具需要使用者具有编程技术,并且开发的程序不能跨平台运行。而且用RAD工具开发的软件,随用户需求的改变,可能需要增添新的功能或在界面上做一些改动。如果开发的软件使用范围比较广泛的话,那么软件的更新将是一项很大的工作。而Internet技术的发展,则使上述问题有了解决的办法,如果建立了WWW服务器,就可以通过WWW服务器实现对数据库的访问,上面提到的问题也就都可以解决了。
与传统方式相比,通过WWW访问数据库的优点在于:
1.借用现成的浏览器软件,无需开发数据库前端:如果能够通过WWW来访问数据库,我们就不需要开发客户端的程序,使用的数据库应用都可以通过浏览器来实现,界面统一,也减少了批培训费用,能使广大用户很方便地访问数据库信息。
2.标准统一,开发过程简单:HTM L是WWW信息地组织方式,是一种国际标准,使用的WWW服务器与 榔骶裱飧霰曜肌J褂肏TML标准,开发者甚至只需学习HTML一种语言,使用者只需学习一种界面--浏览器界面。
3.交叉平台支持:几乎在各种操作系统上都有现成的浏览器可供使用,为一个WWW服务器书写的HTML文档,可以被所有平台的浏览器所浏览,实现了跨平台操作。
三、传统的Web数据库系统体系结构
传统的Web数据库系统如图1所示。一般实现Web数据库系统的连接和应用可采取两种方法,一种是在Web服务器端提供中间件来连接Web服务器和数据库服务器,另一种是把应用程序下载到客户端并在客户端直接访问数据库。中间件负责管理Web服务器和数据库服务器之间的通信并提供应用程序服务,它能够直接调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的动态HTML页面,或执行用户查询,并将查询结果格式化成HTML页面。通过Web服务器返回给Web浏览器。最基本的中间件技术有通过网关接口CGI和应用程序接口API两种。
(一)、基于通用网关接口CGI
CGI是WWW服务器运行时外部程序的规范,按照CGI编写的程序可以扩展服务器的功能,完成服务器本身不能完成的工作,外部程序执行时间可以生成HTML文档,并将文档返回WWW服务器。CGI应用程序能够与浏览器进行交互作用,还可以通过数据库的API与数据库服务器等外部数据源进行通信,如一个CGI程序可以从数据库服务器中获取数据,然后格式化为HTML文档后发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎使用的服务器软件都支持CGI,开发人员可以使用任何一种WWW服务器内置语言编写CGI,其中包括流行的C、C++、VB和Delphi等。
从体系结构上来看,用户通过Web浏览器输入查询信息,浏览器通过HTTP协议向Web服务器发出带有查询信息的请求,Web服务器按照CGI协议激活外部CGI程序,由该程序向DBMS发出SQL请求并将结果转化为HTML后返回给Web服务器。再由Web服务器返回给Web浏览器。这种结构体现了客户/服务器方式的三层模型,其中Web服务器和CGI程序实际起到了HTML和SQL转换的网关的作用。CGI的典型操作过程是:分析CGI数据;打开与DBMS的连接;发送SQL请求并得到结果;将结果转化为HTML;关闭DBMS的连接;将HTML结果返回给Web服务器。
基于Web的数据库访问利用已有的信息资源和服务器。其访问频率大,尤其是热点数据。但其主要的缺点是:①客户端与后端数据库服务器通信必须通过Web服务器,且Web服务器要进行数据与HTML文档的互相转换,当多个用户同时发出请求时,必然在Web服务器形成信息和发布瓶颈。②CGI应用程序每次运行都需打开和关闭数据库连接,效率低,操作费时;③CGI应用程序不能由多个客户机请求共享,即使新请求到来时CGI程序正在运行,也会启动另一个CGI应用程序,随着并行请求的数量增加,服务器上将生成越来越多的进程。为每个请求都生成进程既费时又需要大量内存,影响了资源的使用效率,导致性能降低并增加等待时间;④由于SQL与HTML差异很大,CGI程序中的转换代码编写繁琐,维护困难;⑤安全性差,缺少用户访问控制,对数据库难以设置安全访问权限;⑥HTTP协议是无状态且没有常连接的协议,DBMS事务的提交与否无法得到验证,不能构造Web上的OLTP应用。
(二)、基于服务器扩展的API
为了克服CGI的局限性,出现的另一种中间件解决方案是基于服务器扩展API的结构。与CGI相比,API应用程序与Web服务器结合得更加紧密,占用的系统资源也少得多,而运行效率却大大提高,同时还提供更好的保护和安全性。
服务器API一般作为一个DLL提供,是驻留在WWW服务器中的程序代码,其扩展WWW服务器的功能与CGI相同。WWW开发人员不仅可以API解决CGI可以解决的一切问题,而且能够进一步解决基于不同WWW应用程序的特殊请求。各种API与其相应的WWW服务器紧密结合,其初始开发目标服务器的运行性能进一步发掘、提高。用API开发的程序比用CGI开发的程序在性能上提高了很多,但开发API程序比开发CGI程序要复杂得多。API应用程序需要一些编程方面的专门知识,如多线程、进程同步、直接协议编程以及错误处理等。目前主要的WWW API有Microsoft公司的ISAPI、Netscape公司的NSAPI和OReily公司的WSAPI等。使用ISPAI开发的程序性能要优于用CGI开发的程序,这主要是因为ISAPI应用程序是一些与WWW服务器软件处于同一地址空间的DLL,因此所有的HTTP服务器进程能够直接利用各种资源这显然比调用不在同一地址空间的CGI程序语句要占用更少的系统时间。而NSAPI同ISAPI一样,给WWW开发人员定制了Netscape WWW服务器基本服务的功能。开发人员利用NSAPI可以开发与WWW服务器的接口,以及与数据库服务器等外部资源的接口。
虽然基于服务器扩展API的结构可以方便、灵活地实现各种功能,连接所有支持32位ODBC的数据库系统,但这种结构的缺陷也是明显的:①各种API之间兼容性很差,缺乏统一的标准来管理这些接口; ②开发API应用程序也要比开发CGI应用复杂得多; ③这些API只能工作在专用Web服务器和操作系统上。
(三)、基于JDBC的Web数据库技术
Java的推出,使WWW页面有了活力和动感。Internet用户可以从WWW服务器上下载Java小程序到本地浏览器运行。这些下载的小程序就像本地程序一样,可独立地访问本地和其他服务器资源。而最初的Java语言并没有数据库访问的功能,随着应用的深入,要求Java提供数据库访问功能的呼声越来越高。为了防止出现对Java在数据库访问方面各不相同的扩展,JavaSoft公司指定了JDBC,作为Java语言的数据库访问API。
采用JDBC技术,在Java Applet中访问数据库的优点在于:直接访问数据库,不再需要Web数据库的介入,从而避开了CGI方法的一些局限性;用户访问控制可以由数据库服务器本地的安全机制来解决,提高了安全性;JDBC是支持基本SQL功能的一个通用低层的应用程序接口,在不同的数据库功能的层次上提供了一个统一的用户界面,为跨平台跨数据库系统进行直接的Web访问提供了方案。从而克服了API方法一些缺陷;同时,可以方便地实现与用户地交互,提供丰富的图形功能和声音、视频等多媒体信息功能。
JDBC是用于执行SQL语句的Java应用程序接口API,由Java语言编写的类和接口组成。Java是一种面向对象、多线程与平台无关的编程语言,具有极强的可移植性、安全性和强健性。JDBC是一种规范,能为开发者提供标准的数据库访问类和接口,能够方便地向任何关系数据库发送SQL语句,同时JDBC是一个支持基本SQL功能的低层应用程序接口,但实际上也支持高层的数据库访问工具及API。所有这些工作都建立在X/Open SQL CLI基础上。JDBC的主要任务是定义一个自然的Java接口来与X/Open CLI中定义的抽象层和概念连接。JDBC的两种主要接口分别面向应用程序的开发人员的JDBC API和面向驱动程序低层的JDBC Driver API。JDBC完成的工作是:建立与数据库的连接;发送SQL语句;返回数据结果给Web浏览器。
基于JDBC的Web数据库结构其缺陷在于:只能进行简单的数据库查询等操作,还不能进行OLTP;安全性、缓冲机制和连接管理仍不完善;SUN承诺的完全跨[平台跨数据库系统的功能和标准远未实现。
四、几种Web数据库连接方式的比较
对CGI、API和JDBC三种访问数据库的技术可以从不同的侧面进行比较。如下表所示:
如何将Web技术和DBMS相结合,研究和开发出具有OLTP功能的动态Web数据库系统已经成为目前的Internet和数据库技术热点研究领域的交叉点。传统的Web数据库系统都有着自己不同的缺点,唯有充分利用基于组件和分布式对象技术的优势将Web技术和DBMS紧密结合,开发出具有扩展性强、易于维护、效率高的特点,同时提供跨平台的操作性和能访问异构数据库系统的支持的Web连接体系结构及技术,才能真正实现Web数据库的灵活方便应用。
Internet网是目前全球最大的计算机通信网,它遍及全球几乎所有的国家和地区。WWW系统是一个大型的分布式超媒体信息数据库,它极大地推动了Internet的发展,已经成为Internet中最流行、最主要的信息服务方式。它能够把各种类型的信息资源,如静态图象、文本、数据、视频和音频有机地结合起来,使用户能够在Internet上浏览、查询和共享建立在WWW服务器所有站点上的超媒体信息。目前Web技术与数据库管理系统(DBMS)相互融合领域的研究已成为热点方向之一,数据库厂家和WEB公司也纷纷推出各自的产品和中间件支持Web技术和DBMS的融合,将两者取长补短,发挥各自的优势,使用户可以在Web浏览器上方便地检索数据库的内容。所谓Web数据库管理系统是指基于Web模式的DBMS的信息服务,充分发挥DBMS高效的数据存储和管理能力,以Web这种浏览器/服务器(B/S)模式为平台,将客户端融入统一的Web浏览器,为Internet用户提供使用简便、内容丰富的服务。Web数据库管理系统必将成为Internet和Intranet提供的核心服务,为Internet上的电子商务提供技术支持。
二、通过WWW访问数据库的优点
数据库应用的一个重要方面就是对数据的访问,但是许多数据库系统目前提供的访问方式,或是一个字符方式的查询界面,或是通过编程方式实现,无论哪种方式都较难使用,近年来发展的一些RAD(Rapid Application development)工具,如VB、Delphi、PowerBuilder等可以方便地开发一些图形界面的访问数据库软件,但是这样的开发工具需要使用者具有编程技术,并且开发的程序不能跨平台运行。而且用RAD工具开发的软件,随用户需求的改变,可能需要增添新的功能或在界面上做一些改动。如果开发的软件使用范围比较广泛的话,那么软件的更新将是一项很大的工作。而Internet技术的发展,则使上述问题有了解决的办法,如果建立了WWW服务器,就可以通过WWW服务器实现对数据库的访问,上面提到的问题也就都可以解决了。
与传统方式相比,通过WWW访问数据库的优点在于:
1.借用现成的浏览器软件,无需开发数据库前端:如果能够通过WWW来访问数据库,我们就不需要开发客户端的程序,使用的数据库应用都可以通过浏览器来实现,界面统一,也减少了批培训费用,能使广大用户很方便地访问数据库信息。
2.标准统一,开发过程简单:HTM L是WWW信息地组织方式,是一种国际标准,使用的WWW服务器与 榔骶裱飧霰曜肌J褂肏TML标准,开发者甚至只需学习HTML一种语言,使用者只需学习一种界面--浏览器界面。
3.交叉平台支持:几乎在各种操作系统上都有现成的浏览器可供使用,为一个WWW服务器书写的HTML文档,可以被所有平台的浏览器所浏览,实现了跨平台操作。
三、传统的Web数据库系统体系结构
传统的Web数据库系统如图1所示。一般实现Web数据库系统的连接和应用可采取两种方法,一种是在Web服务器端提供中间件来连接Web服务器和数据库服务器,另一种是把应用程序下载到客户端并在客户端直接访问数据库。中间件负责管理Web服务器和数据库服务器之间的通信并提供应用程序服务,它能够直接调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的动态HTML页面,或执行用户查询,并将查询结果格式化成HTML页面。通过Web服务器返回给Web浏览器。最基本的中间件技术有通过网关接口CGI和应用程序接口API两种。
(一)、基于通用网关接口CGI
CGI是WWW服务器运行时外部程序的规范,按照CGI编写的程序可以扩展服务器的功能,完成服务器本身不能完成的工作,外部程序执行时间可以生成HTML文档,并将文档返回WWW服务器。CGI应用程序能够与浏览器进行交互作用,还可以通过数据库的API与数据库服务器等外部数据源进行通信,如一个CGI程序可以从数据库服务器中获取数据,然后格式化为HTML文档后发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎使用的服务器软件都支持CGI,开发人员可以使用任何一种WWW服务器内置语言编写CGI,其中包括流行的C、C++、VB和Delphi等。
从体系结构上来看,用户通过Web浏览器输入查询信息,浏览器通过HTTP协议向Web服务器发出带有查询信息的请求,Web服务器按照CGI协议激活外部CGI程序,由该程序向DBMS发出SQL请求并将结果转化为HTML后返回给Web服务器。再由Web服务器返回给Web浏览器。这种结构体现了客户/服务器方式的三层模型,其中Web服务器和CGI程序实际起到了HTML和SQL转换的网关的作用。CGI的典型操作过程是:分析CGI数据;打开与DBMS的连接;发送SQL请求并得到结果;将结果转化为HTML;关闭DBMS的连接;将HTML结果返回给Web服务器。
基于Web的数据库访问利用已有的信息资源和服务器。其访问频率大,尤其是热点数据。但其主要的缺点是:①客户端与后端数据库服务器通信必须通过Web服务器,且Web服务器要进行数据与HTML文档的互相转换,当多个用户同时发出请求时,必然在Web服务器形成信息和发布瓶颈。②CGI应用程序每次运行都需打开和关闭数据库连接,效率低,操作费时;③CGI应用程序不能由多个客户机请求共享,即使新请求到来时CGI程序正在运行,也会启动另一个CGI应用程序,随着并行请求的数量增加,服务器上将生成越来越多的进程。为每个请求都生成进程既费时又需要大量内存,影响了资源的使用效率,导致性能降低并增加等待时间;④由于SQL与HTML差异很大,CGI程序中的转换代码编写繁琐,维护困难;⑤安全性差,缺少用户访问控制,对数据库难以设置安全访问权限;⑥HTTP协议是无状态且没有常连接的协议,DBMS事务的提交与否无法得到验证,不能构造Web上的OLTP应用。
(二)、基于服务器扩展的API
为了克服CGI的局限性,出现的另一种中间件解决方案是基于服务器扩展API的结构。与CGI相比,API应用程序与Web服务器结合得更加紧密,占用的系统资源也少得多,而运行效率却大大提高,同时还提供更好的保护和安全性。
服务器API一般作为一个DLL提供,是驻留在WWW服务器中的程序代码,其扩展WWW服务器的功能与CGI相同。WWW开发人员不仅可以API解决CGI可以解决的一切问题,而且能够进一步解决基于不同WWW应用程序的特殊请求。各种API与其相应的WWW服务器紧密结合,其初始开发目标服务器的运行性能进一步发掘、提高。用API开发的程序比用CGI开发的程序在性能上提高了很多,但开发API程序比开发CGI程序要复杂得多。API应用程序需要一些编程方面的专门知识,如多线程、进程同步、直接协议编程以及错误处理等。目前主要的WWW API有Microsoft公司的ISAPI、Netscape公司的NSAPI和OReily公司的WSAPI等。使用ISPAI开发的程序性能要优于用CGI开发的程序,这主要是因为ISAPI应用程序是一些与WWW服务器软件处于同一地址空间的DLL,因此所有的HTTP服务器进程能够直接利用各种资源这显然比调用不在同一地址空间的CGI程序语句要占用更少的系统时间。而NSAPI同ISAPI一样,给WWW开发人员定制了Netscape WWW服务器基本服务的功能。开发人员利用NSAPI可以开发与WWW服务器的接口,以及与数据库服务器等外部资源的接口。
虽然基于服务器扩展API的结构可以方便、灵活地实现各种功能,连接所有支持32位ODBC的数据库系统,但这种结构的缺陷也是明显的:①各种API之间兼容性很差,缺乏统一的标准来管理这些接口; ②开发API应用程序也要比开发CGI应用复杂得多; ③这些API只能工作在专用Web服务器和操作系统上。
(三)、基于JDBC的Web数据库技术
Java的推出,使WWW页面有了活力和动感。Internet用户可以从WWW服务器上下载Java小程序到本地浏览器运行。这些下载的小程序就像本地程序一样,可独立地访问本地和其他服务器资源。而最初的Java语言并没有数据库访问的功能,随着应用的深入,要求Java提供数据库访问功能的呼声越来越高。为了防止出现对Java在数据库访问方面各不相同的扩展,JavaSoft公司指定了JDBC,作为Java语言的数据库访问API。
采用JDBC技术,在Java Applet中访问数据库的优点在于:直接访问数据库,不再需要Web数据库的介入,从而避开了CGI方法的一些局限性;用户访问控制可以由数据库服务器本地的安全机制来解决,提高了安全性;JDBC是支持基本SQL功能的一个通用低层的应用程序接口,在不同的数据库功能的层次上提供了一个统一的用户界面,为跨平台跨数据库系统进行直接的Web访问提供了方案。从而克服了API方法一些缺陷;同时,可以方便地实现与用户地交互,提供丰富的图形功能和声音、视频等多媒体信息功能。
JDBC是用于执行SQL语句的Java应用程序接口API,由Java语言编写的类和接口组成。Java是一种面向对象、多线程与平台无关的编程语言,具有极强的可移植性、安全性和强健性。JDBC是一种规范,能为开发者提供标准的数据库访问类和接口,能够方便地向任何关系数据库发送SQL语句,同时JDBC是一个支持基本SQL功能的低层应用程序接口,但实际上也支持高层的数据库访问工具及API。所有这些工作都建立在X/Open SQL CLI基础上。JDBC的主要任务是定义一个自然的Java接口来与X/Open CLI中定义的抽象层和概念连接。JDBC的两种主要接口分别面向应用程序的开发人员的JDBC API和面向驱动程序低层的JDBC Driver API。JDBC完成的工作是:建立与数据库的连接;发送SQL语句;返回数据结果给Web浏览器。
基于JDBC的Web数据库结构其缺陷在于:只能进行简单的数据库查询等操作,还不能进行OLTP;安全性、缓冲机制和连接管理仍不完善;SUN承诺的完全跨[平台跨数据库系统的功能和标准远未实现。
四、几种Web数据库连接方式的比较
对CGI、API和JDBC三种访问数据库的技术可以从不同的侧面进行比较。如下表所示:
CGI | API | JDBC | |
编程复杂性 | 复杂 | 复杂 | 中等 |
对程序员的要求 | 高 | 高 | 中等 |
开发时间 | 长 | 长 | 中等 |
可移植性 | 较好 | 差 | 好 |
CPU的负载 | 高 | 较低 | 较低 |
如何将Web技术和DBMS相结合,研究和开发出具有OLTP功能的动态Web数据库系统已经成为目前的Internet和数据库技术热点研究领域的交叉点。传统的Web数据库系统都有着自己不同的缺点,唯有充分利用基于组件和分布式对象技术的优势将Web技术和DBMS紧密结合,开发出具有扩展性强、易于维护、效率高的特点,同时提供跨平台的操作性和能访问异构数据库系统的支持的Web连接体系结构及技术,才能真正实现Web数据库的灵活方便应用。
相关Windows教程:
- 相关链接:
- 教程说明:
Windows教程-Web数据库技术介绍。