首页 理论教育 Web数据库技术的分析介绍

Web数据库技术的分析介绍

时间:2022-10-11 理论教育 版权反馈
【摘要】:所以,将Web技术与数据库相结合,开发动态的Web数据库应用已成为当今Web技术研究的热点。基于WWW的数据库提出了新的Web开发模型,WWW作为数据库的一部分。Web数据库技术采用三层或多层体系结构,前端采用基于瘦客户机的浏览器技术。Web服务器介于Web浏览器与数据库服务器之间,负责用户输入信息的接收。使用CGI实现Web与数据库的互联,最大的优点在于其通用性。

3.3.3 Web数据库技术

1. Web数据库概述

随着Internet技术和Web技术的兴起与发展,人们已不满足于只在Web浏览器上获取静态的信息,人们更需要通过交互式动态HTML页面发表意见、查询数据,甚至进行网上购物,交互技术的实现需要以大量数据资源为基础,这就迫切需要将Web与数据库互联。

今天人们已经把数据库技术引入到Web 系统中。数据库技术发展比较成熟,特别适用于对大量的数据进行组织管理,同时Web技术具有较佳的信息发布途径,这两种技术的天然互补性决定相互融合是其发展的必然趋势。将Web与数据库结合起来,不仅把Web与数据库的所有优点集中在一起,而且充分利用了大量已有的数据库信息资源,可以使用户在Web浏览器上方便地检索和浏览数据库的内容,这对许多软件开发者来说具有极大的吸引力。所以,将Web技术与数据库相结合,开发动态的Web数据库应用已成为当今Web技术研究的热点

2. Web数据库模型及其访问技术

传统的数据库是基于客户机/服务器的数据库。客户机/服务器结构曾为实现企业级的信息共享起到了举足轻重的作用。如今传统的客户机/服务器结构也暴露出许多问题,尤其是系统软件和应用软件变得越来越复杂,而且客户机/服务器结构所采用的软件产品大都缺乏开放的标准。因此传统的客户机/服务器模型正逐渐被基于WWW的数据库模型所代替,成为现今数据库方向的主流。通过Web服务器及中间件访问数据库的体系结构如图3-10所示。

基于WWW的数据库系统的应用模型具有下述特点:

• 从硬件和物理结构上来说,是C/S(客户机/服务器)的结构。

• 从客户端和数据库端来看,是基于WWW浏览器的数据库应用的B/S(浏览器/服务器)结构。

• 基于WWW的数据库提出了新的Web开发模型,WWW作为数据库的一部分。

• 基于WWW的数据库可以适用于大规模的应用。

• Web数据库技术采用三层或多层体系结构,前端采用基于瘦客户机的浏览器技术。

img17

图3-10 Web数据库体系结构

随着Internet的发展,静态Web站点的开发与维护变得越来越困难,其最大的问题就是缺少交互性,信息的内容只有在网站管理人员更改后才能发生变化,使得Web管理员不得不频繁修改他们的网页。为了向网络用户提供大量有用的、动态的和可交互的信息,凡是能够数据库化的内容,应尽量做成数据库的形式,因为数据库形式的数据远比其他形式的数据要容易更新与管理。

基于Web的数据库访问是指:在客户端安装Web浏览器,作为用户输入查询条件和显示查询结果的交互界面。用户可以通过填写表格或输入关键字的方式来与Web服务器进行交互,当用户单击表格上的按钮时,表格中的数据便发送到Web服务器。Web服务器介于Web浏览器与数据库服务器之间,负责用户输入信息的接收。服务器将数据传送至要被处理的脚本或应用程序,并在数据库中查询数据或将数据投递到数据库中。最后,服务器将返回结果插入到HTML页面,传送至客户端以响应用户。这种交互性提高了用户参与的积极性。

从技术发展的角度来看,通过浏览器访问数据库的渠道有CGI、ISAPI、ODBC、JDBC和ASP等技术方案。

(1)CGI

CGI(Common Gateway Interface)是外部应用程序与Web服务器交互的一个标准接口。CGI应用程序可以完成客户端与服务器的交互操作。它打破了服务器软件的局限性,允许用户根据需要采用各种语言去实现无法用HTTP、HTML实现的功能,给WWW提供了更为广阔的应用空间。例如,一个能够访问外部数据库的CGI程序可以使客户端用户通过Web服务器进行数据库的查询。同时,CGI也为在不同的平台之间进行沟通提供了范例。

