《chap4网络数据库系统体系结构课件.ppt》由会员分享,可在线阅读,更多相关《chap4网络数据库系统体系结构课件.ppt(99页珍藏版)》请在三一办公上搜索。
1、第四章 网络数据库系统的体系结构,4.1 概述4.2 基于C/S模式的数据库系统4.3 基于B/S模式的数据库系统4.4 两种模式的网络数据库系统的应用实例分析,本章摘要,目前网络数据库系统主要是按照客户机/服务器(C/S)模式或者浏览器/服务器(B/S)模式来建立的。本章将介绍C/S体系结构和B/S体系结构的工作原理和技术特点,以及基于C/S模式和B/S模式的网络数据库的基本概念、工作过程和关键技术。 通过本章的学习,大家应该对基于C/S模式和基于B/S模式的网络数据库系统的基本概念、组成结构、实现技术和技术特点有一个比较全面的了解。,4.1.1 二层结构的C/S系统,所谓的C/S体系结构是
2、指由一个或多个客户机和一个或多个服务器与底层的操作系统及通讯系统一起形成的一个允许分布式计算、分析和表示的复合系统。 其中的一个或多个计算机提供服务,称为服务器(Server);其他的计算机则接受服务,称为客户机(Client)。C/S结构模式经历了两个阶段:即两层结构的C/S系统和多层结构的C/S系统。,4.1概述,C/S结构模式将用户界面逻辑和应用处理逻辑通过前端开发工具融合在一起,将一个复杂的计算机应用任务分解成多个不同的子任务,把它们分配到具有前端(客户机)和后端(服务器)的分布式计算机环境中,在前端客户机上运行应用程序,而后端服务器则提供某些特定服务。服务器提供的服务有数据库服务、文
3、件服务和通信服务等。 工作过程一般是:客户机提出数据服务请求,服务器把按照请求处理后的数据传送给客户。,1 二层结构的C/S系统结构,客户机通过向服务器请求数据服务,做必要的处理,将结果显示给用户,是一个面向用户的接口或应用程序;而服务器负责监听客户的数据服务请求,为客户的请求提供所要求的服务,包括数据存取、数据加工和处理 。,C/S体系结构的特点体现在以下方面:(1) 数据库安装在服务器一端,数据库的完整性和一致性有了结构上的保证;(2)客户机为应用提供图形接口,而应用的数据处理部分由服务器完成。这样,一个应用分成了两个部分,分布于网络上,便于充分发挥客户机和服务器的处理能力; (3)网上仅
4、仅传输记录而非文件,与集中式系统相比系统整体性能有了质的飞跃,网络吞吐能力也大为增强;(4)系统升级容易,可塑性好,能保护已有的投资。,尽管两层结构的C/S系统实现了功能的分布,但它仅能在各自的客户机和数据服务器之间使用,功能分布还不均匀,系统的性能、可伸缩性和可扩展性较差,使得系统难于维护,不能支持大量用户的访问和高容量事务处理的应用。为此,人们引入了三层的C/S结构模式,即在客户端和数据库服务器之间增加一个应用服务器。,4.1.2 三层结构的C/S系统,在三层C/S结构中,服务器端被分为两部分:即应用服务器和数据库服务器,形成“客户机应用服务器数据库服务器”模式。,客户机主要提供用户登陆界
5、面,负责用户与应用程序之间的对话; 应用服务器包括了从客户端划分出来的一部分应用和从原来数据库服务器中划分过来的一部分工作,主要实施商业和应用逻辑,并基于商业规则确认从客户端得到的数据,响应客户端的请求,完成业务处理或复杂计算;数据库服务器执行存储数据和处理数据的功能,它分析功能服务器送来的SQL命令,实现对数据库的读写等操作,并将结果返给功能服务器,再传给客户端。,三层体系结构的优势在于:(1)在应用服务器中封装了商业规则,不同的客户程序可以共享同一中间层,不必由每个客户程序单独实现商业逻辑。(2)可以把一些敏感的功能放在有严密保护措施的应用程序服务器层上,不至于使用户界面变得复杂。(3)实
6、现了分布式数据处理。即可以把一个应用程序分布在几个机器上运行,这样就可以提高应用程序的性能。同时,通过冗余配置还可以保证不会因为局部故障而导致整个应用程序崩溃,有利于网络系统的安全。,三层体系结构的数据库系统优势在于: (1) 系统可根据需要把各个服务分别或重复地分布在不同的计算机上,使整个系统的工作量平衡分配到网络中,从而实现最佳的性能;(2) 由应用服务器统一管理数据库连接、数据接收、数据同步、事务处理和线程调度等工作,因此可最大限度地保障了数据的统一、完整和准确性能;(3) 对系统的修改或升级可简化到只对某个特定部件的更换,使系统的维护和升级更加容易;,(4) 适用范围广且支持Intra
7、net/ Internet,并具有很强的开放性; (5) 实现大用户量、大吞吐量下的负载平衡。三层结构将应用纵向均匀分布在客户端、应用服务器和数据库服务器上,横向分布在多个应用服务器和数据库服务器上,应用的分布实现了负载的平衡。因此,在大用户量、大吞吐量情况下,仍能迅速响应每个客户端的需求。,C/S结构的弱点: 第一,C/S结构的计算能力过于分散,网络中服务器和客户机的数目正发生“细胞”分裂,使得系统的管理费用以几何级数的方式增长; 第二,C/S结构中数据库信息的使用一般只限于局域网的范围内,无法利用Internet的网络资源; 第三,在C/S结构中,无论多小的企业都必须安装自己的服务器,而服
8、务器和服务器软件的管理和维护都是非常复杂的工作,需要专门人员负责,小企业往往无力购买高性能的服务器和聘任专门的技术人员,因此C/S结构的网络数据库系统不利于小企业计算机应用的发展。,4.1.3 B/S模式及其工作原理,目前Web技术与数据库管理系统(DBMS)相互融合领域的研究已成为热点方向之一,数据库厂家和WEB公司也纷纷推出各自的产品和中间件支持Web技术和DBMS的融合,将两者取长补短,发挥各自的优势,使用户可以在Web浏览器上方便地检索数据库的内容。 所谓Web数据库管理系统是指基于Web模式的DBMS的信息服务,充分发挥DBMS高效的数据存储和管理能力,以Web这种浏览器/服务器(B
9、/S)模式为平台,将客户端融入统一的Web浏览器,为Internet用户提供使用简便、内容丰富的服务。Web数据库管理系统必将成为Internet和Intranet提供的核心服务,为Internet上的电子商务提供技术支持。,B/S结构是一种全新的软件系统构造技术,它主要是利用了比较成熟的WWW浏览器技术,结合浏览器的多种Script语言(如VBScript,JavaScript等等)和ActiveX技术,通过浏览器实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本。,(1) B/S结构模式,基于B/S的网络数据库应用系统通常采用三层或多层结构。下图给出的是“浏览器Web服务器数据库
10、服务器”三层结构,用户完全通过WWW浏览器登录,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。,图4.4给出的是“浏览器Web服务器中间件数据库服务器”多层结构,这一结构中的中间件通常通过定义统一的数据模型来解决不同数据库之间的数据转化问题,确保客户机和服务器之间信息查询和结果返回的顺畅性。目前流行的B/S结构多采用多层结构。,B/S结构模式下的工作过程大致如下:当浏览器向某一Web服务器提出服务请求后,Web服务器首先对用户身份进行验证,然后用文本传输协议(HTTP)把所需的文件资料传给客户机;客户机接收传来的文件资料,并按照HTTP格式把它显示在Web浏览器上。Web服务器既是
11、一个浏览服务器,又是一个应用服务器,整个应用逻辑和商业规则都可驻留其上,所以它是整个结构的核心。多层B/S结构实际上引入了中间件,将业务处理交给中间件处理。这些中间件都是一些常用的数据库处理技术,如CGI,API,ASP,JDBC等,其中CGI是目前的标准接口。,(2) B/S模式的工作原理,在下图中,客户机的Web浏览器通过使用URL来指定所需要的HTML文件的惟一地址,解释HTML文件,并展示给用户。当用户通过浏览器输入URL文件请求时,Web服务器通过采用的HTTP协议获得用户输入的数据,如果不要访问数据库则按下图方向运行;如果用户请求访问数据库,则按方向运行。,HTML文件,HTML文
12、件,HTML文件,返回数据,SQL语句,B/S结构模式和C/S结构模式都是以请求/问题方式来执行的,但传统的C/S模式需在客户端集中了大量应用软件,而B/S模式则是一种基于Web的三级或多级C/S结构,客户端只需有统一的浏览器软件。总体上说,B/S体系结构具有以下优势: 1)统一的浏览器访问界面。 2)开发效率高。 3)具有极强的伸缩性。 4)开放性。 5)减少了客户端维护工作量。,4.2 基于C/S模式的数据库系统,基于C/S模式的网络数据库系统以数据库服务器为中心,不仅要对数据库进行查询,还要对数据库进行大量更新,同时还要保证多个并发用户工作时的响应速度和数据完整性。本节将介绍基于C/S模
13、式的网络数据库系统的需求、功能划分、系统结构和主要关键技术。,4.2.1 基于C/S模式的数据库系统的需求,(1)联机事务处理(OLTP)的需求 :要求系统的吞吐量要高,响应时间要短,能够均衡地分配负载,减少网络传输量。对数据的完整性和可用性也有很高要求。 (2)企业管理模式的改变 :从集中式走向分布式,由孤立的系统走向集成的系统,由总站级管理走向企业的全局性管理。 (3)高端商用市场的客户对系统的可扩展性、可管理性、安全性和高可用性的需求。 (4)对数据和服务的集成要求 (5)开放的系统结构要求 (6)信息的处理、获取、发布、存储等高的性能要求。,4.2.2 基于C/S模式的数据库管理系统的
14、功能划分,在C/S模式的数据库系统中,客户机最基本的功能是向服务器发出请求数据服务,在做一些必要的处理后,最后将结果显示给用户。服务器中一般运行有网络操作系统,及数据库管理系统软件,主要功能是建立进程和网络服务地址,监听用户的调用,处理用户的请求。并不是所有的系统中客户机、服务器的功能划分仅其基本功能。在一个单服务器的系统环境下,客户机、服务器的功能划分可以有三种不同的划分方案,它们是CS结构、RU结构、EWS结构。,(1) CS结构:应用的处理(包括实现用户界面与表示逻辑)由客户端完成,数据访问和事务处理由服务器完成。(2) RU结构:客户机执行了部分DBMS的功能。主要完成查询优化和查询处
15、理。(3) EWS结构:每个客户都可通过对查询结果进行缓存建立其局部数据库,而且在客户端都有一个功能完整的数据库系统。减少了网络传输和服务器端的数据输入/输出。,4.2.3 单服务器系统和多服务器系统,C/S模式的数据库系统可以分成单服务器结构和多服务器结构。这种划分方法是按照将不同任务分布到客户平台和服务器平台的形式。它们的区别体现为单个客户请求得到服务响应过程中所涉及的客户和服务器数目不同。单服务器结构在网络中只有一台数据库服务器,有多台客户机;多服务器结构是在网络中具有多台数据库服务器和多台客户机。,(1)单服务器系统模式 数据集中于一台数据库服务器中,客户机向这台服务器提出请求,并收到
16、响应。所有数据由一个服务器管理,因此显得简单、方便、有效。 因为只有一台数据库服务器,它需要处理大量数据并能支持许多并发用户访问,所以这一服务器通常是大型机。建立这样一个系统一次性投资较大,且由于数据处理相对集中,所有用户都要通过网络来访问一个服务器,不仅容易造成瓶颈,而且数据传输的开销较大,对主机的要求也比较高。,(2)多服务器系统模式 随着数据库应用的不断发展,规模的不断扩大,有时客户机也保留数据的备份以减少网络传输量。渐渐就形成了数据分散存储的方法,把数据库分成多个,建立在多台计算机上,就形成了多服务器系统模式。多服务器模式是指在执行单独一个或多个客户请求中,多个服务器以对客户透明方式参
17、与完成,即:客户调用某个服务器操作,在该服务器执行操作过程中,又调用其它服务器一起操作,为之提供服务。,在多服务器系统中,数据分布在多个服务器中,多个用户共享多个服务器中的数据。多个服务器之间协同合作,共同完成客户对数据的透明访问要求。具有多个服务器的系统的数据处理机制较为复杂,基本可以采取分布式数据库中所采取的技术处理,以保证用户不用考虑数据的存放方式和在哪里存放。,与单服务器系统模式相比,多服务器系统模式具有以下特点:1)物理分布性 数据存储在计算机网络的多个场地上;2)逻辑整体性 数据物理上分布,但逻辑上是一个整体,被所有用户所共享,由一个数据库管理系统来统一管理;3)场地自治性 各场地
18、上的数据由本地的数据库管理系统管理,具有自治处理能力,能完成本场地的局部应用;4)场地之间存在协作性 各场地虽然具有高度的自治性,但是又是相互协作构成一个整体。,多服务器系统模式存在的问题:1) 由于数据源的非唯一性,客户应用就必须考虑采用适当的应用程序设计接口或访问策略来达到目的。2) 存在多个并发的事务处理时,应保证多个服务器中的数据一致性。3) 系统开销尤其是通信部分的开销较大,在远程网情况下,传输速度不高时,响应的速度显著变慢。,4.2.4 基于C/S模式的数据库系统的一些关键技术,(1) 开放数据库互连ODBC ODBC是目前数据库互连访问的一个强有力的解决方案。ODBC的基本思想是
19、提供独立程序来提取数据信息,并具有向应用程序输入数据的方法。ODBC为应用程序和驱动模块提供了一种满足各自需要的应用程序设计接口(API),并且保持了与结构化查询语言(SQL)标准的一致性。客户通过ODBC标准函数向数据库服务器发出SQL请求,由ODBC数据库驱动程序完成向后端数据库提交SQL请求并将处理结果传送返回给应用程序。在服务器端则可采用不同的技术来实现对数据源的透明访问、支持多种网络协议和多种数据库平台。,ODBC接口的优势之一是互操作性,程序设计员可以在不指定特定数据源情况下创建ODBC应用程序。为保证标准性和开放性,ODBC结构分为以下四层:1)应用程序。2)驱动程序管理器。3)
20、驱动程序。4)数据源。,(2)JDBC(Java Database Connectivity) JDBC是SUN公司针对Java语言提出的与数据库连接的API标准,在不同的数据库功能模块的层次上提供一个统一的用户界面。与ODBC类似,JDBC是特殊类型的API,这些API支持对数据库的连接和基本的SQL功能,包括建立数据库连接、执行SQL语句、处理返回结果等。JDBC的结构同样有一个JDBC驱动程序管理器作为Java应用程序与数据库的中介,它把对数据库的访问请求转换和传送给下层的JDBC,或者转换为对数据库的固有调用。更多的实现方式是通过JDBC-ODBC桥接驱动程序,再转化为一个ODBC调用
21、,进行对数据库的操作。,(3) 存储过程技术 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数来执行它。存储过程与一般的程序过程一样,能够接受输入数据并返回结果值,返回操作成功与否的状态值等。一个存储过程所涉及的任何客体一旦被修改,都会自动导致该过程利用新的信息重新作编译。存储过程既可被重用又可被共享。,采用存储过程技术有以下好处:1)高性能 存储过程将完成一定功能的一组SQL语句存储在服务器中,而不是客户端,这样,在网络上传输的只是一个远程调用和最终的执行结果,大大减少了网络上的传输量,提高了系统的
22、性能。2)共享性 存储过程可以被多个用户共享使用,而且使用时可存放在磁盘缓冲区内,即多个用户可以使用同一个存储过程。3)提高应用开发效率 存储过程把用户和应用程序与数据源、网络和存取路径细节隔离开,使得非专业人员对于数据库服务器上的数据访问变得更加方便。,(4) 分布数据管理技术 在多个数据库服务器的C/S模式数据库系统中,数据分布在多个服务器上,为多个客户所共享,因此数据的管理比较复杂。通常采用的技术包括数据复制技术和两阶段提交协议。 1)数据复制和分布 支持某一服务器上的某些表中的数据复制和分布到其他远程数据库服务器结点上。 2)两阶段提交协议 用来协调参与分布式事务的多个服务器的活动,以
23、防止可能发生的数据不一致性。采用两阶段提交协议后,当系统发生故障时,各服务器利用各自有关的日志便可以进行恢复工作。,4.3基于浏览器/服务器模式的数据库系统,基于B/S模式的数据库系统以基于Web的B/S模式为平台,将客户端融入统一的Web浏览器中,为Internet用户提供使用简便、内容丰富的服务。因此这种在Web上使用的数据库也称为Web数据库。与平常的数据库相似,Web数据库不论是小型数据库(如Access, dBase等)还是大型数据库(如Oracle, Sybase, SQL Server等)均可被Web访问。客户可使用浏览器通过Internet或Intranet访问网络数据库,进行
24、数据的读出、写入、删除和修改等操作。,基于B/S模式的数据库系统要解决的关键问题是数据传递的安全性和事务性,因为HTTP本质上是一个无状态的连接,所以事务处理就变得非常重要,同时又因为整个事务是基于全球网络体系结构的,所以安全性也变成一个值得关注的问题。,4.3.1基于B/S模式的数据库系统体系结构,基于B/S模式的数据库系统具有三层或多层的体系结构,第一层为用户层,第二层为应用层,第三层为数据库层。,(1) 用户层 用户层负责处理用户的输入和向用户的输出,但不负责解释其含义(出于效率的考虑,它可能在向上传输用户输入前进行合法性验证)。这一层不需要安装什么设备与软件,只需要安装一个Web浏览器
25、,负责显示应用服务器端的运行结果,并借助于Java Applet、VBScript、JavaScript、ActiveX等技术进行一些简单的客户端事务处理。,(2) 应用层 该层就是Web应用服务器,是上下两层的纽带,建立实际的数据库连接。它负责接受远程或本地的页面请求,根据用户的请求生成SQL语句检索或更新数据库,然后运行服务器端脚本,借助于CGI、ADO等中间部件把数据请求发送到数据库服务器上以获取相关数据,然后把结果数据转化成HTML及各种脚本传回客户端的Web浏览器。 所有的应用系统、应用逻辑、控制都在应用层,系统的复杂性也主要体现在这一层。,(3) 数据库层 该层为数据库服务器,它存
26、储着大量的数据信息和数据逻辑。该层的任务是负责协调Web服务器请求,负责实际的数据存储和检索,管理数据库系统。所有与数据有关的安全、完整性控制、数据的一致性、并发操作等都是在第三层完成。 当前比较流行的Web数据库管理系统主要有SQL Server,MySQL,Oracle和Sybase等。这四种数据适应性强,性能优异,在国内得到了广泛的应用。,基于B/S模式的数据库系统是通过WWW访问数据库的,其优点在于:,借用现成的浏览器软件,无需开发数据库前端:如果能够通过WWW来访问数据库,我们就不需要开发客户端的程序,使用的数据库应用都可以通过浏览器来实现,界面统一,也减少了培训费用,能使广大用户很
27、方便地访问数据库信息。标准统一,开发过程简单:HTML是WWW信息的组织方式,是一种国际标准,使用的WWW服务器与HTML标准,开发者甚至只需学习HTML一种语言,使用者只需学习一种界面浏览器界面。交叉平台支持:几乎在各种操作系统上都有现成的浏览器可供使用,为一个WWW服务器书写的HTML文档,可以被所有平台的浏览器所浏览,实现了跨平台操作。,一般实现Web数据库系统的连接和应用可采取两种方法,一种是在Web服务器端提供中间件来连接Web服务器和数据库服务器,另一种是把应用程序下载到客户端并在客户端直接访问数据库。中间件负责管理Web服务器和数据库服务器之间的通信并提供应用程序服务,它能够直接
28、调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的动态HTML页面,或执行用户查询,并将查询结果格式化成HTML页面。通过Web服务器返回给Web浏览器。最基本的中间件技术有通过网关接口CGI和应用程序接口API两种。,Web数据库中间件结构,4.3.1.1 基于通用网关接口CGI,CGI是WWW服务器运行时外部程序的规范,按照CGI编写的程序可以扩展服务器的功能,完成服务器本身不能完成的工作,外部程序执行时可以生成HTML文档,并将文档返回WWW服务器。 CGI应用程序能够与浏览器进行交互作用,还可以通过数据库的API与数据库服务器等外部数据源进行通信,如一个CGI程序可以从数据
29、库服务器中获取数据,然后格式化为HTML文档后发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎使用的服务器软件都支持CGI,开发人员可以使用任何一种WWW服务器内置语言编写CGI,其中包括流行的C、C+、VB和Delphi等。,从体系结构上来看,用户通过Web浏览器输入查询信息,浏览器通过HTTP协议向Web服务器发出带有查询信息的请求,Web服务器按照CGI协议激活外部CGI程序,由该程序向DBMS发出SQL请求并将结果转化为HTML后返回给Web服务器。再由Web服务器返回给Web浏览器。 这种结构体现了客户/服务器方式的三层模型,其中Web服务器和CGI程序实际起到了HTML和
30、SQL转换的网关的作用。CGI的典型操作过程是:分析CGI数据;打开与DBMS的连接;发送SQL请求并得到结果;将结果转化为HTML;关闭DBMS的连接;将HTML结果返回给Web服务器。,4.3.1.1 基于通用网关接口CGI,基于Web的数据库访问利用已有的信息资源和服务器。其访问频率大,尤其是热点数据。但其主要的缺点是: 客户端与后端数据库服务器通信必须通过Web服务器,且Web服务器要进行数据与HTML文档的互相转换,当多个用户同时发出请求时,必然在Web服务器形成信息和发布瓶颈。 CGI应用程序每次运行都需打开和关闭数据库连接,效率低,操作费时; CGI应用程序不能由多个客户机请求共
31、享,即使新请求到来时CGI程序正在运行,也会启动另一个,CGI应用程序,随着并行请求的数量增加,服务器上将生成越来越多的进程。为每个请求都生成进程既费时又需要大量内存,影响了资源的使用效率,导致性能降低并增加等待时间; 由于SQL与HTML差异很大,CGI程序中的转换代码编写繁琐,维护困难; 安全性差,缺少用户访问控制,对数据库难以设置安全访问权限; HTTP协议是无状态且没有常连接的协议,DBMS事务的提交与否无法得到验证,不能构造Web上的OLTP(online transaction processing)应用。,4.3.1.2 基于服务器扩展的API,为了克服CGI的局限性,出现的另一
32、种中间件解决方案是基于服务器扩展API的结构。与CGI相比,API应用程序与Web服务器结合得更加紧密,占用的系统资源也少得多,而运行效率却大大提高,同时还提供更好的保护和安全性。 服务器API,是驻留在WWW服务器中的程序代码,其扩展WWW服务器的功能与CGI相同。WWW开发人员不仅可以用API解决CGI可以解决的一切问题,而且能够进一步解决基于不同WWW应用程序的特殊请求。各种API与其相应的WWW服务器紧密结合,其初始开发目标服务器的运行性能进一步发掘、提高。,用API开发的程序比用CGI开发的程序在性能上提高了很多,但开发API程序比开发CGI程序要复杂得多。API应用程序需要一些编程
33、方面的专门知识,如多线程、进程同步、直接协议编程以及错误处理等。目前主要的WWW API有Microsoft公司的ISAPI、Netscape公司的NSAPI和OReily公司的WSAPI等。,虽然基于服务器扩展API的结构可以方便、灵活地实现各种功能,连接所有支持32位ODBC的数据库系统,但这种结构的缺陷也是明显的: 各种API之间兼容性很差,缺乏统一的标准来管理这些接口; 开发API应用程序也要比开发CGI应用复杂得多; 这些API只能工作在专用Web服务器和操作系统上。,4.3.1.3 基于JDBC的Web数据库技术,Java的推出,使WWW页面有了活力和动感。Internet用户可以
34、从WWW服务器上下载Java小程序到本地浏览器运行。这些下载的小程序就像本地程序一样,可独立地访问本地和其他服务器资源。而最初的Java语言并没有数据库访问的功能,随着应用的深入,要求Java提供数据库访问功能的呼声越来越高。为了防止出现对Java在数据库访问方面各不相同的扩展,JavaSoft公司指定了JDBC,作为Java语言的数据库访问API。 采用JDBC技术,在Java Applet中访问数据库的优点在于:,(1)直接访问数据库,不再需要Web数据库的介入,从而避开了CGI方法的一些局限性;(2)用户访问控制可以由数据库服务器本地的安全机制来解决,提高了安全性;(3)JDBC是支持基
35、本SQL功能的一个通用低层的应用程序接口,在不同的数据库功能的层次上提供了一个统一的用户界面,为跨平台跨数据库系统进行直接的Web访问提供了方案。从而克服了API方法一些缺陷;(4)可以方便地实现与用户的交互,提供丰富的图形功能和声音、视频等多媒体信息功能。,JDBC是用于执行SQL语句的Java应用程序接口API,由Java语言编写的类和接口组成。Java是一种面向对象、多线程与平台无关的编程语言,具有极强的可移植性、安全性和强健性。JDBC是一种规范,能为开发者提供标准的数据库访问类和接口,能够方便地向任何关系数据库发送SQL语句,同时JDBC是一个支持基本SQL功能的低层应用程序接口,但
36、实际上也支持高层的数据库访问工具及API。 JDBC完成的工作是:建立与数据库的连接;发送SQL语句;返回数据结果给Web浏览器。,基于JDBC的Web数据库结构其缺陷在于:只能进行简单的数据库查询等操作,还不能进行OLTP;安全性、缓冲机制和连接管理仍不完善;SUN承诺的完全跨平台跨数据库系统的功能和标准远未实现。,如何将Web技术和DBMS相结合,研究和开发出具有OLTP功能的动态Web数据库系统已经成为目前的Internet和数据库技术热点研究领域的交叉点。传统的Web数据库系统都有着自己不同的缺点,唯有充分利用基于组件和分布式对象技术的优势将Web技术和DBMS紧密结合,开发出具有扩展
37、性强、易于维护、效率高的特点,同时提供跨平台的操作性和能访问异构数据库系统的支持的Web连接体系结构及技术,才能真正实现Web数据库的灵活方便应用。,几种Web数据库连接方式的比较,4.3.2 异构数据库环境,现实中存在着存储在不同的数据库系统上的数据,它们可能分布在不同的地理位置,使用不同的数据组织形式和操作系统平台,加上应用不同所造成的数据不一致性问题,于是构成了一个非常复杂的异构数据库环境。 在Internet上的数据库系统大多是分布的、异构的,且Internet上的每一站点之间的信息和组织都不一样,这也构成了一个巨大的异构数据库环境。,异构数据库环境下的数据库系统的异构性主要体现在以下
38、几个方面: 1)计算机体系结构的异构。 2)基础操作系统的异构。 3)DBMS本身的异构。 要实现网络环境下的信息共享,就必须联合各个异构数据库,形成异构数据库系统,通过建立统一的协调管理机制,实现不同数据库之间的数据信息资源合并和共享。,4.3.3 半结构化的数据结构,Web是一个巨大的、异构的、分布的、由超文本链接所连接的文档的集合。Web中含有大量丰富的文本、图片、声音、图像等数据,这些数据多存在于HTML文件中,没有特定的模型描述,数据本身具有自述性和动态可变性。其数据信息是一种介于严格结构化的数据和完全无结构的数据之间的数据形式。它的页面具有一定的描述层次的,存在一定的结构,但并非是
39、严格的结构,而且可能隐含在数据中。传统数据库中的数据模型、数据类型、存储结构、定义语言、操作语言等均不能表达这类数据信息。为此,需要一种新的数据模型来解决Web数据查询和处理出现的问题,于是人们提出了半结构化数据(Semi-structured Data)的概念。,有关半结构化数据还没有一个统一的定义,但根据它的特点,可以将它描述为:半结构化数据是指其结构隐含或无规则、不严谨的自我描述型数据。 在半结构化环境中,模式信息通常包含在数据中,即模式与数据间的界限混淆,这样的数据称作自我描述型数据。某些自我描述型数据中存在结构,数据的内容和结构混杂在一起,不清晰明显,需要从中提取;而某些数据的结构可
40、见,但是不严谨,如可以采用不同的方式表达同一信息。半结构化数据主要有两大来源:异构数据集和万维网。,半结构化数据模式与传统的关系数据模式和面向对象数据模式不同,它主要有以下特点: 1)模式与数据的区别模糊。 2)半结构化数据模式可能规模很大,而且因数据的不断更新而处于动态的变化过程之中。 3)不规则的结构。 4)半结构化数据模式是非常灵活的,能满足网络这种复杂分布式环境的要求,但也给数据处理带来了很大难度。 5)没有严格的类型约束。 6)先有数据,后有模式。,半结构化数据模式查询可以处理的数据类型和对象有:1)单值和集合值属性兼容。2)不同的查询对象数据类型。3)未知结构的查询对象。,综上,半
41、结构化数据具有两大特性,结构不规则和结构隐含,结构不规则的数据主要存在于异构数据中,结构隐含主要指Web数据。对于这两种不同特性的半结构化数据,分别可以用集成和信息抽取使其结构化。对半结构化数据结构及模式研究是一个新的具有挑战性和实际意义的研究领域。,4.3.4 异构数据库的集成与查询,Internet是一个巨大的异构数据库环境。如果想要充分利用Internet上的数据资源,首先必须要研究站点之间异构数据的集成问题,只有将这些站点的数据都集成起来,提供给用户一个统一的视图,才有可能从巨大的数据资源中获取所需的东西;其次,还要解决Web上的数据查询问题,实现数据进行分析、集成、处理就无从谈起。
42、对于异构数据库的查询操作,目前有三种较通用的解决方法:公共数据库网关技术、公共协议技术、公共编程接口技术。,(1)公共数据库网关技术 许多数据库厂商提供了各自的数据库网关产品,支持对多个异种数据源的访问。通过网关可以把第三方为其他厂商开发的工具连接到自己的数据库产品上。 但是应该指出的是,公共网关实现任意两个异种数据库的互操作比较复杂。网关仅是查询语言的转换器,它不支持事务管理。,(2) 公共协议技术 公共协议是指对客户和服务器之间通信的格式和协议以及数据库语言进行标准化。这是一种较好的解决异构数据库互联的方法,目前比较典型的有SAG(Sql Access Group)规范、IBM的分布式关系
43、数据库体系结构(DRDA)。这种方法操作数据库的效率很高,但编程量较大。,(3) 公共编程接口技术 公共编程接口包括客户应用编程界面(CAPI)和服务器应用编程界面(SAPI)。CAPI是一组过程库,通常驻留在客户端,通过装载后端专用的驱动程序访问不同的数据库。SAPI提供一个应用编程界面,控制服务器与客户应用请求和目标数据库之间产生交互。ODBC、JDBC和CORBA技术就属于公共编程接口方法,支持在分布式计算环境中异构数据库的访问。,随着CORBA的各种使用和其他分步式技术的发展,异构数据库的集成度将得到更进一步的提高。此外,结构异构数据库集成的另一个重要方法是所有应用数据都用XML格式表
44、示,因为XML是数据交换、数据共享和数据存储的基础标准,也是实现异构数据库共享的必由之路。目前,异构数据库系统的集成以及建立此基础之上的数据仓库、数据挖掘已经成为网络数据库技术研究的重点之一。,4.3.5 半结构化模型抽取技术,针对Internet上的半结构化数据的特点,寻找一个半结构化的数据模型则成为了解决Web数据查询问题的关键所在。此外,除了要定义一个半结构化数据模型外,还需要一项能够自动地从现有数据中将这个模型抽取出来的技术,这就是所谓的半结构化模型抽取技术。 因为半结构化数据模型和半结构化模型抽取技术是面向Internet的数据挖掘技术实施的前提,所以堪称是当今数据库研究领域的最大热
45、点。,XML语言是用于标记电子文档并使之具有结构性的语言。XML文档是文本的形式,使用标签和属性来描述数据的性质,采用树型逻辑结构描述数据,即它分析所描述数据类的结构,将其转换为树的形式,这一点与HTML颇为相似。 XML的出现从根本上解决了半结构化数据查询问题,因为XML是一个格式独立的、与平台和应用无关的语言,它使数据从描述和过程中分离出来,让用户可以通过应用不同的类型表和应用程序来显示和处理数据。只要应用程序都支持XML,就可以在程序之间无缝地交换数据。,XML的如下特点较好地适合了半结构化数据的管理需求:(1) 树型数据组织形式 XML对格式的定义严格,具有层次结构,容易规范数据的处理
46、。(2) 自描述性 标签或属性可以反映数据的属性,可被不同程序用于不同用途。这使得XML具有的面向数据交换的特性推动了半结构化数据管理用模式的发展。(3) 可格式化 由于数据和显示是分离的,同一数据可以指定不同的样式用于不同输出。(4) 强大的链接能力 XML的链接机制Xlink和引用机制Xpointer可以定义双向链接、多目标链接、扩展联结和两个文档间链接,使得数据之间的联系更加方便 。,4.3.6 基于B/S模式的数据库系统的工作方式和工作过程,(1) 基于B/S模式的数据库系统的工作方式 1) 简单式的B/S模式 所谓的简单式是指基于浏览器的B/S模式,它是利用HTML页面在用户的计算机
47、上表示信息。这种模式只完成一个基础功能:即Web浏览器显示由HTML写的文档、图片、声音和图像,而Web服务器则是将Web页面发送给浏览器的具有特殊目的的文件服务器。,2)交互式的B/S模式 在这种模式中,Web服务器的作用最终体现在对内容特别是动态内容的提供上,它主要负责同Web浏览器交互时提供动态产生的HTML文档。此外还提供诸如XML格式的应用数据。 实现Web动态内容的技术主要有: CGI,它根据用户输入的请求动态地传送HTML数据。 动态服务器页面 (Active Server Pages,ASP)技术。 PHP技术。PHP技术是由一套放在HTML文档里的附加的代码标记组成,它是专为
48、开发Web网页而设置的,所以用它开发的应用简洁有效。,3)分布式的B/S模式 在分布式的B/S模式下,无需下载HTML页面,客户程序可以在任何支持Java的浏览器(如目前的IE)上执行Applet。当Web服务器将含有Java Applet的页面下载到浏览器时,Applet在浏览器中运行并通过构件(Component)支持的通信与传输服务器上的小服务程序(Servlet)通信会话。这些小服务程序收到信息后,经过JDBC、ODBC或本地方法向数据库服务器发出请求,数据库服务器收到信息后执行相应的处理,再将结果数据传送给Servlet,最后将结果送到浏览器中显示给用户。,(2) 基于B/S模式的数
49、据库系统的工作过程 1)连接 Web浏览器与Web服务器建立连接,打开一个称为Socket(套接字)的虚拟文件,此文件的建立标志着连接成功。 2)请求 Web浏览器通过Socket向Web服务器提交请求。 3)应答 Web浏览器提交请求后,通过HTTP协议传送给Web服务器。Web服务器接到后,进行事务处理,处理结果又通过HTTP传回给Web浏览器,从而在Web浏览器上显示出所请求的页面。 4)关闭连接 当应答结束后,Web浏览器与Web服务器必须断开,以保证其它Web浏览器能够与Web服务器建立连接。,Web服务器的处理过程是一个完整的逻辑阶段。其处理的过程大致为:1)浏览器将用户信息传递给
50、Web服务器;2)Web服务器运行CGI程序;3)CGI程序通过CGI数据库网关对Web数据库进行操作;4)CGI程序将数据库操作结果返回给Web服务器;5)Web服务器将结果数据传递给浏览器;6)浏览器将数据库操作的结果显示给用户。,4.3.7 C/S模式与B/S模式的数据库系统的比较,C/S模式的数据库系统一般是一种两层结构的系统,它将事务分开进行处理,实现了网络的分布式计算。综合起来,基于C/S模式的数据库系统具有以下优点: (1) 运行性能高 (2) 便于最终用户使用 (3) 具有多功能的应用程序开发接口 (4) 开放的体系结构 (5) 良好的可扩充性,然而,C/S模式在系统的集成与维