配色: 字号:
Web数据库系统(2)
2022-02-12 | 阅:  转:  |  分享 
  
Web数据库系统(2)

胡经国



Web数据库系统体系结构

当前,Internet/Intranet技术发展异常迅速,越来越多的数据库应用软件运行在Internet/Intranet环境下。在此之前,数据库系统的发展经历了单机结构、集中式结构、客户机服务器(C/S)结构之后,随着Internet的普及,又出现了浏览器服务器(B/S)结构与多层结构。在构造一个数据库系统时,首先考虑的是系统的体系结构,采用哪种结构取决于系统的网络环境、应用需求等因素。客户机服务器C/S)结构二层C/S结构

二层C/S结构是当前非常流行的数据库系统结构在这种结构中,客户机提出请求,服务器对客户机的服务请求做出回答。它把界面和数据处理操作分开在前端(客户端)和后端(服务器端)这个主要特点使得C/S系统的工作速度主要取决于进行大量数据操作的服务器,而不是前端的硬件设备;同时也大大降低了对网络传输速度的要求因为只须客户把服务请求发送给数据库服务器,数据库服务器只把服务结果传回。

在设计两层C/S结构时,对数据可能有如下不同的处理形式在处理时,客户机先向服务器索取数据,然后释放数据库,即客户机发出的是文件请求,在客户机处理数据,最后将结果送回服务器。

这种处理方式的缺点很明显:所有的应用处理都在客户完成这就要求客户必须有足够的能力,以便执行需要的任何程序。更为糟糕的是,由于所有的处理均在客户完成,每次运行时都要将文件整体传送到客户,然后才能执行。如:Student表中有30000条记录,客户发出命令:

SelectFromStudentWhereSno=''200101''

这条命令要求服务器将Student表中的所有记录传送到客户,然后在客户执行查询,结果只用到一条记录;如果查询的记录不存在,网络传输的数据实际上是无用的。如此大的数据传输量是不可想象的。因此,人们提出了在服务器中能够执行部分代码的客户机服务器结构。在处理时,客户机接受用户要求,并发给服务器;在服务器处理用户要求,最后将结果传回客户机显示或打印。这种处理方式网络通信量较小。客户机向服务器发出的是处理请求,而不是文件请求处理请求中的代码在服务器执行后向客户机传送处理后的结果。

这样,为了特定任务,客户机上的程序和服务器上的程序协同工作:客户机的代码用于完成用户的输入输出及数据的检查而服务器的代码完成对数据库的操作。

客户机服务器结构的另一个主要特点在于软件、硬件平台的无关性。数据库服务器上的数据库管理系统集中负责管理数据,它向客户提供一个开放的使用环境客户通过数据库接口,如ODBC(开放数据库连接)和SQL语言访问数据库也就是说,不管客户采用什么样的硬件和软件,它只要能够通过网络和数据库接口程序连接到服务器,就可对数据库进行访问。

在客户机服务器结构中,常把客户机称为前台,而把服务器称为后台。前台应用程序的功能包括用户界面、接收用户数据、处理应用逻辑、向后台发出请求、同时接收后台返回的结果,最后再将返回的结果按一定的格式或方式显示给用户。而后台服务器则负责共享外部设备、存取共享数据、响应前台客户端的请求并回送结果等工作。前台的应用程序和数据一般是用户专用的而后台的数据和代码是所有用户可以共享的。

由于数据库服务器不仅要管理共享数据,保证数据的完整性,还要执行一部分代码,完成客户的一些处理请求对用于服务器的计算机提出较高的要求。最好要采用一台专用的服务器,有较快的处理速度,有大容量的硬盘和内存,支持磁带等大容量的存储设备。

上面讲的客户机服务器结构将应用分在了客户机、服务器两级,称其为两层C/S结构。总之,两层C/S结构的基本工作方式是客户向数据库服务器发送SQL请求,服务器返回数据或结果。这种C/S结构有两种实现方式一种是客户来完成表示部分和应用逻辑部分,而服务器完成数据访问部分这种情况是以客户为中心的,适用于应用相对简单、数据访问量不是很大的情况。另一种是以服务器为中心的,把一些重要的应用逻辑部分放到服务器上这样可充分利用服务器的计算能力,减少网络上需要传送的数据。通常以存储过程和触发器的形式出现,但存储过程都依赖于特定数据库,不同数据库之间很难移植而三层C/S结构可以很好地解决这个问题。

注意:触发器(trigger)是数据库系统中,一个在插入、删除、修改操作之后运行的记录级事件代码。不同的事件可以对应不同的动作。通常有3种类型的触发器:INSERT触发器、DELETE触发器和UPDATE触发器。三层C/S结构

由于层C/S本身固有的缺陷,使得它不能应用于一些大型、结构较为复杂的系统中,出现了层C/S结构将层C/S结构中服务器部分和客户部分的应用单独划分出来,即采用客户机应用服务器数据库服务器结构。典型的数据库应用可分为三部分:表示部分、应用逻辑(商业逻辑)部分和数据访问部分三层结构便是对应于这三部分典型的数据库应用。