遵循CGI标准编写的服务器端的可执行程序称为CGI程序。CGI最大的用处之一在于其与浏览Web站点的用户之间的交互能力,使信息网关、反馈机制、访问数据库、订阅和查询等一系列灵活复杂的操作得以实现。通过这个公共网关界面,服务器可以向CGI程序发送信息,CGI程序也可以向服务器回送信息。使用CGI实现Web与数据库的互联,最大的优点在于其通用性。目前几乎所有的HTTP服务器都支持CGI。

CGI程序的执行一般有两种调用方式:一是通过URL直接调用,在浏览器的URL栏里直接写入上述地址就可以调用该程序;另一种方式,也是主要的方式,是通过交互式主页中的FORM栏调用,通常都是用户在填完一张输入信息主页后按“确认”按钮启动CGI程序。主页的交互一般都是这样调用CGI来完成的。

从编程语言的角度讲,CGI只是一个普通的程序,只不过其输入、输出的处理比较特殊,只要能达到交互的目的,CGI程序可以使用Perl、C、C++,FORTRAN和数据库语言等任何能够形成可执行程序的语言编写。

CGI的跨平台性能极佳,几乎可以在任何操作系统上实现,如DOS、Windows、Unix、OS/2、Macintosh等。CGI的缺点是:当用户请求数量非常多时,大量的CGI程序就会大量挤占系统的资源,如内存、CPU时间等,造成CGI运行效率低下。另外CGI的功能有限、开发较为复杂,且不具备事务处理(Transaction)功能,这在一定程度上限制了它的应用。

(2)ISAPI(Internet Server Application Program Interface,面向Internet服务的应用程序接口)

数据库程序的一个关键组件是数据库API(Application Program Interface)。每个数据库引擎都带有一系列库(如Windows NT下使用的动态链接库)。只有通过这种库,应用程序才能连接和使用数据库引擎。对于特定的数据库产品,应用程序对动态链接库的调用是专用的。根据定义,每种数据库系统都有属于自己的专有调用接口,例如对SQLServer设计的API程序,就不能用它访问Oracle或Informix数据库。

Web服务器的供应商为了扩展服务器的性能,各自开发了API应用程序接口来取代CGI。

ISAPI是Microsoft提供的一套面向Internet服务的API接口,用它编制的程序以动态链接库(DLL)的形式存在,可实现CGI程序所能提供的全部功能。ISAPI的工作原理和CGI大体上是相同的,都是通过交互式主页取得用户输入信息,然后交服务器后台处理。但是二者在实现机制上大相径庭。ISAPI与CGI最大的区别在于:在ISAPI下建立的应用程序都是以动态链接库的形式存在的;而CGI的应用程序一般都是可执行程序。ISAPI的运行效率要显著高于CGI程序。

(3)ODBC(Open DataBase Connectivity,开放数据库互联)

API方法与Web服务器结合紧密,所以性能较高。但是利用底层的API开发数据库访问程序仍然很困难,因此一般使用基于底层API的高层数据库编程接口,这就是ODBC。ODBC是“开放数据库互联”的简称,是一种使用SQL的应用程序接口(API)。ODBC一个最显著的优点是用它生成的程序与数据库或数据库引擎是无关的。ODBC可使程序员方便地编写访问各DBMS厂商的数据库的应用程序,而不需了解其产品的细节。Web服务器通过数据库驱动程序ODBC向数据库服务器发出SQL请求,数据库服务器接到的是标准的SQL查询语句,数据管理系统执行SQL查询并将查询结果再通过ODBC传回Web服务器。许多服务器扩展程序使用包含ODBC层的系统结构。ODBC是为调用关系数据库提供统一途径的一类API,由于它适用于许多不同的数据库产品,因此是服务器扩展程序开发者们理所当然的选择。

Microsoft Developer Studio为大多数标准的数据库格式提供了32位ODBC驱动器。这些标准数据格式包括有SQLServer、Access、Paradox、dBase、FoxPro、Excel、Oracle以及MicrosoftText。如果用户希望使用其他数据格式,则需要安装相应的ODBC驱动器及DBMS。用户使用自己的DBMS数据库管理功能生成新的数据库模式后,就可以使用ODBC来登录数据源。对用户的应用程序来说,只要安装有驱动程序,就能注册很多不同的数据库。

(4)JDBC(Java Database Connectivity,Java数据库连接)

