版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章网络数据库系统的体系结构第四章网络数据库系统的体系结构14.1概述4.2基于C/S模式的数据库系统4.3基于B/S模式的数据库系统4.4两种模式的网络数据库系统的应用实例分析4.1概述2本章摘要
目前网络数据库系统主要是按照客户机/服务器(C/S)模式或者浏览器/服务器(B/S)模式来建立的。本章将介绍C/S体系结构和B/S体系结构的工作原理和技术特点,以及基于C/S模式和B/S模式的网络数据库的基本概念、工作过程和关键技术。通过本章的学习,大家应该对基于C/S模式和基于B/S模式的网络数据库系统的基本概念、组成结构、实现技术和技术特点有一个比较全面的了解。本章摘要目前网络数据库系统主要是按照客户机/服务器(C34.1.1二层结构的C/S系统所谓的C/S体系结构是指由一个或多个客户机和一个或多个服务器与底层的操作系统及通讯系统一起形成的一个允许分布式计算、分析和表示的复合系统。其中的一个或多个计算机提供服务,称为服务器(Server);其他的计算机则接受服务,称为客户机(Client)。C/S结构模式经历了两个阶段:即两层结构的C/S系统和多层结构的C/S系统。4.1概述4.1.1二层结构的C/S系统所谓的C/S体系结构是4C/S结构模式将用户界面逻辑和应用处理逻辑通过前端开发工具融合在一起,将一个复杂的计算机应用任务分解成多个不同的子任务,把它们分配到具有前端(客户机)和后端(服务器)的分布式计算机环境中,在前端客户机上运行应用程序,而后端服务器则提供某些特定服务。服务器提供的服务有数据库服务、文件服务和通信服务等。工作过程一般是:客户机提出数据服务请求,服务器把按照请求处理后的数据传送给客户。C/S结构模式将用户界面逻辑和应用处理逻辑通过前端开发工具51二层结构的C/S系统结构客户机通过向服务器请求数据服务,做必要的处理,将结果显示给用户,是一个面向用户的接口或应用程序;而服务器负责监听客户的数据服务请求,为客户的请求提供所要求的服务,包括数据存取、数据加工和处理。1二层结构的C/S系统结构客户机通过向服务器请求6C/S体系结构的特点体现在以下方面:(1)数据库安装在服务器一端,数据库的完整性和一致性有了结构上的保证;(2)客户机为应用提供图形接口,而应用的数据处理部分由服务器完成。这样,一个应用分成了两个部分,分布于网络上,便于充分发挥客户机和服务器的处理能力;(3)网上仅仅传输记录而非文件,与集中式系统相比系统整体性能有了质的飞跃,网络吞吐能力也大为增强;(4)系统升级容易,可塑性好,能保护已有的投资。C/S体系结构的特点体现在以下方面:7尽管两层结构的C/S系统实现了功能的分布,但它仅能在各自的客户机和数据服务器之间使用,功能分布还不均匀,系统的性能、可伸缩性和可扩展性较差,使得系统难于维护,不能支持大量用户的访问和高容量事务处理的应用。为此,人们引入了三层的C/S结构模式,即在客户端和数据库服务器之间增加一个应用服务器。尽管两层结构的C/S系统实现了功能的分布,但它仅能在各84.1.2三层结构的C/S系统在三层C/S结构中,服务器端被分为两部分:即应用服务器和数据库服务器,形成“客户机——应用服务器——数据库服务器”模式。4.1.2三层结构的C/S系统在三层C/S结构中,服务器9客户机主要提供用户登陆界面,负责用户与应用程序之间的对话;应用服务器包括了从客户端划分出来的一部分应用和从原来数据库服务器中划分过来的一部分工作,主要实施商业和应用逻辑,并基于商业规则确认从客户端得到的数据,响应客户端的请求,完成业务处理或复杂计算;数据库服务器执行存储数据和处理数据的功能,它分析功能服务器送来的SQL命令,实现对数据库的读写等操作,并将结果返给功能服务器,再传给客户端。客户机主要提供用户登陆界面,负责用户与应用程序之间的对话;10三层体系结构的优势在于:(1)在应用服务器中封装了商业规则,不同的客户程序可以共享同一中间层,不必由每个客户程序单独实现商业逻辑。(2)可以把一些敏感的功能放在有严密保护措施的应用程序服务器层上,不至于使用户界面变得复杂。(3)实现了分布式数据处理。即可以把一个应用程序分布在几个机器上运行,这样就可以提高应用程序的性能。同时,通过冗余配置还可以保证不会因为局部故障而导致整个应用程序崩溃,有利于网络系统的安全。三层体系结构的优势在于:11三层体系结构的数据库系统优势在于:(1)系统可根据需要把各个服务分别或重复地分布在不同的计算机上,使整个系统的工作量平衡分配到网络中,从而实现最佳的性能;(2)由应用服务器统一管理数据库连接、数据接收、数据同步、事务处理和线程调度等工作,因此可最大限度地保障了数据的统一、完整和准确性能;(3)对系统的修改或升级可简化到只对某个特定部件的更换,使系统的维护和升级更加容易;三层体系结构的数据库系统优势在于:12(4)适用范围广且支持Intranet/Internet,并具有很强的开放性;(5)实现大用户量、大吞吐量下的负载平衡。三层结构将应用纵向均匀分布在客户端、应用服务器和数据库服务器上,横向分布在多个应用服务器和数据库服务器上,应用的分布实现了负载的平衡。因此,在大用户量、大吞吐量情况下,仍能迅速响应每个客户端的需求。(4)适用范围广且支持Intranet/Inte13C/S结构的弱点:第一,C/S结构的计算能力过于分散,网络中服务器和客户机的数目正发生“细胞”分裂,使得系统的管理费用以几何级数的方式增长;第二,C/S结构中数据库信息的使用一般只限于局域网的范围内,无法利用Internet的网络资源;第三,在C/S结构中,无论多小的企业都必须安装自己的服务器,而服务器和服务器软件的管理和维护都是非常复杂的工作,需要专门人员负责,小企业往往无力购买高性能的服务器和聘任专门的技术人员,因此C/S结构的网络数据库系统不利于小企业计算机应用的发展。C/S结构的弱点:144.1.3
B/S模式及其工作原理目前Web技术与数据库管理系统(DBMS)相互融合领域的研究已成为热点方向之一,数据库厂家和WEB公司也纷纷推出各自的产品和中间件支持Web技术和DBMS的融合,将两者取长补短,发挥各自的优势,使用户可以在Web浏览器上方便地检索数据库的内容。所谓Web数据库管理系统是指基于Web模式的DBMS的信息服务,充分发挥DBMS高效的数据存储和管理能力,以Web这种浏览器/服务器(B/S)模式为平台,将客户端融入统一的Web浏览器,为Internet用户提供使用简便、内容丰富的服务。Web数据库管理系统必将成为Internet和Intranet提供的核心服务,为Internet上的电子商务提供技术支持。4.1.3
B/S模式及其工作原理目前Web技术与数15B/S结构是一种全新的软件系统构造技术,它主要是利用了比较成熟的WWW浏览器技术,结合浏览器的多种Script语言(如VBScript,JavaScript等等)和ActiveX技术,通过浏览器实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本。(1)B/S结构模式B/S结构是一种全新的软件系统构造技术,它主要是利用了16
基于B/S的网络数据库应用系统通常采用三层或多层结构。下图给出的是“浏览器——Web服务器——数据库服务器”三层结构,用户完全通过WWW浏览器登录,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。基于B/S的网络数据库应用系统通常采用三层或多层结构17图4.4给出的是“浏览器——Web服务器——中间件——数据库服务器”多层结构,这一结构中的中间件通常通过定义统一的数据模型来解决不同数据库之间的数据转化问题,确保客户机和服务器之间信息查询和结果返回的顺畅性。目前流行的B/S结构多采用多层结构。图4.4给出的是“浏览器——Web服务器——中间件——数据库18B/S结构模式下的工作过程大致如下:当浏览器向某一Web服务器提出服务请求后,Web服务器首先对用户身份进行验证,然后用文本传输协议(HTTP)把所需的文件资料传给客户机;客户机接收传来的文件资料,并按照HTTP格式把它显示在Web浏览器上。Web服务器既是一个浏览服务器,又是一个应用服务器,整个应用逻辑和商业规则都可驻留其上,所以它是整个结构的核心。多层B/S结构实际上引入了中间件,将业务处理交给中间件处理。这些中间件都是一些常用的数据库处理技术,如CGI,API,ASP,JDBC等,其中CGI是目前的标准接口。B/S结构模式下的工作过程大致如下:当浏览器向某一Web服19(2)B/S模式的工作原理在下图中,客户机的Web浏览器通过使用URL来指定所需要的HTML文件的惟一地址,解释HTML文件,并展示给用户。当用户通过浏览器输入URL文件请求时,Web服务器通过采用的HTTP协议获得用户输入的数据,如果不要访问数据库则按下图①方向运行;如果用户请求访问数据库,则按②方向运行。(2)B/S模式的工作原理在下图中,客户机的Web浏览20HTML文件HTML文件HTML文件返回数据SQL语句HTML文件HTML文件HTML文件返回数据SQL语句21
B/S结构模式和C/S结构模式都是以请求/问题方式来执行的,但传统的C/S模式需在客户端集中了大量应用软件,而B/S模式则是一种基于Web的三级或多级C/S结构,客户端只需有统一的浏览器软件。总体上说,B/S体系结构具有以下优势:1)统一的浏览器访问界面。2)开发效率高。3)具有极强的伸缩性。4)开放性。5)减少了客户端维护工作量。B/S结构模式和C/S结构模式都是以请求/问题224.2基于C/S模式的数据库系统基于C/S模式的网络数据库系统以数据库服务器为中心,不仅要对数据库进行查询,还要对数据库进行大量更新,同时还要保证多个并发用户工作时的响应速度和数据完整性。本节将介绍基于C/S模式的网络数据库系统的需求、功能划分、系统结构和主要关键技术。4.2基于C/S模式的数据库系统基于C/S模式的网234.2.1基于C/S模式的数据库系统的需求(1)联机事务处理(OLTP)的需求:要求系统的吞吐量要高,响应时间要短,能够均衡地分配负载,减少网络传输量。对数据的完整性和可用性也有很高要求。(2)企业管理模式的改变:从集中式走向分布式,由孤立的系统走向集成的系统,由总站级管理走向企业的全局性管理。(3)高端商用市场的客户对系统的可扩展性、可管理性、安全性和高可用性的需求。(4)对数据和服务的集成要求(5)开放的系统结构要求(6)信息的处理、获取、发布、存储等高的性能要求。4.2.1基于C/S模式的数据库系统的需求(1)联机事务244.2.2基于C/S模式的数据库管理系统的功能划分
在C/S模式的数据库系统中,客户机最基本的功能是向服务器发出请求数据服务,在做一些必要的处理后,最后将结果显示给用户。服务器中一般运行有网络操作系统,及数据库管理系统软件,主要功能是建立进程和网络服务地址,监听用户的调用,处理用户的请求。并不是所有的系统中客户机、服务器的功能划分仅其基本功能。在一个单服务器的系统环境下,客户机、服务器的功能划分可以有三种不同的划分方案,它们是CS结构、RU结构、EWS结构。4.2.2基于C/S模式的数据库管理系统的功能划分在C25(1)CS结构:应用的处理(包括实现用户界面与表示逻辑)由客户端完成,数据访问和事务处理由服务器完成。(2)RU结构:客户机执行了部分DBMS的功能。主要完成查询优化和查询处理。(3)EWS结构:每个客户都可通过对查询结果进行缓存建立其局部数据库,而且在客户端都有一个功能完整的数据库系统。减少了网络传输和服务器端的数据输入/输出。(1)CS结构:应用的处理(包括实现用户界面与表示逻辑)由264.2.3单服务器系统和多服务器系统C/S模式的数据库系统可以分成单服务器结构和多服务器结构。这种划分方法是按照将不同任务分布到客户平台和服务器平台的形式。它们的区别体现为单个客户请求得到服务响应过程中所涉及的客户和服务器数目不同。单服务器结构在网络中只有一台数据库服务器,有多台客户机;多服务器结构是在网络中具有多台数据库服务器和多台客户机。4.2.3单服务器系统和多服务器系统C/S模式的数27(1)单服务器系统模式
数据集中于一台数据库服务器中,客户机向这台服务器提出请求,并收到响应。所有数据由一个服务器管理,因此显得简单、方便、有效。因为只有一台数据库服务器,它需要处理大量数据并能支持许多并发用户访问,所以这一服务器通常是大型机。建立这样一个系统一次性投资较大,且由于数据处理相对集中,所有用户都要通过网络来访问一个服务器,不仅容易造成瓶颈,而且数据传输的开销较大,对主机的要求也比较高。
(1)单服务器系统模式28(2)
多服务器系统模式随着数据库应用的不断发展,规模的不断扩大,有时客户机也保留数据的备份以减少网络传输量。渐渐就形成了数据分散存储的方法,把数据库分成多个,建立在多台计算机上,就形成了多服务器系统模式。多服务器模式是指在执行单独一个或多个客户请求中,多个服务器以对客户透明方式参与完成,即:客户调用某个服务器操作,在该服务器执行操作过程中,又调用其它服务器一起操作,为之提供服务。(2)
多服务器系统模式29在多服务器系统中,数据分布在多个服务器中,多个用户共享多个服务器中的数据。多个服务器之间协同合作,共同完成客户对数据的透明访问要求。具有多个服务器的系统的数据处理机制较为复杂,基本可以采取分布式数据库中所采取的技术处理,以保证用户不用考虑数据的存放方式和在哪里存放。在多服务器系统中,数据分布在多个服务器中,多个用户共享30与单服务器系统模式相比,多服务器系统模式具有以下特点:1)物理分布性数据存储在计算机网络的多个场地上;2)逻辑整体性数据物理上分布,但逻辑上是一个整体,被所有用户所共享,由一个数据库管理系统来统一管理;3)场地自治性各场地上的数据由本地的数据库管理系统管理,具有自治处理能力,能完成本场地的局部应用;4)场地之间存在协作性各场地虽然具有高度的自治性,但是又是相互协作构成一个整体。与单服务器系统模式相比,多服务器系统模式具有以下特点:31多服务器系统模式存在的问题:1)由于数据源的非唯一性,客户应用就必须考虑采用适当的应用程序设计接口或访问策略来达到目的。2)存在多个并发的事务处理时,应保证多个服务器中的数据一致性。3)系统开销尤其是通信部分的开销较大,在远程网情况下,传输速度不高时,响应的速度显著变慢。多服务器系统模式存在的问题:324.2.4基于C/S模式的数据库系统的一些关键技术(1)开放数据库互连ODBCODBC是目前数据库互连访问的一个强有力的解决方案。ODBC的基本思想是提供独立程序来提取数据信息,并具有向应用程序输入数据的方法。ODBC为应用程序和驱动模块提供了一种满足各自需要的应用程序设计接口(API),并且保持了与结构化查询语言(SQL)标准的一致性。客户通过ODBC标准函数向数据库服务器发出SQL请求,由ODBC数据库驱动程序完成向后端数据库提交SQL请求并将处理结果传送返回给应用程序。在服务器端则可采用不同的技术来实现对数据源的透明访问、支持多种网络协议和多种数据库平台。4.2.4基于C/S模式的数据库系统的一些关键技术(1)33ODBC接口的优势之一是互操作性,程序设计员可以在不指定特定数据源情况下创建ODBC应用程序。为保证标准性和开放性,ODBC结构分为以下四层:1)应用程序。2)驱动程序管理器。3)驱动程序。4)数据源。ODBC接口的优势之一是互操作性,程序设计员可以在不指定特定34(2)
JDBC(JavaDatabaseConnectivity)JDBC是SUN公司针对Java语言提出的与数据库连接的API标准,在不同的数据库功能模块的层次上提供一个统一的用户界面。与ODBC类似,JDBC是特殊类型的API,这些API支持对数据库的连接和基本的SQL功能,包括建立数据库连接、执行SQL语句、处理返回结果等。JDBC的结构同样有一个JDBC驱动程序管理器作为Java应用程序与数据库的中介,它把对数据库的访问请求转换和传送给下层的JDBC,或者转换为对数据库的固有调用。更多的实现方式是通过JDBC-ODBC桥接驱动程序,再转化为一个ODBC调用,进行对数据库的操作。(2)
JDBC(JavaDatabaseConnect35(3)存储过程技术
存储过程(StoredProcedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数来执行它。存储过程与一般的程序过程一样,能够接受输入数据并返回结果值,返回操作成功与否的状态值等。一个存储过程所涉及的任何客体一旦被修改,都会自动导致该过程利用新的信息重新作编译。存储过程既可被重用又可被共享。(3)存储过程技术36采用存储过程技术有以下好处:1)高性能存储过程将完成一定功能的一组SQL语句存储在服务器中,而不是客户端,这样,在网络上传输的只是一个远程调用和最终的执行结果,大大减少了网络上的传输量,提高了系统的性能。2)共享性存储过程可以被多个用户共享使用,而且使用时可存放在磁盘缓冲区内,即多个用户可以使用同一个存储过程。3)提高应用开发效率存储过程把用户和应用程序与数据源、网络和存取路径细节隔离开,使得非专业人员对于数据库服务器上的数据访问变得更加方便。采用存储过程技术有以下好处:37(4)分布数据管理技术在多个数据库服务器的C/S模式数据库系统中,数据分布在多个服务器上,为多个客户所共享,因此数据的管理比较复杂。通常采用的技术包括数据复制技术和两阶段提交协议。1)数据复制和分布支持某一服务器上的某些表中的数据复制和分布到其他远程数据库服务器结点上。2)两阶段提交协议用来协调参与分布式事务的多个服务器的活动,以防止可能发生的数据不一致性。采用两阶段提交协议后,当系统发生故障时,各服务器利用各自有关的日志便可以进行恢复工作。(4)分布数据管理技术384.3基于浏览器/服务器模式的数据库系统基于B/S模式的数据库系统以基于Web的B/S模式为平台,将客户端融入统一的Web浏览器中,为Internet用户提供使用简便、内容丰富的服务。因此这种在Web上使用的数据库也称为Web数据库。与平常的数据库相似,Web数据库不论是小型数据库(如Access,dBase等)还是大型数据库(如Oracle,Sybase,SQLServer等)均可被Web访问。客户可使用浏览器通过Internet或Intranet访问网络数据库,进行数据的读出、写入、删除和修改等操作。4.3基于浏览器/服务器模式的数据库系统基于B/S模39基于B/S模式的数据库系统要解决的关键问题是数据传递的安全性和事务性,因为HTTP本质上是一个无状态的连接,所以事务处理就变得非常重要,同时又因为整个事务是基于全球网络体系结构的,所以安全性也变成一个值得关注的问题。基于B/S模式的数据库系统要解决的关键问题是数据传递的404.3.1基于B/S模式的数据库系统体系结构基于B/S模式的数据库系统具有三层或多层的体系结构,第一层为用户层,第二层为应用层,第三层为数据库层。
4.3.1基于B/S模式的数据库系统体系结构基于B/S41(1)用户层
用户层负责处理用户的输入和向用户的输出,但不负责解释其含义(出于效率的考虑,它可能在向上传输用户输入前进行合法性验证)。这一层不需要安装什么设备与软件,只需要安装一个Web浏览器,负责显示应用服务器端的运行结果,并借助于JavaApplet、VBScript、JavaScript、ActiveX等技术进行一些简单的客户端事务处理。(1)用户层42(2)应用层
该层就是Web应用服务器,是上下两层的纽带,建立实际的数据库连接。它负责接受远程或本地的页面请求,根据用户的请求生成SQL语句检索或更新数据库,然后运行服务器端脚本,借助于CGI、ADO等中间部件把数据请求发送到数据库服务器上以获取相关数据,然后把结果数据转化成HTML及各种脚本传回客户端的Web浏览器。所有的应用系统、应用逻辑、控制都在应用层,系统的复杂性也主要体现在这一层。(2)应用层43(3)数据库层该层为数据库服务器,它存储着大量的数据信息和数据逻辑。该层的任务是负责协调Web服务器请求,负责实际的数据存储和检索,管理数据库系统。所有与数据有关的安全、完整性控制、数据的一致性、并发操作等都是在第三层完成。当前比较流行的Web数据库管理系统主要有SQLServer,MySQL,Oracle和Sybase等。这四种数据适应性强,性能优异,在国内得到了广泛的应用。(3)数据库层44基于B/S模式的数据库系统是通过WWW访问数据库的,其优点在于:借用现成的浏览器软件,无需开发数据库前端:如果能够通过WWW来访问数据库,我们就不需要开发客户端的程序,使用的数据库应用都可以通过浏览器来实现,界面统一,也减少了培训费用,能使广大用户很方便地访问数据库信息。标准统一,开发过程简单:HTML是WWW信息的组织方式,是一种国际标准,使用的WWW服务器与HTML标准,开发者甚至只需学习HTML一种语言,使用者只需学习一种界面——浏览器界面。交叉平台支持:几乎在各种操作系统上都有现成的浏览器可供使用,为一个WWW服务器书写的HTML文档,可以被所有平台的浏览器所浏览,实现了跨平台操作。基于B/S模式的数据库系统是通过WWW访问数据库的,其优点在45一般实现Web数据库系统的连接和应用可采取两种方法,一种是在Web服务器端提供中间件来连接Web服务器和数据库服务器,另一种是把应用程序下载到客户端并在客户端直接访问数据库。中间件负责管理Web服务器和数据库服务器之间的通信并提供应用程序服务,它能够直接调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的动态HTML页面,或执行用户查询,并将查询结果格式化成HTML页面。通过Web服务器返回给Web浏览器。最基本的中间件技术有通过网关接口CGI和应用程序接口API两种。Web数据库中间件结构
一般实现Web数据库系统的连接和应用可采取两种方法,一种是在46基于通用网关接口CGICGI是WWW服务器运行时外部程序的规范,按照CGI编写的程序可以扩展服务器的功能,完成服务器本身不能完成的工作,外部程序执行时可以生成HTML文档,并将文档返回WWW服务器。CGI应用程序能够与浏览器进行交互作用,还可以通过数据库的API与数据库服务器等外部数据源进行通信,如一个CGI程序可以从数据库服务器中获取数据,然后格式化为HTML文档后发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎使用的服务器软件都支持CGI,开发人员可以使用任何一种WWW服务器内置语言编写CGI,其中包括流行的C、C++、VB和Delphi等。基于通用网关接口CGICGI是WWW服47从体系结构上来看,用户通过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浏览器输入查询信息,浏48基于通用网关接口CGI基于Web的数据库访问利用已有的信息资源和服务器。其访问频率大,尤其是热点数据。但其主要的缺点是:①客户端与后端数据库服务器通信必须通过Web服务器,且Web服务器要进行数据与HTML文档的互相转换,当多个用户同时发出请求时,必然在Web服务器形成信息和发布瓶颈。②CGI应用程序每次运行都需打开和关闭数据库连接,效率低,操作费时;③CGI应用程序不能由多个客户机请求共享,即使新请求到来时CGI程序正在运行,也会启动另一个基于通用网关接口CGI基于Web的数据库访问49CGI应用程序,随着并行请求的数量增加,服务器上将生成越来越多的进程。为每个请求都生成进程既费时又需要大量内存,影响了资源的使用效率,导致性能降低并增加等待时间;④由于SQL与HTML差异很大,CGI程序中的转换代码编写繁琐,维护困难;⑤安全性差,缺少用户访问控制,对数据库难以设置安全访问权限;⑥HTTP协议是无状态且没有常连接的协议,DBMS事务的提交与否无法得到验证,不能构造Web上的OLTP(onlinetransactionprocessing)应用。CGI应用程序,随着并行请求的数量增加,服务器上将生成越来越50基于服务器扩展的API为了克服CGI的局限性,出现的另一种中间件解决方案是基于服务器扩展API的结构。与CGI相比,API应用程序与Web服务器结合得更加紧密,占用的系统资源也少得多,而运行效率却大大提高,同时还提供更好的保护和安全性。服务器API,是驻留在WWW服务器中的程序代码,其扩展WWW服务器的功能与CGI相同。WWW开发人员不仅可以用API解决CGI可以解决的一切问题,而且能够进一步解决基于不同WWW应用程序的特殊请求。各种API与其相应的WWW服务器紧密结合,其初始开发目标服务器的运行性能进一步发掘、提高。基于服务器扩展的API为了克服CGI51用API开发的程序比用CGI开发的程序在性能上提高了很多,但开发API程序比开发CGI程序要复杂得多。API应用程序需要一些编程方面的专门知识,如多线程、进程同步、直接协议编程以及错误处理等。目前主要的WWWAPI有Microsoft公司的ISAPI、Netscape公司的NSAPI和OReily公司的WSAPI等。用API开发的程序比用CGI开发的程序在性能上提高了很52虽然基于服务器扩展API的结构可以方便、灵活地实现各种功能,连接所有支持32位ODBC的数据库系统,但这种结构的缺陷也是明显的:①各种API之间兼容性很差,缺乏统一的标准来管理这些接口;②开发API应用程序也要比开发CGI应用复杂得多;③这些API只能工作在专用Web服务器和操作系统上。虽然基于服务器扩展API的结构可以方便、灵活地实现各种功53基于JDBC的Web数据库技术Java的推出,使WWW页面有了活力和动感。Internet用户可以从WWW服务器上下载Java小程序到本地浏览器运行。这些下载的小程序就像本地程序一样,可独立地访问本地和其他服务器资源。而最初的Java语言并没有数据库访问的功能,随着应用的深入,要求Java提供数据库访问功能的呼声越来越高。为了防止出现对Java在数据库访问方面各不相同的扩展,JavaSoft公司指定了JDBC,作为Java语言的数据库访问API。采用JDBC技术,在JavaApplet中访问数据库的优点在于:基于JDBC的Web数据库技术Jav54(1)直接访问数据库,不再需要Web数据库的介入,从而避开了CGI方法的一些局限性;(2)用户访问控制可以由数据库服务器本地的安全机制来解决,提高了安全性;(3)JDBC是支持基本SQL功能的一个通用低层的应用程序接口,在不同的数据库功能的层次上提供了一个统一的用户界面,为跨平台跨数据库系统进行直接的Web访问提供了方案。从而克服了API方法一些缺陷;(4)可以方便地实现与用户的交互,提供丰富的图形功能和声音、视频等多媒体信息功能。(1)直接访问数据库,不再需要Web数据库的介入,从而避开了55JDBC是用于执行SQL语句的Java应用程序接口API,由Java语言编写的类和接口组成。Java是一种面向对象、多线程与平台无关的编程语言,具有极强的可移植性、安全性和强健性。JDBC是一种规范,能为开发者提供标准的数据库访问类和接口,能够方便地向任何关系数据库发送SQL语句,同时JDBC是一个支持基本SQL功能的低层应用程序接口,但实际上也支持高层的数据库访问工具及API。JDBC完成的工作是:建立与数据库的连接;发送SQL语句;返回数据结果给Web浏览器。JDBC是用于执行SQL语句的Java应用程序接口AP56基于JDBC的Web数据库结构其缺陷在于:只能进行简单的数据库查询等操作,还不能进行OLTP;安全性、缓冲机制和连接管理仍不完善;SUN承诺的完全跨平台跨数据库系统的功能和标准远未实现。基于JDBC的Web数据库结构其缺陷在于:只能进行简单57
CGIAPIJDBC编程复杂性复杂复杂中等程序员要求高高中等开发时间长长中等可移植性较好差好CPU的负载高较低较低如何将Web技术和DBMS相结合,研究和开发出具有OLTP功能的动态Web数据库系统已经成为目前的Internet和数据库技术热点研究领域的交叉点。传统的Web数据库系统都有着自己不同的缺点,唯有充分利用基于组件和分布式对象技术的优势将Web技术和DBMS紧密结合,开发出具有扩展性强、易于维护、效率高的特点,同时提供跨平台的操作性和能访问异构数据库系统的支持的Web连接体系结构及技术,才能真正实现Web数据库的灵活方便应用。几种Web数据库连接方式的比较
CGIAPIJDBC编程复杂性复杂复杂中等程序员要求高高中584.3.2异构数据库环境现实中存在着存储在不同的数据库系统上的数据,它们可能分布在不同的地理位置,使用不同的数据组织形式和操作系统平台,加上应用不同所造成的数据不一致性问题,于是构成了一个非常复杂的异构数据库环境。在Internet上的数据库系统大多是分布的、异构的,且Internet上的每一站点之间的信息和组织都不一样,这也构成了一个巨大的异构数据库环境。4.3.2异构数据库环境现实中存在着存储在不同的数59异构数据库环境下的数据库系统的异构性主要体现在以下几个方面:1)计算机体系结构的异构。2)基础操作系统的异构。3)DBMS本身的异构。要实现网络环境下的信息共享,就必须联合各个异构数据库,形成异构数据库系统,通过建立统一的协调管理机制,实现不同数据库之间的数据信息资源合并和共享。异构数据库环境下的数据库系统的异构性主要体现在以下几个方604.3.3半结构化的数据结构Web是一个巨大的、异构的、分布的、由超文本链接所连接的文档的集合。Web中含有大量丰富的文本、图片、声音、图像等数据,这些数据多存在于HTML文件中,没有特定的模型描述,数据本身具有自述性和动态可变性。其数据信息是一种介于严格结构化的数据和完全无结构的数据之间的数据形式。它的页面具有一定的描述层次的,存在一定的结构,但并非是严格的结构,而且可能隐含在数据中。传统数据库中的数据模型、数据类型、存储结构、定义语言、操作语言等均不能表达这类数据信息。为此,需要一种新的数据模型来解决Web数据查询和处理出现的问题,于是人们提出了半结构化数据(Semi-structuredData)的概念。4.3.3半结构化的数据结构Web是一个巨大的、异61有关半结构化数据还没有一个统一的定义,但根据它的特点,可以将它描述为:半结构化数据是指其结构隐含或无规则、不严谨的自我描述型数据。在半结构化环境中,模式信息通常包含在数据中,即模式与数据间的界限混淆,这样的数据称作自我描述型数据。某些自我描述型数据中存在结构,数据的内容和结构混杂在一起,不清晰明显,需要从中提取;而某些数据的结构可见,但是不严谨,如可以采用不同的方式表达同一信息。半结构化数据主要有两大来源:异构数据集和万维网。有关半结构化数据还没有一个统一的定义,但根据它的特点,可62半结构化数据模式与传统的关系数据模式和面向对象数据模式不同,它主要有以下特点:1)模式与数据的区别模糊。2)半结构化数据模式可能规模很大,而且因数据的不断更新而处于动态的变化过程之中。3)不规则的结构。4)半结构化数据模式是非常灵活的,能满足网络这种复杂分布式环境的要求,但也给数据处理带来了很大难度。5)没有严格的类型约束。6)先有数据,后有模式。半结构化数据模式与传统的关系数据模式和面向对象数据模式不63半结构化数据模式查询可以处理的数据类型和对象有:1)单值和集合值属性兼容。2)不同的查询对象数据类型。3)未知结构的查询对象。半结构化数据模式查询可以处理的数据类型和对象有:64综上,半结构化数据具有两大特性,结构不规则和结构隐含,结构不规则的数据主要存在于异构数据中,结构隐含主要指Web数据。对于这两种不同特性的半结构化数据,分别可以用集成和信息抽取使其结构化。对半结构化数据结构及模式研究是一个新的具有挑战性和实际意义的研究领域。综上,半结构化数据具有两大特性,结构不规则和结构隐含,结654.3.4异构数据库的集成与查询Internet是一个巨大的异构数据库环境。如果想要充分利用Internet上的数据资源,首先必须要研究站点之间异构数据的集成问题,只有将这些站点的数据都集成起来,提供给用户一个统一的视图,才有可能从巨大的数据资源中获取所需的东西;其次,还要解决Web上的数据查询问题,实现数据进行分析、集成、处理就无从谈起。对于异构数据库的查询操作,目前有三种较通用的解决方法:公共数据库网关技术、公共协议技术、公共编程接口技术。4.3.4异构数据库的集成与查询Internet66(1)公共数据库网关技术
许多数据库厂商提供了各自的数据库网关产品,支持对多个异种数据源的访问。通过网关可以把第三方为其他厂商开发的工具连接到自己的数据库产品上。但是应该指出的是,公共网关实现任意两个异种数据库的互操作比较复杂。网关仅是查询语言的转换器,它不支持事务管理。(1)公共数据库网关技术67(2)公共协议技术
公共协议是指对客户和服务器之间通信的格式和协议以及数据库语言进行标准化。这是一种较好的解决异构数据库互联的方法,目前比较典型的有SAG(SqlAccessGroup)规范、IBM的分布式关系数据库体系结构(DRDA)。这种方法操作数据库的效率很高,但编程量较大。
(2)公共协议技术68(3)公共编程接口技术
公共编程接口包括客户应用编程界面(CAPI)和服务器应用编程界面(SAPI)。CAPI是一组过程库,通常驻留在客户端,通过装载后端专用的驱动程序访问不同的数据库。SAPI提供一个应用编程界面,控制服务器与客户应用请求和目标数据库之间产生交互。ODBC、JDBC和CORBA技术就属于公共编程接口方法,支持在分布式计算环境中异构数据库的访问。
(3)公共编程接口技术69随着CORBA的各种使用和其他分步式技术的发展,异构数据库的集成度将得到更进一步的提高。此外,结构异构数据库集成的另一个重要方法是所有应用数据都用XML格式表示,因为XML是数据交换、数据共享和数据存储的基础标准,也是实现异构数据库共享的必由之路。目前,异构数据库系统的集成以及建立此基础之上的数据仓库、数据挖掘已经成为网络数据库技术研究的重点之一。随着CORBA的各种使用和其他分步式技术的发展,异构数704.3.5半结构化模型抽取技术针对Internet上的半结构化数据的特点,寻找一个半结构化的数据模型则成为了解决Web数据查询问题的关键所在。此外,除了要定义一个半结构化数据模型外,还需要一项能够自动地从现有数据中将这个模型抽取出来的技术,这就是所谓的半结构化模型抽取技术。因为半结构化数据模型和半结构化模型抽取技术是面向Internet的数据挖掘技术实施的前提,所以堪称是当今数据库研究领域的最大热点。4.3.5半结构化模型抽取技术针对Internet71XML语言是用于标记电子文档并使之具有结构性的语言。XML文档是文本的形式,使用标签和属性来描述数据的性质,采用树型逻辑结构描述数据,即它分析所描述数据类的结构,将其转换为树的形式,这一点与HTML颇为相似。XML的出现从根本上解决了半结构化数据查询问题,因为XML是一个格式独立的、与平台和应用无关的语言,它使数据从描述和过程中分离出来,让用户可以通过应用不同的类型表和应用程序来显示和处理数据。只要应用程序都支持XML,就可以在程序之间无缝地交换数据。XML语言是用于标记电子文档并使之具有结构性的语言。X72XML的如下特点较好地适合了半结构化数据的管理需求:(1)树型数据组织形式XML对格式的定义严格,具有层次结构,容易规范数据的处理。(2)自描述性标签或属性可以反映数据的属性,可被不同程序用于不同用途。这使得XML具有的面向数据交换的特性推动了半结构化数据管理用模式的发展。(3)可格式化由于数据和显示是分离的,同一数据可以指定不同的样式用于不同输出。(4)强大的链接能力XML的链接机制Xlink和引用机制Xpointer可以定义双向链接、多目标链接、扩展联结和两个文档间链接,使得数据之间的联系更加方便。XML的如下特点较好地适合了半结构化数据的管理需求:734.3.6基于B/S模式的数据库系统的工作方式和工作过程(1)基于B/S模式的数据库系统的工作方式1)简单式的B/S模式所谓的简单式是指基于浏览器的B/S模式,它是利用HTML页面在用户的计算机上表示信息。这种模式只完成一个基础功能:即Web浏览器显示由HTML写的文档、图片、声音和图像,而Web服务器则是将Web页面发送给浏览器的具有特殊目的的文件服务器。4.3.6基于B/S模式的数据库系统的工作方式和工作过程742)交互式的B/S模式在这种模式中,Web服务器的作用最终体现在对内容特别是动态内容的提供上,它主要负责同Web浏览器交互时提供动态产生的HTML文档。此外还提供诸如XML格式的应用数据。实现Web动态内容的技术主要有:①CGI,它根据用户输入的请求动态地传送HTML数据。②动态服务器页面(ActiveServerPages,ASP)技术。③PHP技术。PHP技术是由一套放在HTML文档里的附加的代码标记组成,它是专为开发Web网页而设置的,所以用它开发的应用简洁有效。2)交互式的B/S模式753)分布式的B/S模式在分布式的B/S模式下,无需下载HTML页面,客户程序可以在任何支持Java的浏览器(如目前的IE)上执行Applet。当Web服务器将含有JavaApplet的页面下载到浏览器时,Applet在浏览器中运行并通过构件(Component)支持的通信与传输服务器上的小服务程序(Servlet)通信会话。这些小服务程序收到信息后,经过JDBC、ODBC或本地方法向数据库服务器发出请求,数据库服务器收到信息后执行相应的处理,再将结果数据传送给Servlet,最后将结果送到浏览器中显示给用户。3)分布式的B/S模式76(2)基于B/S模式的数据库系统的工作过程1)连接Web浏览器与Web服务器建立连接,打开一个称为Socket(套接字)的虚拟文件,此文件的建立标志着连接成功。2)请求Web浏览器通过Socket向Web服务器提交请求。3)应答Web浏览器提交请求后,通过HTTP协议传送给Web服务器。Web服务器接到后,进行事务处理,处理结果又通过HTTP传回给Web浏览器,从而在Web浏览器上显示出所请求的页面。4)关闭连接当应答结束后,Web浏览器与Web服务器必须断开,以保证其它Web浏览器能够与Web服务器建立连接。(2)基于B/S模式的数据库系统的工作过程77Web服务器的处理过程是一个完整的逻辑阶段。其处理的过程大致为:1)浏览器将用户信息传递给Web服务器;2)Web服务器运行CGI程序;3)CGI程序通过CGI数据库网关对Web数据库进行操作;4)CGI程序将数据库操作结果返回给Web服务器;5)Web服务器将结果数据传递给浏览器;6)浏览器将数据库操作的结果显示给用户。Web服务器的处理过程是一个完整的逻辑阶段。其处理的过程大致784.3.7C/S模式与B/S模式的数据库系统的比较
C/S模式的数据库系统一般是一种两层结构的系统,它将事务分开进行处理,实现了网络的分布式计算。综合起来,基于C/S模式的数据库系统具有以下优点:(1)运行性能高(2)便于最终用户使用(3)具有多功能的应用程序开发接口(4)开放的体系结构(5)良好的可扩充性4.3.7C/S模式与B/S模式的数据库系统的比较C/79然而,C/S模式在系统的集成与维护、操作界面一致性、系统的扩展性等方面都存在明显的局限性,所以在Internet/Intranet技术环境里,它逐渐被新的B/S模式所取代。然而,C/S模式在系统的集成与维护、操作界面一致性、系统的80
基于B/S模式的数据库系统具有如下突出优点:(1)客户端的要求降低:客户端不再负责数据库的存取和复杂数据计算等的任务,只进行显示。(2)易于维护、易于升级:只需更新服务器端的软件。(3)用户操作使用简便:用户无需培训便可直接使用浏览器,利于推广。(4)更适合于网上发布信息(5)较高的运行效率基于B/S模式的数据库系统具有如下突出优点:81B/S模式的弱点主要表现在:由于是三层的结构,网络通讯量不仅包括客户机与Web服务器之间的通讯量,而且也包括Web服务器与数据库服务器之间的通讯量。因而网络通讯量较大,使得运行速度变慢。同时由于传统的C/S系统大量存在,积累了大量的信息和应用,将这些应用全部转向B/S系统也是一种长期而艰巨的任务。B/S模式的弱点主要表现在:由于是三层的结构,网络通讯824.4两种模式的网络数据库系统的应用实例分析4.4.1基于C/S模式的数据库系统的应用实例问题描述:设某个商业集团数据库中有三个实体集:“商品”实体集(商品号,商品名,规格,单价等);“商店”实体集(商店号,商店名,地址等);“供应商”实体集(供应商编号,供应商名,地址等)。联系:供应商与商品间存在“供应”联系,每个供应商可供应多种商品,每种商品可向多个供应商订购,供应商供应商品有月供应量;商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品可在多个商店中销售,商店销售商品有计划数。4.4两种模式的网络数据库系统的应用实例分析4.4.1基831需求分析有三个实体类型和两个联系类型,按照3NF的要求,需要建立五个表来表示这三个实体类型和两个联系类型,即:good(gno,gname,gmodel,price);provider(pno,pname,paddress);shop(sno,sname,saddress);provide(pno,gno,msup);sell(sno,gno,mplan)。1需求分析842数据库设计设计的步骤是:首先在数据库服务器中建立数据库,然后在新建的数据库中建立所需要的表。并使用SQL语言对数据库进行添加、修改、更新等操作。2数据库设计853在数据库服务器端的建立数据库
1)数据库的建立
数据库的建立可以直接在企业管理器中打开SQLServer组中相应的实例组,然后右键点击“数据库”按钮,在弹出菜单中选择“新建数据库”,如图4.8所示。所建立的数据库存放在SQLServer的安装目录下,如果要改变数据库的存放路径,可以在“数据库属性”对话框的数据文件和事务日志页中修改其数据文件和事务日志文件的存放位置。3在数据库服务器端的建立数据库862)
表的建立展开所建的数据库,右键点击“表”,在弹出菜单中选择“新建表”,在如图4.10所示的对话框中输入相应的列名、列的数据类型、长度和是否允许空。如果要将该列名设为主键,则在列名左边方格上点击右键,在弹出菜单中选择“设置主键”。最后在右键的弹出菜单中选择“保存”,为该表起一个名称就可以把该表保存起来。2)
表的建立873)用户注册与授权
建立好数据库后,用户还不能立即访问该数据库,还需要经过SQLServer登录认证、数据库访问授权和数据库对象的安全性等三个方面的认证。①SQLServer的登录认证②数据库访问授权③数据库对象的安全性用户必须在新建的数据库系统中注册,建立其用户名和登录口令,才能登录到数据库服务器。当要访问其中的某一数据库时,还要在所要访问的数据库上注册,并获得对基本表和视图相应的访问权限,才能存取该数据库上的数据。3)用户注册与授权88
SQLServer的登录认证的设置方式是:打开“安全性”/“登录”,找到相应的用户登录帐号,在这个登录帐号点击鼠标右键,选择弹出菜单中的“属性”,为这个登录帐号设置访问某些数据库的权限。数据库对象的安全性:在创建一个数据库对象时,创建者将自动拥有对该数据库对象的所有权,即可以完全控制该对象。当一个非数据库拥有者想要访问数据库中的对象时,必须事先由数据库拥有者赋予该用户对指定对象的操作权限。具体的操作是:在企业管理器中展开所要访问的数据库,打开“用户”,右键单击相应的用户名,并在快捷菜单中选择属性,单击“权限”按钮,在需要的访问权限上打勾。也可以用T-SQL语句中的GRANT、DENY、REVOKE三种命令来管理权限。SQLServer的登录认证的设置方式是:894建立数据源
为了建立客户应用系统与数据库服务器之间的连接,方便访问数据库,需要在客户机端和数据库服务器端中设置相同的数据源(DataSource)。数据源由数据、数据库系统、操作系统及网络系统组成。数据源所包含的数据库引擎完成所需的数据库操作。数据源的建立可通过ODBC来完成。在ODBC中配置数据源的具体方法如下:1)在客户机上打开“控制面板”,选中“数据源(ODBC)”(WindowsNT或Windows98),或“管理工具”/“数据源(ODBC)”(Windows2000),选择“添加”,ODBC数据库驱动程序类型为“SQLSERVER”;4建立数据源902)在出现的“创建到SQLSERVER的新数据源”对话框中,输入数据源的名称为“enterprise”所连接的服务器名称为数据库服务器名称。
3)单击“下一步”按钮,在如图4.13所示的对话框中选择登录的方式、用户名和登录密码。4)单击“下一步”按钮,在如图4.14所示的对话框中选择要登录访问的数据库名称。5)单击“下一步”按钮,单击“完成”按钮,最后在出现的“ODBCMicrosoftSQLServer安装”中,单击“测试数据源”,测试数据源是否已连接成功。2)在出现的“创建到SQLSERVER的新数据源”对话框中915客户机端应用程序在基于C/S模式的数据库系统中,客户机主要是提供用户访问数据库的程序界面,客户机端应用系统的开发与一般的应用软件系统的开发基本上相同。可以采用各种高级语言来开发用户界面,包括PowerBuilder、Delphi、VC++、VisualBasic等都可以作为客户端的应用程序设计语言。使用这些高级语言都可以很方便地建立应用系统的功能菜单,建立数据窗口,查询数据,创建查询结果的分析图和报表。5客户机端应用程序924.4.2基于B/S模式的数据库系统的应用实例1Microsoft公司的解决方案
ASP是Microsoft提出的一种比较新的应用程序开发环境。ASP是服务器端的脚本执行环境,可用来产生和执行动态的高性能的Web服务器程序。ASP可以与常规HTML集成,后台可与WindowsNT系统上配套的SQL数据库相连,只需编写少量的代码,即可在页面上执行一系列的数据库访问操作。开发者利用ActiveX脚本语言组合HTML代码,可利用本地服务器或远程服务器上运行的组件来存取数据库。4.4.2基于B/S模式的数据库系统的应用实例1Mic93Web服务器采用Microsoft的IIS,Web服务器与Web数据库的链接采用的IIS内嵌的动态链接库IDC,由它通过ODBC来访问各类数据库。IDC使用两类文件:.IDC文件和.HTX文件。IDC文件包含有构造数据库连接所必需的参数信息,如数据库名、用户名、口令和SQL语句等,它主要用来指定作用于数据库上的具体操作。HTX文件则提供了一种直观的方法来说明如何将数据插入到WWW页面中。IDC文件对数据库的操作结果和HTX文件一起被处理,并一起产生作为对用户响应的HTML代码。Web服务器采用Microsoft的IIS,Web服务器与94ASP具有制作简单、无需变异、独立于浏览器和与任何脚本语言兼容等特点,可用任何无格式的文本编辑器,集成在HTML中直接运行。它属于ActiveX技术中的服务器端技术,效率高、编程容易。ASP具有制作简单、无需变异、独立于浏览器和与任何脚本语言95
2Sun公司的解决方案
Java支持数据库的访问,是因为SUN公司提供了JDBC。正是JDBC定义了Java与数据库之间的接口类库(Java.sql包),它是Java语言中执行SQL语句的API。JDBC由一系列类和接口所组成,这些类和接口均是由Java语言写成的,通过它一个程序开发人员可以在Java语言中建立与数据库的链接,执行SQL语句和处理SQL语句返回的结果。运用JDBC,一个程序开发人员很容易用SQL语句访问异构数据库,同时采用Java语言编写应用程序,具有平台无关性,不用为不同的平台编写不同的应用程序。
2Sun公司的解决方案96通过JDBC访问数据库的工作方式如图4.16所示:客户端首先使用浏览器访问本地或异地的Web服务器,下载Java代码文件,并将Applet相关类的字节码文件和JDBC接口字节码文件下栽到客户端,然后与Web服务器脱离;接着Applet根据数据库地址、端口号和账号与数据库服务器连接进行交互。用户与数据库服务器的交互是由浏览器直接完成的。在客户端上运行的JavaApplet通过JDBC技术可以绕过WWW服务器,直接和数据库服务器连接,并直接把带有结果的HTML页返回客户机浏览器。通过JDBC访问数据库的工作方式如图4.16所示:客户97采用JDBC技术,在JavaApplet中访问数据库的优点在于:①直接访问数据库,不再需要Web数据库的介入,从而避开了CGI方法的一些局限性;②用户访问控制可以由数据库服务器本地的安全机制来解决,提高了安全性;③JDBC是支持基本SQL功能的一个通用底层的应用程序接口,在不同的数据库功能的层次上提供了一个统一的用户界面,为跨平台跨数据库系统进行直接的Web访问提供了方案,从而克服了API方法一些缺陷;④可以方便地实现与用户交互,提供丰富的图形功能和声音、视频等多媒体信息功能。采用JDBC技术,在JavaApplet中访问数据库的优点98由于JDBC技术的可操作性、可维护性和安全性及事务处理能力、使用效率都比较高,因此具有很大的优势。JDBC技术存在的不足:由于它必须从服务器端下载到客户端才能被解释执行,所以响应时间慢导致网上负载增加,开发与运行的效率都不高。由于JDBC技术的可操作性、可维护性和安全性及事务处理能力、99第四章网络数据库系统的体系结构第四章网络数据库系统的体系结构1004.1概述4.2基于C/S模式的数据库系统4.3基于B/S模式的数据库系统4.4两种模式的网络数据库系统的应用实例分析4.1概述101本章摘要
目前网络数据库系统主要是按照客户机/服务器(C/S)模式或者浏览器/服务器(B/S)模式来建立的。本章将介绍C/S体系结构和B/S体系结构的工作原理和技术特点,以及基于C/S模式和B/S模式的网络数据库的基本概念、工作过程和关键技术。通过本章的学习,大家应该对基于C/S模式和基于B/S模式的网络数据库系统的基本概念、组成结构、实现技术和技术特点有一个比较全面的了解。本章摘要目前网络数据库系统主要是按照客户机/服务器(C1024.1.1二层结构的C/S系统所谓的C/S体系结构是指由一个或多个客户机和一个或多个服务器与底层的操作系统及通讯系统一起形成的一个允许分布式计算、分析和表示的复合系统。其中的一个或多个计算机提供服务,称为服务器(Server);其他的计算机则接受服务,称为客户机(Client)。C/S结构模式经历了两个阶段:即两层结构的C/S系统和多层结构的C/S系统。4.1概述4.1.1二层结构的C/S系统所谓的C/S体系结构是103C/S结构模式将用户界面逻辑和应用处理逻辑通过前端开发工具融合在一起,将一个复杂的计算机应用任务分解成多个不同的子任务,把它们分配到具有前端(客户机)和后端(服务器)的分布式计算机环境中,在前端客户机上运行应用程序,而后端服务器则提供某些特定服务。服务器提供的服务有数据库服务、文件服务和通信服务等。工作过程一般是:客户机提出数据服务请求,服务器把按照请求处理后的数据传送给客户。C/S结构模式将用户界面逻辑和应用处理逻辑通过前端开发工具1041二层结构的C/S系统结构客户机通过向服务器请求数据服务,做必要的处理,将结果显示给用户,是一个面向用户的接口或应用程序;而服务器负责监听客户的数据服务请求,为客户的请求提供所要求的服务,包括数据存取、数据加工和处理。1二层结构的C/S系统结构客户机通过向服务器请求105C/S体系结构的特点体现在以下方面:(1)数据库安装在服务器一端,数据库的完整性和一致性有了结构上的保证;(2)客户机为应用提供图形接口,而应用的数据处理部分由服务器完成。这样,一个应用分成了两个部分,分布于网络上,便于充分发挥客户机和服务器的处理能力;(3)网上仅仅传输记录而非文件,与集中式系统相比系统整体性能有了质的飞跃,网络吞吐能力也大为增强;(4)系统升级容易,可塑性好,能保护已有的投资。C/S体系结构的特点体现在以下方面:106尽管两层结构的C/S系统实现了功能的分布,但它仅能在各自的客户机和数据服务器之间使用,功能分布还不均匀,系统的性能、可伸缩性和可扩展性较差,使得系统难于维护,不能支持大量用户的访问和高容量事务处理的应用。为此,人们引入了三层的C/S结构模式,即在客户端和数据库服务器之间增加一个应用服务器。尽管两层结构的C/S系统实现了功能的分布,但它仅能在各1074.1.2三层结构的C/S系统在三层C/S结构中,服务器端被分为两部分:即应用服务器和数据库服务器,形成“客户机——应用服务器——数据库服务器”模式。4.1.2三层结构的C/S系统在三层C/S结构中,服务器108客户机主要提供用户登陆界面,负责用户与应用程序之间的对话;应用服务器包括了从客户端划分出来的一部分应用和从原来数据库服务器中划分过来的一部分工作,主要实施商业和应用逻辑,并基于商业规则确认从客户端得到的数据,响应客户端的请求,完成业务处理或复杂计算;数据库服务器执行存储数据和处理数据的功能,它分析功能服务器送来的SQL命令,实现对数据库的读写等操作,并将结果返给功能服务器,再传给客户端。客户机主要提供用户登陆界面,负责用户与应用程序之间的对话;109三层体系结构的优势在于:(1)在应用服务器中封装了商业规则,不同的客户程序可以共享同一中间层,不必由每个客户程序单独实现商业逻辑。(2)可以把一些敏感的功能放在有严密保护措施的应用程序服务器层上,不至于使用户界面变得复杂。(3)实现了分布式数据处理。即可以把一个应用程序分布在几个机器上运行,这样就可以提高应用程序的性能。同时,通过冗余配置还可以保证不会因为局部故障而导致整个应用程序崩溃,有利于网络系统的安全。三层体系结构的优势在于:110三层体系结构的数据库系统优势在于:(1)系统可根据需要把各个服务分别或重复地分布在不同的计算机上,使整个系统的工作量平衡分配到网络中,从而实现最佳的性能;(2)由应用服务器统一管理数据库连接、数据接收、数据同步、事务处理和线程调度等工作,因此可最大限度地保障了数据的统一、完整和准确性能;(3)对系统的修改或升级可简化到只对某个特定部件的更换,使系统的维护和升级更加容易;三层体系结构的数据库系统优势在于:111(4)适用范围广且支持Intranet/Internet,并具有很强的开放性;(5)实现大用户量、大吞吐量下的负载平衡。三层结构将应用纵向均匀分布在客户端、应用服务器和数据库服务器上,横向分布在多个应用服务器和数据库服务器上,应用的分布实现了负载的平衡。因此,在大用户量、大吞吐量情况下,仍能迅速响应每个客户端的需求。(4)适用范围广且支持Intranet/Inte112C/S结构的弱点:第一,C/S结构的计算能力过于分散,网络中服务器和客户机的数目正发生“细胞”分裂,使得系统的管理费用以几何级数的方式增长;第二,C/S结构中数据库信息的使用一般只限于局域网的范围内,无法利用Internet的网络资源;第三,在C/S结构中,无论多小的企业都必须安装自己的服务器,而服务器和服务器软件的管理和维护都是非常复杂的工作,需要专门人员负责,小企业往往无力购买高性能的服务器和聘任专门的技术人员,因此C/S结构的网络数据库系统不利于小企业计算机应用的发展。C/S结构的弱点:1134.1.3
B/S模式及其工作原理目前Web技术与数据库管理系统(DBMS)相互融合领域的研究已成为热点方向之一,数据库厂家和WEB公司也纷纷推出各自的产品和中间件支持Web技术和DBMS的融合,将两者取长补短,发挥各自的优势,使用户可以在Web浏览器上方便地检索数据库的内容。所谓Web数据库管理系统是指基于Web模式的DBMS的信息服务,充分发挥DBMS高效的数据存储和管理能力,以Web这种浏览器/服务器(B/S)模式为平台,将客户端融入统一的Web浏览器,为Internet用户提供使用简便、内容丰富的服务。Web数据库管理系统必将成为Internet和Intranet提供的核心服务,为Internet上的电子商务提供技术支持。4.1.3
B/S模式及其工作原理目前Web技术与数114B/S结构是一种全新的软件系统构造技术,它主要是利用了比较成熟的WWW浏览器技术,结合浏览器的多种Script语言(如VBScript,JavaScript等等)和ActiveX技术,通过浏览器实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本。(1)B/S结构模式B/S结构是一种全新的软件系统构造技术,它主要是利用了115
基于B/S的网络数据库应用系统通常采用三层或多层结构。下图给出的是“浏览器——Web服务器——数据库服务器”三层结构,用户完全通过WWW浏览器登录,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。基于B/S的网络数据库应用系统通常采用三层或多层结构116图4.4给出的是“浏览器——Web服务器——中间件——数据库服务器”多层结构,这一结构中的中间件通常通过定义统一的数据模型来解决不同数据库之间的数据转化问题,确保客户机和服务器之间信息查询和结果返回的顺畅性。目前流行的B/S结构多采用多层结构。图4.4给出的是“浏览器——Web服务器——中间件——数据库117B/S结构模式下的工作过程大致如下:当浏览器向某一Web服务器提出服务请求后,Web服务器首先对用户身份进行验证,然后用文本传输协议(HTTP)把所需的文件资料传给客户机;客户机接收传来的文件资料,并按照HTTP格式把它显示在Web浏览器上。Web服务器既是一个浏览服务器,又是一个应用服务器,整个应用逻辑和商业规则都可驻留其上,所以它是整个结构的核心。多层B/S结构实际上引入了中间件,将业务处理交给中间件处理。这些中间件都是一些常用的数据库处理技术,如CGI,API,ASP,JDBC等,其中CGI是目前的标准接口。B/S结构模式下的工作过程大致如下:当浏览器向某一Web服118(2)B/S模式的工作原理在下图中,客户机的Web浏览器通过使用URL来指定所需要的HTML文件的惟一地址,解释HTML文件,并展示给用户。当用户通过浏览器输入URL文件请求时,Web服务器通过采用的HTTP协议获得用户输入的数据,如果不要访问数据库则按下图①方向运行;如果用户请求访问数据库,则按②方向运行。(2)B/S模式的工作原理在下图中,客户机的Web浏览119HTML文件HTML文件HTML文件返回数据SQL语句HTML文件HTML文件HTML文件返回数据SQL语句120
B/S结构模式和C/S结构模式都是以请求/问题方式来执行的,但传统的C/S模式需在客户端集中了大量应用软件,而B/S模式则是一种基于Web的三级或多级C/S结构,客户端只需有统一的浏览器软件。总体上说,B/S体系结构具有以下优势:1)统一的浏览器访问界面。2)开发效率高。3)具有极强的伸缩性。4)开放性。5)减少了客户端维护工作量。B/S结构模式和C/S结构模式都是以请求/问题1214.2基于C/S模式的数据库系统基于C/S模式的网络数据库系统以数据库服务器为中心,不仅要对数据库进行查询,还要对数据库进行大量更新,同时还要保证多个并发用户工作时的响应速度和数据完整性。本节将介绍基于C/S模式的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年化工厂场地租赁合同:租赁合同的知识产权保护
- 2024年夫妻双方感情不和自愿解除婚姻协议版B版
- 2024年全球贸易条款专业翻译协议版B版
- 2024医疗器械质保提交协议版B版
- 2024年度个人独资企业股权让渡事宜合同:权益转让的法律约定2篇
- 2024年度商用增压泵安装协议标准文本版
- 2024国际标准英文采购合同模板版B版
- 2024年国际劳务派遣协议样本版
- 2024年兼职工作人员劳动协议样本一
- 2024安置房买卖协议合同
- 2024年四川省公务员录用考试《行测》试题及答案解析
- 外山中心小学学校矛盾纠纷排查化解工作方案
- (新课标新教材)2024秋新人教版数学小学一年级上册数学第 四单元第1课时《10的再认识》说课稿
- 税务局专业基础知识题库单选题100道及答案解析
- 中国茶文化完整版本
- 2024-2025学年初中信息技术(信息科技)七年级上册清华大学版(2012)教学设计合集
- 无人驾驶航空器安全操作理论复习测试附答案
- 2025届高考专题复习:句式变换之整散句和长短句+课件
- 平移和旋转(教学设计)-2024-2025学年三年级上册数学苏教版
- 客运未来:智能转型
- 6《人大代表为人民》(第1课时)(教学设计)2024-2025学年统编版道德与法治六年级上册
评论
0/150
提交评论