其中,应用服务器和数据库服务器可位于同一主机,也可位于不同主机。

客户机是应用的用户接口部分,负责用户与应用程序的交互,运行在客户机的软件也称为表示层软件。

应用服务器存放业务逻辑层(也称为功能层)软件,是应用逻辑处理的核心,实现具体业务。它能响应客户机请求,完成业务处理或复杂计算。若有数据库访问任务时,应用服务器层可根据客户机的要求向数据库服务器发送SQL指令。应用逻辑变得复杂或增加新的应用时,可增加新的应用服务器。

数据库服务器便是用来执行功能层送来的SQL指令,完成数据的存储、访问和完整性约束等。操作完成后再通过应用服务器向客户机返回操作结果。浏览器服务器结构B/S结构的三层结构

随着Internet技术和Web技术的广泛应用,C/S结构已无法满足人们需要。因为在典型C/S结构的系统中,通常为客户安装前端应用程序的做法已不再现实,并且限制客户端工作环境只能基于Windows、Macintosh或UNIX等操作系统也不切实际。于是基于浏览器服务器(Browser/Server)的系统应运而生。采用B/S结构后,在客户端只需安装一个通用的浏览器即可,不再受具体操作系统和硬件的制约,实现了跨平台的应用。

基于B/S结构的典型应用通常采用三层结构:浏览器Web服务器数据库服务器B/S模式的工作原理

B/S模式工作原理是:通过浏览器以超文本HTML语言形式向Web服务器提出访问数据库的请求Web服务器接受客户请求后,激活对应的CGI程序将超文本HTML语言转化为SQL语法,将这个请求交给数据库数据库服务器到请求后,进行数据处理,然后将处理结果集返回给CGI程序CGI程序再将结果转化为HTML语言,并由Web服务器转发给请求方的浏览器。

在B/S模式中,客户端的标准配置是浏览器,如IE;业务功能处理由独立的应用服务器处理,Web服务器成为应用处理的标准配置;数据处理仍然由数据库服务器处理。B/S结构与C/S结构

从本质上讲,B/S结构与传统的C/S结构都是以同一种请求和应答方式来执行应用的,区别主要在于:C/S是一种层或三层结构,其客户端集中了大量应用软件而B/S是一种基于超链接(HyperLink)、HTML、Java的三级或多级结构,客户端仅需单一的浏览器软件,是一种全新的体系结构,解决了跨平台问题。到目前,这两种结构在不同方面都有着广泛的应用。虽然C/S结构在Internet环境下明显不如B/S结构具有优势,但它在局域网环境下仍具有优势。Web数据库管理系统Web数据库管理系统

目前Web技术与数据库管理系统(DBMS)相互融合领域的研究已成为热点方向之一数据库厂家和Web公司也纷纷推出各自的产品和中间件支持Web技术和DBMS的融合,两者取长补短,发挥各自的优势使用户可以在Web浏览器上方便地检索数据库的内容。

所谓Web数据库管理系统是指基于Web模式的DBMS的信息服务,充分发挥DBMS高效的数据存储和管理能力,以浏览器服务器(B/S)模式为平台,将客户端融入统一的Web浏览器,为Internet用户提供使用简便、内容丰富的服务。Web数据库管理系统必将成为Internet和Intranet提供的核心服务,为Internet上的电子商务提供技术支持。通过Web访问数据库的优点

数据库应用的一个重要方面就是对数据的访问但是许多数据库系统目前提供的访问方式,或是一个字符方式的查询界面,或是通过编程方式实现无论哪种方式都较难使用近年来发展的一些RAD(RapidApplicationdevelopment)工具,如VB、Delphi、PowerBuilder等可以方便地开发一些图形界面的访问数据库软件这样的开发工具需要使用者具有编程技术,并且开发的程序不能跨平台运行。而且用RAD工具开发的软件,随用户需求的改变,可能需要增添新的功能或在界面上做一些改动。如果开发的软件使用范围比较广泛,那么软件更新将是一项很大的工作。而Internet技术的发展则使上述问题有了解决办法如果建立了Web服务器,就可以通过Web服务器实现对数据库的访问,上面提到的问题也都可以解决了。

与传统方式相比,通过Web访问数据库的优点在于:借用现成的浏览器软件,无需开发数据库前端

如果能够通过Web来访问数据库,我们就不需要开发客户端的程序,使用的数据库应用都可以通过浏览器来实现界面统一,也减少了培训费用,能使广大用户很方便地访问数据库信息。标准统一,开发过程简单

HTML是Web信息组织方式,是一种国际标准使用Web服务器与HTML标准,开发者甚至只需学习HTML一种语言,使用者只需学习一种界面浏览器界面。交叉平台支持





2016年12月22日编写于重庆

2022年2月12日修改于重庆

5







献花(0)
+1
(本文系胡经国图书...原创)