Java语言显示出优于以往编程语言的诸多特色,赢得了众多数据库厂商的支持。为了同时连接到多个数据库进行并行的联合查询,可以充分利用Java语言本身的特色。由于Java是一种面向对象的、多线程的网络编程语言,因此能够用多个线程对应多个不同的数据库进行查询操作。用户发出的同一条查询语句同时启动多个线程,并行运行,同时进行异构数据库的联合查询。

在数据库处理方面,Java2提供了JDBC,为数据库开发应用提供了标准的应用程序编程接口。与ODBC类似,JDBC也是一种特殊的API,是用于执行SQL语句的Java应用程序接口(JavaAPI),它规定了Java如何与数据库进行交互作用。JDBC由一组用Java语言写的类和接口组成,利用Java机制设计的标准SQL数据库连接接口JDBC去访问数据库。JDBC也是一种规范,其宗旨是让各数据库开发商为Java程序员提供标准的数据库访问类和接口。JDBC与Java结合,使用户很容易地把SQL语句传送到任何关系数据库中,程序员用它编写的数据库应用软件,可在各种数据库系统上运行。

采用JDBC可以很容易用SQL语句访问任何商用数据库(或称异构数据库),如SQLServer,Sybase或Oracle。采用Java和JDBC编写的数据库应用程序具有与平台无关的特性,很容易用SQL语句访问任何商用数据库,而不必为每一种数据库平台编写不同的程序。

JDBC访问数据库的过程是:首先将用户的浏览器连接到Web服务器上,下载含有Java小程序的HTML页,Java小程序在客户端运行,使用JDBC接口,绕过Web服务器,直接与数据库服务器交互,并直接把查询结果的HTML页返回到浏览器。

与ODBC一样,JDBC提供给程序员的编程接口由两部分组成,即面向应用的编程接口JDBC API和供底层开发的驱动程序接口JDBCDriver API。JDBC API是为应用程序员提供的,是一系列抽象的接口,它使得应用程序员能够进行数据库连接,执行SQL查询,并且得到返回结果。而JDBCDriverAPI则是为数据库厂商提供的编程接口。

基于Java的JDBC发展迅速。Sun承诺任何JavaApplet或者Java应用软件都能够与数据库结合。由于JDBC利用了Java的跨平台特色,因此,它成为Intranet和Internet环境下访问异构数据库的一种较优方式。

(5)ASP技术

ASP(Active Server Pages)是由Microsoft开发的一项新技术。ASP是一个基于Web服务器端的开发环境,利用它可以产生和运行动态的、交互的、高性能的Web服务应用程序。与常见的在Client端实现动态主页的技术如JavaApplet、ActiveXControl、VBScript、JavaScript等不同,ASP中的命令和Script语句都是由服务器来解释执行的,执行结果产生动态生成的Web页面并送到浏览器;而Client端技术的Script命令则是由浏览器来解释执行的。由于ASP在服务器端解释执行,开发者可以不必考虑浏览器是否支持ASP;同时由于它在服务器端执行,开发者也不必担心别人下载程序以窃取编程逻辑,从而保护了开发者的利益。ASP具有如下特点:

① 编程简单。ASP使用Script(描述性的语言),只使用简单的语法和数学表达式,而且不需要编译。

② 可嵌入到HTML文件中。ASP不需要别的设计环境,ASP文件的制作和HTML类似,且和HTML开发集成,可以在同一个过程完成。

③ 支持广泛。ASP除支持VBScript、JavaScript外,还能以插件形式支持第三方语言,如Perl、Tcl等。

ASP通过后缀名为.asp的ASP文件来实现,一个ASP文件相当于一个可执行文件,因此必须放在Web服务器上有可执行权限的目录下。当浏览器向WebServer请求调用ASP文件时,就启动了ASP。WebServer开始调用ASP,将被请求的.asp文件从头读到底,执行每一个命令,然后动态生成一个HTML页面并送到浏览器。通过ASP内置的对象、服务器组件(Server Component)可以完成非常复杂的任务,而且用户还可以自己开发或利用别人开发的服务器组件完成专门的任务。

总之,在浏览器中访问Web数据库的方法较多,开发Web应用程序的软件人员需要选择适当的方法,但有些方法的编程接口较为复杂,妨碍了它的进一步应用。作为Web页管理员,更希望把精力集中在信息发布或程序设计本身,而不愿意在接口方面耗费太多的精力。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