chap4網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)_第1頁
chap4網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)_第2頁
chap4網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)_第3頁
chap4網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)_第4頁
chap4網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)_第5頁
已閱讀5頁,還剩94頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、本章摘要 目前網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)主要是按照客戶機目前網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)主要是按照客戶機/ /服務(wù)器服務(wù)器(C/S)(C/S)模式或者瀏覽器模式或者瀏覽器/ /服務(wù)器服務(wù)器(B/S)(B/S)模式來建立的。模式來建立的。本章將介紹本章將介紹C/SC/S體系結(jié)構(gòu)和體系結(jié)構(gòu)和B/SB/S體系結(jié)構(gòu)的工作原理體系結(jié)構(gòu)的工作原理和技術(shù)特點,以及基于和技術(shù)特點,以及基于C/SC/S模式和模式和B/SB/S模式的網(wǎng)絡(luò)數(shù)模式的網(wǎng)絡(luò)數(shù)據(jù)庫的基本概念、工作過程和關(guān)鍵技術(shù)。據(jù)庫的基本概念、工作過程和關(guān)鍵技術(shù)。 通過本章的學(xué)習(xí),大家應(yīng)該對基于通過本章的學(xué)習(xí),大家應(yīng)該對基于C/SC/S模式和基模式和基于于B/SB/S模式的網(wǎng)絡(luò)數(shù)

2、據(jù)庫系統(tǒng)的基本概念、組成結(jié)構(gòu)、模式的網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)的基本概念、組成結(jié)構(gòu)、實現(xiàn)技術(shù)和技術(shù)特點有一個比較全面的了解。實現(xiàn)技術(shù)和技術(shù)特點有一個比較全面的了解。4.1.1 4.1.1 二層結(jié)構(gòu)的二層結(jié)構(gòu)的C/SC/S系統(tǒng)系統(tǒng) 所謂的所謂的C/SC/S體系結(jié)構(gòu)是指由一個或多個客戶機體系結(jié)構(gòu)是指由一個或多個客戶機和一個或多個服務(wù)器與底層的操作系統(tǒng)及通訊系和一個或多個服務(wù)器與底層的操作系統(tǒng)及通訊系統(tǒng)一起形成的一個統(tǒng)一起形成的一個允許分布式允許分布式計算、分析和表示計算、分析和表示的復(fù)合系統(tǒng)。的復(fù)合系統(tǒng)。 其中的一個或多個計算機提供服務(wù),稱為其中的一個或多個計算機提供服務(wù),稱為服服務(wù)器(務(wù)器(ServerSe

3、rver); ;其他的計算機則接受服務(wù),稱其他的計算機則接受服務(wù),稱為為客戶機(客戶機(ClientClient)。C/SC/S結(jié)構(gòu)模式經(jīng)歷了兩個結(jié)構(gòu)模式經(jīng)歷了兩個階段:即兩層結(jié)構(gòu)的階段:即兩層結(jié)構(gòu)的C/SC/S系統(tǒng)和多層結(jié)構(gòu)的系統(tǒng)和多層結(jié)構(gòu)的C/SC/S系系統(tǒng)。統(tǒng)。 4.14.1概述概述 C/S C/S結(jié)構(gòu)模式將用戶界面邏輯和應(yīng)用處理邏輯通結(jié)構(gòu)模式將用戶界面邏輯和應(yīng)用處理邏輯通過前端開發(fā)工具融合在一起,將一個復(fù)雜的計算過前端開發(fā)工具融合在一起,將一個復(fù)雜的計算機應(yīng)用任務(wù)分解成多個不同的子任務(wù),把它們分機應(yīng)用任務(wù)分解成多個不同的子任務(wù),把它們分配到具有前端配到具有前端( (客戶機客戶機) )和

4、后端和后端( (服務(wù)器服務(wù)器) )的分布式的分布式計算機環(huán)境中,在前端客戶機上計算機環(huán)境中,在前端客戶機上運行應(yīng)用程序運行應(yīng)用程序,而后端服務(wù)器則而后端服務(wù)器則提供某些特定服務(wù)提供某些特定服務(wù)。服務(wù)器提供。服務(wù)器提供的服務(wù)有數(shù)據(jù)庫服務(wù)、文件服務(wù)和通信服務(wù)等。的服務(wù)有數(shù)據(jù)庫服務(wù)、文件服務(wù)和通信服務(wù)等。 工作過程一般是:客戶機提出數(shù)據(jù)服務(wù)請求,工作過程一般是:客戶機提出數(shù)據(jù)服務(wù)請求,服務(wù)器把按照請求處理后的數(shù)據(jù)傳送給客戶。服務(wù)器把按照請求處理后的數(shù)據(jù)傳送給客戶。1 1 二層結(jié)構(gòu)的二層結(jié)構(gòu)的C/SC/S系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu) 客戶機通過向服務(wù)器請求數(shù)據(jù)服務(wù),做必要的處客戶機通過向服務(wù)器請求數(shù)據(jù)服務(wù),做必要

5、的處理,將結(jié)果顯示給用戶,是一個理,將結(jié)果顯示給用戶,是一個面向用戶面向用戶的接口或應(yīng)的接口或應(yīng)用程序;而服務(wù)器負責監(jiān)聽客戶的數(shù)據(jù)服務(wù)請求,為用程序;而服務(wù)器負責監(jiān)聽客戶的數(shù)據(jù)服務(wù)請求,為客戶的請求提供所要求的服務(wù),包括數(shù)據(jù)存取、數(shù)據(jù)客戶的請求提供所要求的服務(wù),包括數(shù)據(jù)存取、數(shù)據(jù)加工和處理加工和處理 。 C/SC/S體系結(jié)構(gòu)的特點體現(xiàn)在以下方面:體系結(jié)構(gòu)的特點體現(xiàn)在以下方面: (1) (1) 數(shù)據(jù)庫安裝在服務(wù)器一端,數(shù)據(jù)庫的完整性和一數(shù)據(jù)庫安裝在服務(wù)器一端,數(shù)據(jù)庫的完整性和一致性有了結(jié)構(gòu)上的保證;致性有了結(jié)構(gòu)上的保證; (2)(2)客戶機為應(yīng)用提供圖形接口,而應(yīng)用的數(shù)據(jù)處理客戶機為應(yīng)用提供圖形

6、接口,而應(yīng)用的數(shù)據(jù)處理部分由服務(wù)器完成。這樣,一個應(yīng)用分成了兩個部分,部分由服務(wù)器完成。這樣,一個應(yīng)用分成了兩個部分,分布于網(wǎng)絡(luò)上,便于充分發(fā)揮客戶機和服務(wù)器的處理分布于網(wǎng)絡(luò)上,便于充分發(fā)揮客戶機和服務(wù)器的處理能力;能力; (3)(3)網(wǎng)上僅僅傳輸網(wǎng)上僅僅傳輸記錄記錄而非文件,與集中式系統(tǒng)相比而非文件,與集中式系統(tǒng)相比系統(tǒng)整體性能有了質(zhì)的飛躍,網(wǎng)絡(luò)吞吐能力也大為增系統(tǒng)整體性能有了質(zhì)的飛躍,網(wǎng)絡(luò)吞吐能力也大為增強;強; (4)(4)系統(tǒng)升級容易,可塑性好,能保護已有的投資。系統(tǒng)升級容易,可塑性好,能保護已有的投資。 盡管兩層結(jié)構(gòu)的盡管兩層結(jié)構(gòu)的C/SC/S系統(tǒng)實現(xiàn)了系統(tǒng)實現(xiàn)了功能功能的分布,的分

7、布,但它僅能在各自的客戶機和數(shù)據(jù)服務(wù)器之間使但它僅能在各自的客戶機和數(shù)據(jù)服務(wù)器之間使用,功能分布還不均勻,系統(tǒng)的性能、可伸縮用,功能分布還不均勻,系統(tǒng)的性能、可伸縮性和可擴展性較差,使得系統(tǒng)難于維護,不能性和可擴展性較差,使得系統(tǒng)難于維護,不能支持大量用戶的訪問和高容量事務(wù)處理的應(yīng)用。支持大量用戶的訪問和高容量事務(wù)處理的應(yīng)用。為此,人們引入了三層的為此,人們引入了三層的C/SC/S結(jié)構(gòu)模式,即在客結(jié)構(gòu)模式,即在客戶端和數(shù)據(jù)庫服務(wù)器之間增加一個戶端和數(shù)據(jù)庫服務(wù)器之間增加一個應(yīng)用服務(wù)器應(yīng)用服務(wù)器。4.1.2 4.1.2 三層結(jié)構(gòu)的三層結(jié)構(gòu)的C/SC/S系統(tǒng)系統(tǒng) 在三層C/S結(jié)構(gòu)中,服務(wù)器端被分為兩

8、部分:即應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器,形成“客戶機應(yīng)用服務(wù)器數(shù)據(jù)庫服務(wù)器”模式。 客戶機主要提供用戶登陸界面,負責用戶與應(yīng)用程客戶機主要提供用戶登陸界面,負責用戶與應(yīng)用程序之間的對話;序之間的對話; 應(yīng)用服務(wù)器包括了從客戶端劃分出來的一部分應(yīng)應(yīng)用服務(wù)器包括了從客戶端劃分出來的一部分應(yīng)用和從原來數(shù)據(jù)庫服務(wù)器中劃分過來的一部分工作,用和從原來數(shù)據(jù)庫服務(wù)器中劃分過來的一部分工作,主要實施商業(yè)和應(yīng)用邏輯,并基于商業(yè)規(guī)則確認從主要實施商業(yè)和應(yīng)用邏輯,并基于商業(yè)規(guī)則確認從客戶端得到的數(shù)據(jù),響應(yīng)客戶端的請求,完成業(yè)務(wù)客戶端得到的數(shù)據(jù),響應(yīng)客戶端的請求,完成業(yè)務(wù)處理或復(fù)雜計算;處理或復(fù)雜計算; 數(shù)據(jù)庫服務(wù)器執(zhí)行存

9、儲數(shù)據(jù)和處理數(shù)據(jù)的功能,它數(shù)據(jù)庫服務(wù)器執(zhí)行存儲數(shù)據(jù)和處理數(shù)據(jù)的功能,它分析功能服務(wù)器送來的分析功能服務(wù)器送來的SQLSQL命令,實現(xiàn)對數(shù)據(jù)庫的讀命令,實現(xiàn)對數(shù)據(jù)庫的讀寫等操作,并將結(jié)果返給功能服務(wù)器,再傳給客戶寫等操作,并將結(jié)果返給功能服務(wù)器,再傳給客戶端。端。 三層體系結(jié)構(gòu)的優(yōu)勢在于:三層體系結(jié)構(gòu)的優(yōu)勢在于: (1)(1)在應(yīng)用服務(wù)器中封裝了商業(yè)規(guī)則,不同的客戶在應(yīng)用服務(wù)器中封裝了商業(yè)規(guī)則,不同的客戶程序可以共享同一中間層,不必由每個客戶程序單程序可以共享同一中間層,不必由每個客戶程序單獨實現(xiàn)商業(yè)邏輯。獨實現(xiàn)商業(yè)邏輯。 (2)(2)可以把一些敏感的功能放在有嚴密保護措施的可以把一些敏感的功能

10、放在有嚴密保護措施的應(yīng)用程序服務(wù)器層上,不至于使用戶界面變得復(fù)雜。應(yīng)用程序服務(wù)器層上,不至于使用戶界面變得復(fù)雜。 (3)(3)實現(xiàn)了分布式數(shù)據(jù)處理。即可以把一個應(yīng)用程實現(xiàn)了分布式數(shù)據(jù)處理。即可以把一個應(yīng)用程序分布在幾個機器上運行,這樣就可以提高應(yīng)用程序分布在幾個機器上運行,這樣就可以提高應(yīng)用程序的性能。同時,通過冗余配置還可以保證不會因序的性能。同時,通過冗余配置還可以保證不會因為局部故障而導(dǎo)致整個應(yīng)用程序崩潰,有利于網(wǎng)絡(luò)為局部故障而導(dǎo)致整個應(yīng)用程序崩潰,有利于網(wǎng)絡(luò)系統(tǒng)的安全。系統(tǒng)的安全。 三層體系結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)優(yōu)勢在于:三層體系結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)優(yōu)勢在于: (1) (1) 系統(tǒng)可根據(jù)需要把各

11、個服務(wù)分別或重復(fù)地分布系統(tǒng)可根據(jù)需要把各個服務(wù)分別或重復(fù)地分布在不同的計算機上,使整個系統(tǒng)的工作量平衡分配在不同的計算機上,使整個系統(tǒng)的工作量平衡分配到網(wǎng)絡(luò)中,從而實現(xiàn)最佳的性能;到網(wǎng)絡(luò)中,從而實現(xiàn)最佳的性能; (2) (2) 由應(yīng)用服務(wù)器統(tǒng)一管理數(shù)據(jù)庫連接、數(shù)據(jù)接收、由應(yīng)用服務(wù)器統(tǒng)一管理數(shù)據(jù)庫連接、數(shù)據(jù)接收、數(shù)據(jù)同步、事務(wù)處理和線程調(diào)度等工作數(shù)據(jù)同步、事務(wù)處理和線程調(diào)度等工作, ,因此可最因此可最大限度地保障了數(shù)據(jù)的統(tǒng)一、完整和準確性能;大限度地保障了數(shù)據(jù)的統(tǒng)一、完整和準確性能; (3) (3) 對系統(tǒng)的修改或升級可簡化到只對某個特定部對系統(tǒng)的修改或升級可簡化到只對某個特定部件的更換,使系統(tǒng)

12、的維護和升級更加容易;件的更換,使系統(tǒng)的維護和升級更加容易; (4) (4) 適用范圍廣且支持適用范圍廣且支持Intranet/ InternetIntranet/ Internet,并,并具有很強的開放性;具有很強的開放性; (5) (5) 實現(xiàn)大用戶量、大吞吐量下的負載平衡。三實現(xiàn)大用戶量、大吞吐量下的負載平衡。三層結(jié)構(gòu)將應(yīng)用層結(jié)構(gòu)將應(yīng)用縱向縱向均勻分布在客戶端、應(yīng)用服務(wù)器均勻分布在客戶端、應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器上,和數(shù)據(jù)庫服務(wù)器上,橫向橫向分布在多個應(yīng)用服務(wù)器和分布在多個應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器上,應(yīng)用的分布實現(xiàn)了負載的平衡。數(shù)據(jù)庫服務(wù)器上,應(yīng)用的分布實現(xiàn)了負載的平衡。因此,在大用戶量

13、、大吞吐量情況下,仍能迅速響因此,在大用戶量、大吞吐量情況下,仍能迅速響應(yīng)每個客戶端的需求。應(yīng)每個客戶端的需求。 C/S C/S結(jié)構(gòu)的弱點:結(jié)構(gòu)的弱點: 第一,第一,C/SC/S結(jié)構(gòu)的計算能力過于分散,網(wǎng)絡(luò)中服務(wù)結(jié)構(gòu)的計算能力過于分散,網(wǎng)絡(luò)中服務(wù)器和客戶機的數(shù)目正發(fā)生器和客戶機的數(shù)目正發(fā)生“細胞細胞”分裂,使得系統(tǒng)分裂,使得系統(tǒng)的管理費用以幾何級數(shù)的方式增長;的管理費用以幾何級數(shù)的方式增長; 第二,第二,C/SC/S結(jié)構(gòu)中數(shù)據(jù)庫信息的使用一般只限于結(jié)構(gòu)中數(shù)據(jù)庫信息的使用一般只限于局局域網(wǎng)域網(wǎng)的范圍內(nèi),無法利用的范圍內(nèi),無法利用InternetInternet的網(wǎng)絡(luò)資源;的網(wǎng)絡(luò)資源; 第三,在第

14、三,在C/SC/S結(jié)構(gòu)中,無論多小的企業(yè)都必須安裝結(jié)構(gòu)中,無論多小的企業(yè)都必須安裝自己的服務(wù)器,而服務(wù)器和服務(wù)器軟件的管理和維自己的服務(wù)器,而服務(wù)器和服務(wù)器軟件的管理和維護都是非常復(fù)雜的工作,需要專門人員負責,小企護都是非常復(fù)雜的工作,需要專門人員負責,小企業(yè)往往無力購買高性能的服務(wù)器和聘任專門的技術(shù)業(yè)往往無力購買高性能的服務(wù)器和聘任專門的技術(shù)人員,因此人員,因此C/SC/S結(jié)構(gòu)的網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)不利于小企業(yè)結(jié)構(gòu)的網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)不利于小企業(yè)計算機應(yīng)用的發(fā)展。計算機應(yīng)用的發(fā)展。 .3 B/S B/S模式及其工作原理模式及其工作原理 目前目前WebWeb技術(shù)與數(shù)據(jù)庫管理系統(tǒng)(技術(shù)與數(shù)

15、據(jù)庫管理系統(tǒng)(DBMSDBMS)相互融)相互融合領(lǐng)域的研究已成為熱點方向之一,數(shù)據(jù)庫廠家和合領(lǐng)域的研究已成為熱點方向之一,數(shù)據(jù)庫廠家和WEBWEB公司也紛紛推出各自的產(chǎn)品和中間件支持公司也紛紛推出各自的產(chǎn)品和中間件支持WebWeb技技術(shù)和術(shù)和DBMSDBMS的融合,將兩者取長補短,發(fā)揮各自的優(yōu)的融合,將兩者取長補短,發(fā)揮各自的優(yōu)勢,使用戶可以在勢,使用戶可以在WebWeb瀏覽器上方便地檢索數(shù)據(jù)庫的瀏覽器上方便地檢索數(shù)據(jù)庫的內(nèi)容。內(nèi)容。 所謂所謂WebWeb數(shù)據(jù)庫管理系統(tǒng)是指基于數(shù)據(jù)庫管理系統(tǒng)是指基于WebWeb模式的模式的DBMSDBMS的信息服務(wù)的信息服務(wù),充分發(fā)揮,充分發(fā)揮DBMSDBMS

16、高效的數(shù)據(jù)存儲和管理高效的數(shù)據(jù)存儲和管理能力,以能力,以WebWeb這種瀏覽器這種瀏覽器/ /服務(wù)器(服務(wù)器(B/SB/S)模式為平臺,)模式為平臺,將客戶端融入統(tǒng)一的將客戶端融入統(tǒng)一的WebWeb瀏覽器,為瀏覽器,為InternetInternet用戶提用戶提供使用簡便、內(nèi)容豐富的服務(wù)。供使用簡便、內(nèi)容豐富的服務(wù)。WebWeb數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)必將成為必將成為InternetInternet和和IntranetIntranet提供的核心服務(wù),為提供的核心服務(wù),為InternetInternet上的電子商務(wù)提供技術(shù)支持。上的電子商務(wù)提供技術(shù)支持。 B/S B/S結(jié)構(gòu)是一種全新的軟件系

17、統(tǒng)構(gòu)造技術(shù),結(jié)構(gòu)是一種全新的軟件系統(tǒng)構(gòu)造技術(shù),它主要是利用了比較成熟的它主要是利用了比較成熟的WWWWWW瀏覽器技術(shù),瀏覽器技術(shù),結(jié)合瀏覽器的多種結(jié)合瀏覽器的多種ScriptScript語言語言( (如如VBScriptVBScript,JavaScriptJavaScript等等等等) )和和ActiveXActiveX技術(shù),通過技術(shù),通過瀏覽瀏覽器器實現(xiàn)原來需要復(fù)雜專用軟件才能實現(xiàn)的強實現(xiàn)原來需要復(fù)雜專用軟件才能實現(xiàn)的強大功能,并節(jié)約了開發(fā)成本。大功能,并節(jié)約了開發(fā)成本。 (1) B/S (1) B/S結(jié)構(gòu)模式結(jié)構(gòu)模式 基于基于B/SB/S的網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用系統(tǒng)通常采用三層或的網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用

18、系統(tǒng)通常采用三層或多層結(jié)構(gòu)。下圖給出的是多層結(jié)構(gòu)。下圖給出的是“瀏覽器瀏覽器WebWeb服務(wù)器服務(wù)器數(shù)據(jù)庫服務(wù)器數(shù)據(jù)庫服務(wù)器”三層結(jié)構(gòu),用戶完全通過三層結(jié)構(gòu),用戶完全通過WWWWWW瀏覽瀏覽器登錄,一部分事務(wù)邏輯在前端實現(xiàn),但是主要事器登錄,一部分事務(wù)邏輯在前端實現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實現(xiàn)。務(wù)邏輯在服務(wù)器端實現(xiàn)。 圖圖4.44.4給出的是給出的是“瀏覽器瀏覽器WebWeb服務(wù)器服務(wù)器中間中間件件數(shù)據(jù)庫服務(wù)器數(shù)據(jù)庫服務(wù)器”多層結(jié)構(gòu),這一結(jié)構(gòu)中的多層結(jié)構(gòu),這一結(jié)構(gòu)中的中間件通常通過定義中間件通常通過定義統(tǒng)一的數(shù)據(jù)模型統(tǒng)一的數(shù)據(jù)模型來解決不同來解決不同數(shù)據(jù)庫之間的數(shù)據(jù)轉(zhuǎn)化問題,確保客戶機和服

19、務(wù)數(shù)據(jù)庫之間的數(shù)據(jù)轉(zhuǎn)化問題,確保客戶機和服務(wù)器之間信息查詢和結(jié)果返回的順暢性。目前流行器之間信息查詢和結(jié)果返回的順暢性。目前流行的的B/SB/S結(jié)構(gòu)多采用多層結(jié)構(gòu)。結(jié)構(gòu)多采用多層結(jié)構(gòu)。 B/S B/S結(jié)構(gòu)模式下的工作過程大致如下:當瀏覽器向結(jié)構(gòu)模式下的工作過程大致如下:當瀏覽器向某一某一WebWeb服務(wù)器提出服務(wù)請求后,服務(wù)器提出服務(wù)請求后,WebWeb服務(wù)器首先對服務(wù)器首先對用戶身份進行驗證,然后用文本傳輸協(xié)議用戶身份進行驗證,然后用文本傳輸協(xié)議(HTTP)(HTTP)把把所需的文件資料傳給客戶機;客戶機接收傳來的文所需的文件資料傳給客戶機;客戶機接收傳來的文件資料,并按照件資料,并按照HT

20、TPHTTP格式把它顯示在格式把它顯示在WebWeb瀏覽器上。瀏覽器上。 WebWeb服務(wù)器服務(wù)器既是一個瀏覽服務(wù)器,又是一個應(yīng)用服務(wù)既是一個瀏覽服務(wù)器,又是一個應(yīng)用服務(wù)器,整個應(yīng)用邏輯和商業(yè)規(guī)則都可駐留其上,所以器,整個應(yīng)用邏輯和商業(yè)規(guī)則都可駐留其上,所以它是整個結(jié)構(gòu)的核心。它是整個結(jié)構(gòu)的核心。 多層多層B/SB/S結(jié)構(gòu)實際上引入了中間件,將業(yè)務(wù)處理交給結(jié)構(gòu)實際上引入了中間件,將業(yè)務(wù)處理交給中間件處理。這些中間件都是一些常用的數(shù)據(jù)庫處中間件處理。這些中間件都是一些常用的數(shù)據(jù)庫處理技術(shù),如理技術(shù),如CGI,API,ASP,JDBCCGI,API,ASP,JDBC等,其中等,其中CGICGI是目

21、前的是目前的標準接口。標準接口。(2) B/S(2) B/S模式的工作原理模式的工作原理 在下圖中,客戶機的在下圖中,客戶機的WebWeb瀏覽器通過使用瀏覽器通過使用URLURL來指定所需要的來指定所需要的HTMLHTML文件的惟一地址,解文件的惟一地址,解釋釋HTMLHTML文件,并展示給用戶。當用戶通過瀏文件,并展示給用戶。當用戶通過瀏覽器輸入覽器輸入URLURL文件請求時,文件請求時,WebWeb服務(wù)器通過采服務(wù)器通過采用的用的HTTPHTTP協(xié)議獲得用戶輸入的數(shù)據(jù),如果不協(xié)議獲得用戶輸入的數(shù)據(jù),如果不要訪問數(shù)據(jù)庫則按下圖要訪問數(shù)據(jù)庫則按下圖方向運行;如果用方向運行;如果用戶請求訪問數(shù)據(jù)

22、庫,則按戶請求訪問數(shù)據(jù)庫,則按方向運行。方向運行。WEB瀏覽器客戶端WEB服務(wù)器CGICGI執(zhí)行程序數(shù)據(jù)庫網(wǎng)關(guān)DBMS引擎(1)(2)數(shù)據(jù)庫HTML文件HTML文件HTML文件返回數(shù)據(jù)SQL語句 B/SB/S結(jié)構(gòu)模式和結(jié)構(gòu)模式和C/SC/S結(jié)構(gòu)模式都是以結(jié)構(gòu)模式都是以請求請求/ /問題問題方式來執(zhí)行的,但傳統(tǒng)的方式來執(zhí)行的,但傳統(tǒng)的C/SC/S模式需在客戶端集中模式需在客戶端集中了大量應(yīng)用軟件,而了大量應(yīng)用軟件,而B/SB/S模式則是一種基于模式則是一種基于WebWeb的三的三級或多級級或多級C/SC/S結(jié)構(gòu),結(jié)構(gòu),客戶端只需有統(tǒng)一的瀏覽器軟客戶端只需有統(tǒng)一的瀏覽器軟件件??傮w上說,??傮w上說

23、,B/SB/S體系結(jié)構(gòu)具有以下優(yōu)勢:體系結(jié)構(gòu)具有以下優(yōu)勢: 1)1)統(tǒng)一的瀏覽器訪問界面。統(tǒng)一的瀏覽器訪問界面。 2)2)開發(fā)效率高。開發(fā)效率高。 3)3)具有極強的伸縮性。具有極強的伸縮性。 4)4)開放性。開放性。 5)5)減少了客戶端維護工作量。減少了客戶端維護工作量。 4.2 4.2 基于基于C/SC/S模式的數(shù)據(jù)庫系統(tǒng)模式的數(shù)據(jù)庫系統(tǒng) 基于基于C/SC/S模式的網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)以數(shù)據(jù)庫模式的網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)以數(shù)據(jù)庫服務(wù)器為中心,不僅要對數(shù)據(jù)庫進行查詢,服務(wù)器為中心,不僅要對數(shù)據(jù)庫進行查詢,還要對數(shù)據(jù)庫進行大量更新還要對數(shù)據(jù)庫進行大量更新, ,同時還要保證同時還要保證多個并發(fā)用戶工作時的響

24、應(yīng)速度和數(shù)據(jù)完整多個并發(fā)用戶工作時的響應(yīng)速度和數(shù)據(jù)完整性。本節(jié)將介紹基于性。本節(jié)將介紹基于C/SC/S模式的網(wǎng)絡(luò)數(shù)據(jù)庫模式的網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)的需求、功能劃分、系統(tǒng)結(jié)構(gòu)和主要關(guān)系統(tǒng)的需求、功能劃分、系統(tǒng)結(jié)構(gòu)和主要關(guān)鍵技術(shù)。鍵技術(shù)。 4.2.1 4.2.1 基于基于C/SC/S模式的數(shù)據(jù)庫系統(tǒng)的需求模式的數(shù)據(jù)庫系統(tǒng)的需求 (1)(1)聯(lián)機事務(wù)處理聯(lián)機事務(wù)處理(OLTP)(OLTP)的需求的需求 : :要求系統(tǒng)的吞吐量要要求系統(tǒng)的吞吐量要高,響應(yīng)時間要短,能夠均衡地分配負載,減少網(wǎng)絡(luò)高,響應(yīng)時間要短,能夠均衡地分配負載,減少網(wǎng)絡(luò)傳輸量。對數(shù)據(jù)的完整性和可用性也有很高要求。傳輸量。對數(shù)據(jù)的完整性和可用性

25、也有很高要求。 (2)(2)企業(yè)管理模式的改變企業(yè)管理模式的改變 : :從集中式走向分布式,由孤從集中式走向分布式,由孤立的系統(tǒng)走向集成的系統(tǒng),由總站級管理走向企業(yè)的立的系統(tǒng)走向集成的系統(tǒng),由總站級管理走向企業(yè)的全局性管理。全局性管理。 (3)(3)高端商用市場的客戶對系統(tǒng)的可擴展性、可管理性、高端商用市場的客戶對系統(tǒng)的可擴展性、可管理性、安全性和高可用性的需求。安全性和高可用性的需求。 (4)(4)對數(shù)據(jù)和服務(wù)的集成要求對數(shù)據(jù)和服務(wù)的集成要求 (5)(5)開放的系統(tǒng)結(jié)構(gòu)要求開放的系統(tǒng)結(jié)構(gòu)要求 (6)(6)信息的處理、獲取、發(fā)布、存儲等高的性能要求。信息的處理、獲取、發(fā)布、存儲等高的性能要求。

26、 4.2.2 4.2.2 基于基于C/SC/S模式的數(shù)據(jù)庫管理系統(tǒng)模式的數(shù)據(jù)庫管理系統(tǒng)的功能劃分的功能劃分 在在C/SC/S模式的數(shù)據(jù)庫系統(tǒng)中,客戶機最基本的功能模式的數(shù)據(jù)庫系統(tǒng)中,客戶機最基本的功能是向服務(wù)器發(fā)出請求數(shù)據(jù)服務(wù),在做一些必要的處是向服務(wù)器發(fā)出請求數(shù)據(jù)服務(wù),在做一些必要的處理后,最后將結(jié)果顯示給用戶。服務(wù)器中一般運行理后,最后將結(jié)果顯示給用戶。服務(wù)器中一般運行有網(wǎng)絡(luò)操作系統(tǒng),及數(shù)據(jù)庫管理系統(tǒng)軟件,主要功有網(wǎng)絡(luò)操作系統(tǒng),及數(shù)據(jù)庫管理系統(tǒng)軟件,主要功能是建立進程和網(wǎng)絡(luò)服務(wù)地址,監(jiān)聽用戶的調(diào)用,能是建立進程和網(wǎng)絡(luò)服務(wù)地址,監(jiān)聽用戶的調(diào)用,處理用戶的請求。并不是所有的系統(tǒng)中客戶機、服處理

27、用戶的請求。并不是所有的系統(tǒng)中客戶機、服務(wù)器的功能劃分僅其基本功能。在一個單服務(wù)器的務(wù)器的功能劃分僅其基本功能。在一個單服務(wù)器的系統(tǒng)環(huán)境下,客戶機、服務(wù)器的功能劃分可以有三系統(tǒng)環(huán)境下,客戶機、服務(wù)器的功能劃分可以有三種不同的劃分方案,它們是種不同的劃分方案,它們是CSCS結(jié)構(gòu)、結(jié)構(gòu)、RURU結(jié)構(gòu)、結(jié)構(gòu)、EWSEWS結(jié)構(gòu)結(jié)構(gòu)。(1) (1) CSCS結(jié)構(gòu)結(jié)構(gòu):應(yīng)用的處理(包括實現(xiàn)用戶界面與:應(yīng)用的處理(包括實現(xiàn)用戶界面與表示邏輯)由客戶端完成,數(shù)據(jù)訪問和事務(wù)處理表示邏輯)由客戶端完成,數(shù)據(jù)訪問和事務(wù)處理由服務(wù)器完成。由服務(wù)器完成。(2) (2) RURU結(jié)構(gòu)結(jié)構(gòu):客戶機執(zhí)行了部分:客戶機執(zhí)行了部

28、分DBMSDBMS的功能。主的功能。主要完成查詢優(yōu)化和查詢處理。要完成查詢優(yōu)化和查詢處理。(3) (3) EWSEWS結(jié)構(gòu)結(jié)構(gòu):每個客戶都可通過對查詢結(jié)果進行:每個客戶都可通過對查詢結(jié)果進行緩存建立其局部數(shù)據(jù)庫,而且在客戶端都有一個緩存建立其局部數(shù)據(jù)庫,而且在客戶端都有一個功能完整的數(shù)據(jù)庫系統(tǒng)。減少了網(wǎng)絡(luò)傳輸和服務(wù)功能完整的數(shù)據(jù)庫系統(tǒng)。減少了網(wǎng)絡(luò)傳輸和服務(wù)器端的數(shù)據(jù)輸入器端的數(shù)據(jù)輸入/ /輸出。輸出。 4.2.3 4.2.3 單服務(wù)器系統(tǒng)和多服務(wù)器系統(tǒng)單服務(wù)器系統(tǒng)和多服務(wù)器系統(tǒng) C/S C/S模式的數(shù)據(jù)庫系統(tǒng)可以分成模式的數(shù)據(jù)庫系統(tǒng)可以分成單服務(wù)器結(jié)構(gòu)單服務(wù)器結(jié)構(gòu)和和多服務(wù)器結(jié)構(gòu)多服務(wù)器結(jié)構(gòu)。

29、這種劃分方法是按照將不同任務(wù)分。這種劃分方法是按照將不同任務(wù)分布到客戶平臺和服務(wù)器平臺的形式。它們的區(qū)別體布到客戶平臺和服務(wù)器平臺的形式。它們的區(qū)別體現(xiàn)為單個客戶請求得到服務(wù)響應(yīng)過程中所涉及的客現(xiàn)為單個客戶請求得到服務(wù)響應(yīng)過程中所涉及的客戶和服務(wù)器數(shù)目不同。單服務(wù)器結(jié)構(gòu)在網(wǎng)絡(luò)中只有戶和服務(wù)器數(shù)目不同。單服務(wù)器結(jié)構(gòu)在網(wǎng)絡(luò)中只有一臺數(shù)據(jù)庫服務(wù)器,有多臺客戶機;多服務(wù)器結(jié)構(gòu)一臺數(shù)據(jù)庫服務(wù)器,有多臺客戶機;多服務(wù)器結(jié)構(gòu)是在網(wǎng)絡(luò)中具有多臺數(shù)據(jù)庫服務(wù)器和多臺客戶機。是在網(wǎng)絡(luò)中具有多臺數(shù)據(jù)庫服務(wù)器和多臺客戶機。 (1)(1)單服務(wù)器系統(tǒng)模式單服務(wù)器系統(tǒng)模式 數(shù)據(jù)集中于一臺數(shù)據(jù)庫服務(wù)器中,客戶機向這臺數(shù)據(jù)集中

30、于一臺數(shù)據(jù)庫服務(wù)器中,客戶機向這臺服務(wù)器提出請求,并收到響應(yīng)。所有數(shù)據(jù)由一個服服務(wù)器提出請求,并收到響應(yīng)。所有數(shù)據(jù)由一個服務(wù)器管理,因此顯得簡單、方便、有效。務(wù)器管理,因此顯得簡單、方便、有效。 因為只有一臺數(shù)據(jù)庫服務(wù)器,它需要處理大量因為只有一臺數(shù)據(jù)庫服務(wù)器,它需要處理大量數(shù)據(jù)并能支持許多并發(fā)用戶訪問,所以這一服務(wù)器數(shù)據(jù)并能支持許多并發(fā)用戶訪問,所以這一服務(wù)器通常是大型機。建立這樣一個系統(tǒng)一次性投資較大,通常是大型機。建立這樣一個系統(tǒng)一次性投資較大,且由于數(shù)據(jù)處理相對集中,所有用戶都要通過網(wǎng)絡(luò)且由于數(shù)據(jù)處理相對集中,所有用戶都要通過網(wǎng)絡(luò)來訪問一個服務(wù)器,不僅容易造成瓶頸,而且數(shù)據(jù)來訪問一個服

31、務(wù)器,不僅容易造成瓶頸,而且數(shù)據(jù)傳輸?shù)拈_銷較大,對主機的要求也比較高。傳輸?shù)拈_銷較大,對主機的要求也比較高。 (2)(2) 多服務(wù)器系統(tǒng)模式多服務(wù)器系統(tǒng)模式 隨著數(shù)據(jù)庫應(yīng)用的不斷發(fā)展,規(guī)模的不斷擴大,隨著數(shù)據(jù)庫應(yīng)用的不斷發(fā)展,規(guī)模的不斷擴大,有時客戶機也保留數(shù)據(jù)的備份以減少網(wǎng)絡(luò)傳輸量。有時客戶機也保留數(shù)據(jù)的備份以減少網(wǎng)絡(luò)傳輸量。漸漸就形成了漸漸就形成了數(shù)據(jù)分散存儲數(shù)據(jù)分散存儲的方法,把數(shù)據(jù)庫分成的方法,把數(shù)據(jù)庫分成多個,建立在多臺計算機上,就形成了多服務(wù)器系多個,建立在多臺計算機上,就形成了多服務(wù)器系統(tǒng)模式。多服務(wù)器模式是指在執(zhí)行單獨一個或多個統(tǒng)模式。多服務(wù)器模式是指在執(zhí)行單獨一個或多個客戶請

32、求中,多個服務(wù)器以對客戶透明方式參與完客戶請求中,多個服務(wù)器以對客戶透明方式參與完成,即:客戶調(diào)用某個服務(wù)器操作,在該服務(wù)器執(zhí)成,即:客戶調(diào)用某個服務(wù)器操作,在該服務(wù)器執(zhí)行操作過程中,又調(diào)用其它服務(wù)器一起操作,為之行操作過程中,又調(diào)用其它服務(wù)器一起操作,為之提供服務(wù)。提供服務(wù)。 在多服務(wù)器系統(tǒng)中,數(shù)據(jù)分布在多個服務(wù)器中,在多服務(wù)器系統(tǒng)中,數(shù)據(jù)分布在多個服務(wù)器中,多個用戶共享多個服務(wù)器中的數(shù)據(jù)。多個服務(wù)器多個用戶共享多個服務(wù)器中的數(shù)據(jù)。多個服務(wù)器之間協(xié)同合作,共同完成客戶對數(shù)據(jù)的透明訪問之間協(xié)同合作,共同完成客戶對數(shù)據(jù)的透明訪問要求。具有多個服務(wù)器的系統(tǒng)的數(shù)據(jù)處理機制較要求。具有多個服務(wù)器的系統(tǒng)

33、的數(shù)據(jù)處理機制較為復(fù)雜,基本可以采取分布式數(shù)據(jù)庫中所采取的為復(fù)雜,基本可以采取分布式數(shù)據(jù)庫中所采取的技術(shù)處理,以保證用戶不用考慮數(shù)據(jù)的存放方式技術(shù)處理,以保證用戶不用考慮數(shù)據(jù)的存放方式和在哪里存放。和在哪里存放。 與單服務(wù)器系統(tǒng)模式相比,多服務(wù)器系統(tǒng)模式具有與單服務(wù)器系統(tǒng)模式相比,多服務(wù)器系統(tǒng)模式具有以下特點:以下特點:1)1)物理分布性物理分布性 數(shù)據(jù)存儲在計算機網(wǎng)絡(luò)的多個場地數(shù)據(jù)存儲在計算機網(wǎng)絡(luò)的多個場地上;上;2)2)邏輯整體性邏輯整體性 數(shù)據(jù)物理上分布,但邏輯上是一個數(shù)據(jù)物理上分布,但邏輯上是一個整體,被所有用戶所共享,由一個數(shù)據(jù)庫管理系統(tǒng)整體,被所有用戶所共享,由一個數(shù)據(jù)庫管理系統(tǒng)來

34、統(tǒng)一管理;來統(tǒng)一管理;3)3)場地自治性場地自治性 各場地上的數(shù)據(jù)由本地的數(shù)據(jù)庫管各場地上的數(shù)據(jù)由本地的數(shù)據(jù)庫管理系統(tǒng)管理,具有自治處理能力,能完成本場地的理系統(tǒng)管理,具有自治處理能力,能完成本場地的局部應(yīng)用;局部應(yīng)用;4)4)場地之間存在協(xié)作性場地之間存在協(xié)作性 各場地雖然具有高度的自各場地雖然具有高度的自治性,但是又是相互協(xié)作構(gòu)成一個整體。治性,但是又是相互協(xié)作構(gòu)成一個整體。 多服務(wù)器系統(tǒng)模式存在的問題:多服務(wù)器系統(tǒng)模式存在的問題: 1) 1) 由于數(shù)據(jù)源的非唯一性,客戶應(yīng)用就必須由于數(shù)據(jù)源的非唯一性,客戶應(yīng)用就必須考慮采用適當?shù)膽?yīng)用程序設(shè)計接口或訪問策考慮采用適當?shù)膽?yīng)用程序設(shè)計接口或訪問

35、策略來達到目的。略來達到目的。 2) 2) 存在多個并發(fā)的事務(wù)處理時,應(yīng)保證多個存在多個并發(fā)的事務(wù)處理時,應(yīng)保證多個服務(wù)器中的數(shù)據(jù)一致性。服務(wù)器中的數(shù)據(jù)一致性。 3) 3) 系統(tǒng)開銷尤其是通信部分的開銷較大,在系統(tǒng)開銷尤其是通信部分的開銷較大,在遠程網(wǎng)情況下,傳輸速度不高時,響應(yīng)的速遠程網(wǎng)情況下,傳輸速度不高時,響應(yīng)的速度顯著變慢。度顯著變慢。 4.2.4 4.2.4 基于基于C/SC/S模式的數(shù)據(jù)庫系統(tǒng)的一模式的數(shù)據(jù)庫系統(tǒng)的一些關(guān)鍵技術(shù)些關(guān)鍵技術(shù) (1) (1) 開放數(shù)據(jù)庫互連開放數(shù)據(jù)庫互連ODBC ODBC ODBC ODBC是目前數(shù)據(jù)庫互連訪問的一個強有力的解決是目前數(shù)據(jù)庫互連訪問的一個

36、強有力的解決方案。方案。ODBCODBC的基本思想是提供獨立程序來提取數(shù)據(jù)的基本思想是提供獨立程序來提取數(shù)據(jù)信息,并具有向應(yīng)用程序輸入數(shù)據(jù)的方法。信息,并具有向應(yīng)用程序輸入數(shù)據(jù)的方法。ODBCODBC為為應(yīng)用程序和驅(qū)動模塊提供了一種滿足各自需要的應(yīng)應(yīng)用程序和驅(qū)動模塊提供了一種滿足各自需要的應(yīng)用程序設(shè)計用程序設(shè)計接口接口(API)(API),并且保持了與結(jié)構(gòu)化查詢語,并且保持了與結(jié)構(gòu)化查詢語言言(SQL)(SQL)標準的一致性??蛻敉ㄟ^標準的一致性。客戶通過ODBCODBC標準函數(shù)向數(shù)標準函數(shù)向數(shù)據(jù)庫服務(wù)器發(fā)出據(jù)庫服務(wù)器發(fā)出SQLSQL請求請求, ,由由ODBCODBC數(shù)據(jù)庫驅(qū)動程序完數(shù)據(jù)庫驅(qū)動

37、程序完成向后端數(shù)據(jù)庫提交成向后端數(shù)據(jù)庫提交SQLSQL請求并將處理結(jié)果傳送返回請求并將處理結(jié)果傳送返回給應(yīng)用程序。在服務(wù)器端則可采用不同的技術(shù)來實給應(yīng)用程序。在服務(wù)器端則可采用不同的技術(shù)來實現(xiàn)對數(shù)據(jù)源的透明訪問、支持多種網(wǎng)絡(luò)協(xié)議和多種現(xiàn)對數(shù)據(jù)源的透明訪問、支持多種網(wǎng)絡(luò)協(xié)議和多種數(shù)據(jù)庫平臺。數(shù)據(jù)庫平臺。 ODBCODBC接口的優(yōu)勢之一是互操作性,程序設(shè)計員可以接口的優(yōu)勢之一是互操作性,程序設(shè)計員可以在不指定特定數(shù)據(jù)源情況下創(chuàng)建在不指定特定數(shù)據(jù)源情況下創(chuàng)建ODBCODBC應(yīng)用程序。應(yīng)用程序。 為保證標準性和開放性,為保證標準性和開放性,ODBCODBC結(jié)構(gòu)分為以下四層:結(jié)構(gòu)分為以下四層: 1)1)

38、應(yīng)用程序。應(yīng)用程序。 2)2)驅(qū)動程序管理器。驅(qū)動程序管理器。 3)3)驅(qū)動程序。驅(qū)動程序。 4)4)數(shù)據(jù)源。數(shù)據(jù)源。 (2)(2) JDBC(Java Database Connectivity)JDBC(Java Database Connectivity) JDBC JDBC是是SUNSUN公司針對公司針對JavaJava語言提出的與數(shù)據(jù)庫連接語言提出的與數(shù)據(jù)庫連接的的APIAPI標準標準, ,在不同的數(shù)據(jù)庫功能模塊的層次上提供在不同的數(shù)據(jù)庫功能模塊的層次上提供一個統(tǒng)一的用戶界面。與一個統(tǒng)一的用戶界面。與ODBCODBC類似,類似,JDBCJDBC是特殊類是特殊類型的型的APIAPI,這

39、些,這些APIAPI支持對數(shù)據(jù)庫的連接和基本的支持對數(shù)據(jù)庫的連接和基本的SQLSQL功能,包括建立數(shù)據(jù)庫連接、執(zhí)行功能,包括建立數(shù)據(jù)庫連接、執(zhí)行SQLSQL語句、處理返語句、處理返回結(jié)果等?;亟Y(jié)果等。JDBCJDBC的結(jié)構(gòu)同樣有一個的結(jié)構(gòu)同樣有一個JDBCJDBC驅(qū)動程序管驅(qū)動程序管理器作為理器作為JavaJava應(yīng)用程序與數(shù)據(jù)庫的中介,它把對數(shù)應(yīng)用程序與數(shù)據(jù)庫的中介,它把對數(shù)據(jù)庫的訪問請求轉(zhuǎn)換和傳送給下層的據(jù)庫的訪問請求轉(zhuǎn)換和傳送給下層的JDBCJDBC,或者轉(zhuǎn),或者轉(zhuǎn)換為對數(shù)據(jù)庫的固有調(diào)用。更多的實現(xiàn)方式是通過換為對數(shù)據(jù)庫的固有調(diào)用。更多的實現(xiàn)方式是通過JDBC-ODBCJDBC-ODBC

40、橋接驅(qū)動程序,再轉(zhuǎn)化為一個橋接驅(qū)動程序,再轉(zhuǎn)化為一個ODBCODBC調(diào)用,調(diào)用,進行對數(shù)據(jù)庫的操作。進行對數(shù)據(jù)庫的操作。 (3) (3) 存儲過程技術(shù)存儲過程技術(shù) 存儲過程存儲過程(Stored Procedure)(Stored Procedure)是一組為了完成特定是一組為了完成特定功能的功能的SQLSQL語句集,經(jīng)編譯后存儲在數(shù)據(jù)庫中,用戶語句集,經(jīng)編譯后存儲在數(shù)據(jù)庫中,用戶通過指定存儲過程的名字并給出參數(shù)來執(zhí)行它。存通過指定存儲過程的名字并給出參數(shù)來執(zhí)行它。存儲過程與一般的程序過程一樣,能夠接受輸入數(shù)據(jù)儲過程與一般的程序過程一樣,能夠接受輸入數(shù)據(jù)并返回結(jié)果值,返回操作成功與否的狀態(tài)值等

41、。一并返回結(jié)果值,返回操作成功與否的狀態(tài)值等。一個存儲過程所涉及的任何客體一旦被修改,都會自個存儲過程所涉及的任何客體一旦被修改,都會自動導(dǎo)致該過程利用新的信息重新作編譯。存儲過程動導(dǎo)致該過程利用新的信息重新作編譯。存儲過程既可被重用又可被共享。既可被重用又可被共享。 采用存儲過程技術(shù)有以下好處:采用存儲過程技術(shù)有以下好處: 1)1)高性能高性能 存儲過程將完成一定功能的一組存儲過程將完成一定功能的一組SQLSQL語句語句存儲在服務(wù)器中,而不是客戶端,這樣,在網(wǎng)絡(luò)上傳存儲在服務(wù)器中,而不是客戶端,這樣,在網(wǎng)絡(luò)上傳輸?shù)闹皇且粋€遠程調(diào)用和最終的執(zhí)行結(jié)果,大大減少輸?shù)闹皇且粋€遠程調(diào)用和最終的執(zhí)行結(jié)果

42、,大大減少了網(wǎng)絡(luò)上的傳輸量,提高了系統(tǒng)的性能。了網(wǎng)絡(luò)上的傳輸量,提高了系統(tǒng)的性能。 2)2)共享性共享性 存儲過程可以被多個用戶共享使用,而且存儲過程可以被多個用戶共享使用,而且使用時可存放在磁盤緩沖區(qū)內(nèi),即多個用戶可以使用使用時可存放在磁盤緩沖區(qū)內(nèi),即多個用戶可以使用同一個存儲過程。同一個存儲過程。 3)3)提高應(yīng)用開發(fā)效率提高應(yīng)用開發(fā)效率 存儲過程把用戶和應(yīng)用程序與存儲過程把用戶和應(yīng)用程序與數(shù)據(jù)源、網(wǎng)絡(luò)和存取路徑細節(jié)隔離開,使得非專業(yè)人數(shù)據(jù)源、網(wǎng)絡(luò)和存取路徑細節(jié)隔離開,使得非專業(yè)人員對于數(shù)據(jù)庫服務(wù)器上的數(shù)據(jù)訪問變得更加方便。員對于數(shù)據(jù)庫服務(wù)器上的數(shù)據(jù)訪問變得更加方便。 (4) (4) 分布

43、數(shù)據(jù)管理技術(shù)分布數(shù)據(jù)管理技術(shù) 在多個數(shù)據(jù)庫服務(wù)器的在多個數(shù)據(jù)庫服務(wù)器的C/SC/S模式數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)模式數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)分布在多個服務(wù)器上,為多個客戶所共享,因此數(shù)據(jù)分布在多個服務(wù)器上,為多個客戶所共享,因此數(shù)據(jù)的管理比較復(fù)雜。通常采用的技術(shù)包括數(shù)據(jù)復(fù)制技術(shù)的管理比較復(fù)雜。通常采用的技術(shù)包括數(shù)據(jù)復(fù)制技術(shù)和兩階段提交協(xié)議。和兩階段提交協(xié)議。 1)1)數(shù)據(jù)復(fù)制和分布數(shù)據(jù)復(fù)制和分布 支持某一服務(wù)器上的某些表中支持某一服務(wù)器上的某些表中的數(shù)據(jù)復(fù)制和分布到其他遠程數(shù)據(jù)庫服務(wù)器結(jié)點上。的數(shù)據(jù)復(fù)制和分布到其他遠程數(shù)據(jù)庫服務(wù)器結(jié)點上。 2)2)兩階段提交協(xié)議兩階段提交協(xié)議 用來協(xié)調(diào)參與分布式事務(wù)的多用來

44、協(xié)調(diào)參與分布式事務(wù)的多個服務(wù)器的活動,以防止可能發(fā)生的數(shù)據(jù)不一致性。個服務(wù)器的活動,以防止可能發(fā)生的數(shù)據(jù)不一致性。采用兩階段提交協(xié)議后,當系統(tǒng)發(fā)生故障時,各服務(wù)采用兩階段提交協(xié)議后,當系統(tǒng)發(fā)生故障時,各服務(wù)器利用各自有關(guān)的日志便可以進行恢復(fù)工作。器利用各自有關(guān)的日志便可以進行恢復(fù)工作。 4.34.3基于瀏覽器基于瀏覽器/ /服務(wù)器模式的數(shù)據(jù)服務(wù)器模式的數(shù)據(jù)庫系統(tǒng)庫系統(tǒng) 基于基于B/SB/S模式的數(shù)據(jù)庫系統(tǒng)以基于模式的數(shù)據(jù)庫系統(tǒng)以基于WebWeb的的B/SB/S模式模式為平臺,將客戶端融入統(tǒng)一的為平臺,將客戶端融入統(tǒng)一的WebWeb瀏覽器中,為瀏覽器中,為InternetInternet用戶提供

45、使用簡便、內(nèi)容豐富的服務(wù)。因用戶提供使用簡便、內(nèi)容豐富的服務(wù)。因此這種在此這種在WebWeb上使用的數(shù)據(jù)庫也稱為上使用的數(shù)據(jù)庫也稱為WebWeb數(shù)據(jù)庫。與數(shù)據(jù)庫。與平常的數(shù)據(jù)庫相似,平常的數(shù)據(jù)庫相似,WebWeb數(shù)據(jù)庫不論是小型數(shù)據(jù)庫數(shù)據(jù)庫不論是小型數(shù)據(jù)庫(如(如Access, dBaseAccess, dBase等)還是大型數(shù)據(jù)庫(如等)還是大型數(shù)據(jù)庫(如Oracle, Oracle, Sybase, SQL ServerSybase, SQL Server等)均可被等)均可被WebWeb訪問??蛻艨稍L問??蛻艨墒褂脼g覽器通過使用瀏覽器通過InternetInternet或或Intranet

46、Intranet訪問網(wǎng)絡(luò)數(shù)據(jù)訪問網(wǎng)絡(luò)數(shù)據(jù)庫,進行數(shù)據(jù)的讀出、寫入、刪除和修改等操作。庫,進行數(shù)據(jù)的讀出、寫入、刪除和修改等操作。 基于基于B/SB/S模式的數(shù)據(jù)庫系統(tǒng)要解決的關(guān)鍵問題模式的數(shù)據(jù)庫系統(tǒng)要解決的關(guān)鍵問題是數(shù)據(jù)傳遞的安全性和事務(wù)性,因為是數(shù)據(jù)傳遞的安全性和事務(wù)性,因為HTTPHTTP本質(zhì)上本質(zhì)上是一個無狀態(tài)的連接,所以事務(wù)處理就變得非常是一個無狀態(tài)的連接,所以事務(wù)處理就變得非常重要,同時又因為整個事務(wù)是基于全球網(wǎng)絡(luò)體系重要,同時又因為整個事務(wù)是基于全球網(wǎng)絡(luò)體系結(jié)構(gòu)的,所以安全性也變成一個值得關(guān)注的問題。結(jié)構(gòu)的,所以安全性也變成一個值得關(guān)注的問題。 .1基于基于B/SB

47、/S模式的數(shù)據(jù)庫系統(tǒng)體模式的數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)系結(jié)構(gòu) 基于基于B/SB/S模式的數(shù)據(jù)庫系統(tǒng)具有三層或多模式的數(shù)據(jù)庫系統(tǒng)具有三層或多層的體系結(jié)構(gòu),第一層為用戶層,第二層層的體系結(jié)構(gòu),第一層為用戶層,第二層為應(yīng)用層,第三層為數(shù)據(jù)庫層。為應(yīng)用層,第三層為數(shù)據(jù)庫層。 (1) (1) 用戶層用戶層 用戶層負責處理用戶的輸入和向用戶的輸出,用戶層負責處理用戶的輸入和向用戶的輸出,但不負責解釋其含義但不負責解釋其含義( (出于效率的考慮,它可能在向出于效率的考慮,它可能在向上傳輸用戶輸入前進行合法性驗證上傳輸用戶輸入前進行合法性驗證) )。這一層不需要。這一層不需要安裝什么設(shè)備與軟件,只需要安裝一個安裝什么

48、設(shè)備與軟件,只需要安裝一個WebWeb瀏覽器,瀏覽器,負責顯示應(yīng)用服務(wù)器端的運行結(jié)果,并借助于負責顯示應(yīng)用服務(wù)器端的運行結(jié)果,并借助于Java Java AppletApplet、VBScriptVBScript、JavaScriptJavaScript、ActiveXActiveX等技術(shù)進等技術(shù)進行一些簡單的客戶端事務(wù)處理。行一些簡單的客戶端事務(wù)處理。 (2) (2) 應(yīng)用層應(yīng)用層 該層就是該層就是WebWeb應(yīng)用服務(wù)器,是上下兩層的紐帶,建應(yīng)用服務(wù)器,是上下兩層的紐帶,建立實際的數(shù)據(jù)庫連接。它負責接受遠程或本地的頁立實際的數(shù)據(jù)庫連接。它負責接受遠程或本地的頁面請求,根據(jù)用戶的請求生成面請求

49、,根據(jù)用戶的請求生成SQLSQL語句檢索或更新數(shù)語句檢索或更新數(shù)據(jù)庫,然后運行服務(wù)器端腳本,借助于據(jù)庫,然后運行服務(wù)器端腳本,借助于CGICGI、ADOADO等等中間部件把數(shù)據(jù)請求發(fā)送到數(shù)據(jù)庫服務(wù)器上以獲取中間部件把數(shù)據(jù)請求發(fā)送到數(shù)據(jù)庫服務(wù)器上以獲取相關(guān)數(shù)據(jù),然后把結(jié)果數(shù)據(jù)轉(zhuǎn)化成相關(guān)數(shù)據(jù),然后把結(jié)果數(shù)據(jù)轉(zhuǎn)化成HTMLHTML及各種腳本及各種腳本傳回客戶端的傳回客戶端的WebWeb瀏覽器。瀏覽器。 所有的應(yīng)用系統(tǒng)、應(yīng)用邏輯、控制都在應(yīng)用層,所有的應(yīng)用系統(tǒng)、應(yīng)用邏輯、控制都在應(yīng)用層,系統(tǒng)的復(fù)雜性也主要體現(xiàn)在這一層。系統(tǒng)的復(fù)雜性也主要體現(xiàn)在這一層。 (3) (3) 數(shù)據(jù)庫層數(shù)據(jù)庫層 該層為數(shù)據(jù)庫服務(wù)

50、器,它存儲著大量的數(shù)據(jù)信息該層為數(shù)據(jù)庫服務(wù)器,它存儲著大量的數(shù)據(jù)信息和數(shù)據(jù)邏輯。該層的任務(wù)是負責協(xié)調(diào)和數(shù)據(jù)邏輯。該層的任務(wù)是負責協(xié)調(diào)WebWeb服務(wù)器請求,服務(wù)器請求,負責實際的數(shù)據(jù)存儲和檢索,管理數(shù)據(jù)庫系統(tǒng)。所負責實際的數(shù)據(jù)存儲和檢索,管理數(shù)據(jù)庫系統(tǒng)。所有與數(shù)據(jù)有關(guān)的安全、完整性控制、數(shù)據(jù)的一致性、有與數(shù)據(jù)有關(guān)的安全、完整性控制、數(shù)據(jù)的一致性、并發(fā)操作等都是在第三層完成。并發(fā)操作等都是在第三層完成。 當前比較流行的當前比較流行的WebWeb數(shù)據(jù)庫管理系統(tǒng)主要有數(shù)據(jù)庫管理系統(tǒng)主要有SQL SQL Server,MySQL,OracleServer,MySQL,Oracle和和SybaseSyb

51、ase等。這四種數(shù)據(jù)適應(yīng)等。這四種數(shù)據(jù)適應(yīng)性強,性能優(yōu)異,在國內(nèi)得到了廣泛的應(yīng)用。性強,性能優(yōu)異,在國內(nèi)得到了廣泛的應(yīng)用。 基于基于B/SB/S模式的數(shù)據(jù)庫系統(tǒng)是通過模式的數(shù)據(jù)庫系統(tǒng)是通過WWWWWW訪問數(shù)訪問數(shù)據(jù)庫的,其優(yōu)點在于:據(jù)庫的,其優(yōu)點在于:借用現(xiàn)成的瀏覽器軟件,無需開發(fā)數(shù)據(jù)庫前端借用現(xiàn)成的瀏覽器軟件,無需開發(fā)數(shù)據(jù)庫前端:如果能夠通過:如果能夠通過WWWWWW來訪問數(shù)據(jù)庫,我們就不需要開發(fā)客戶端的程序,使用的來訪問數(shù)據(jù)庫,我們就不需要開發(fā)客戶端的程序,使用的數(shù)據(jù)庫應(yīng)用都可以通過瀏覽器來實現(xiàn),界面統(tǒng)一,也減少了培數(shù)據(jù)庫應(yīng)用都可以通過瀏覽器來實現(xiàn),界面統(tǒng)一,也減少了培訓(xùn)費用,能使廣大用戶

52、很方便地訪問數(shù)據(jù)庫信息。訓(xùn)費用,能使廣大用戶很方便地訪問數(shù)據(jù)庫信息。標準統(tǒng)一,開發(fā)過程簡單標準統(tǒng)一,開發(fā)過程簡單:HTMLHTML是是WWWWWW信息的組織方式,是一信息的組織方式,是一種國際標準,使用的種國際標準,使用的WWWWWW服務(wù)器與服務(wù)器與HTMLHTML標準,開發(fā)者甚至只需標準,開發(fā)者甚至只需學(xué)習(xí)學(xué)習(xí)HTMLHTML一種語言,使用者只需學(xué)習(xí)一種界面一種語言,使用者只需學(xué)習(xí)一種界面瀏覽器界面。瀏覽器界面。交叉平臺支持交叉平臺支持:幾乎在各種操作系統(tǒng)上都有現(xiàn)成的瀏覽器可供:幾乎在各種操作系統(tǒng)上都有現(xiàn)成的瀏覽器可供使用,為一個使用,為一個WWWWWW服務(wù)器書寫的服務(wù)器書寫的HTMLHTM

53、L文檔,可以被所有平臺的文檔,可以被所有平臺的瀏覽器所瀏覽,實現(xiàn)了跨平臺操作。瀏覽器所瀏覽,實現(xiàn)了跨平臺操作。 一般實現(xiàn)一般實現(xiàn)WebWeb數(shù)據(jù)庫系統(tǒng)的連接和應(yīng)用可采取兩種數(shù)據(jù)庫系統(tǒng)的連接和應(yīng)用可采取兩種方法,一種是在方法,一種是在WebWeb服務(wù)器端提供中間件來連接服務(wù)器端提供中間件來連接WebWeb服務(wù)器和數(shù)據(jù)庫服務(wù)器,另一種是把應(yīng)用程序下載服務(wù)器和數(shù)據(jù)庫服務(wù)器,另一種是把應(yīng)用程序下載到客戶端并在客戶端直接訪問數(shù)據(jù)庫。到客戶端并在客戶端直接訪問數(shù)據(jù)庫。 中間件負責管理中間件負責管理WebWeb服務(wù)器和數(shù)據(jù)庫服務(wù)器之間的服務(wù)器和數(shù)據(jù)庫服務(wù)器之間的通信并提供應(yīng)用程序服務(wù),它能夠直接調(diào)用外部程通

54、信并提供應(yīng)用程序服務(wù),它能夠直接調(diào)用外部程序或腳本代碼來訪問數(shù)據(jù)庫,因此可以提供與數(shù)據(jù)序或腳本代碼來訪問數(shù)據(jù)庫,因此可以提供與數(shù)據(jù)庫相關(guān)的動態(tài)庫相關(guān)的動態(tài)HTMLHTML頁面,或執(zhí)行用戶查詢,并將查頁面,或執(zhí)行用戶查詢,并將查詢結(jié)果格式化成詢結(jié)果格式化成HTMLHTML頁面。通過頁面。通過WebWeb服務(wù)器返回給服務(wù)器返回給WebWeb瀏覽器。最基本的中間件技術(shù)有通過網(wǎng)關(guān)接口瀏覽器。最基本的中間件技術(shù)有通過網(wǎng)關(guān)接口CGICGI和應(yīng)用程序接口和應(yīng)用程序接口APIAPI兩種。兩種。WebWeb數(shù)據(jù)庫中間件結(jié)構(gòu)數(shù)據(jù)庫中間件結(jié)構(gòu) 基于通用網(wǎng)關(guān)接口基于通用網(wǎng)關(guān)接口CGI C

55、GI CGI CGI是是WWWWWW服務(wù)器運行時外部程序的規(guī)范,按照服務(wù)器運行時外部程序的規(guī)范,按照CGICGI編寫的程序可以擴展服務(wù)器的功能,完成服務(wù)器本編寫的程序可以擴展服務(wù)器的功能,完成服務(wù)器本身不能完成的工作,外部程序執(zhí)行時可以生成身不能完成的工作,外部程序執(zhí)行時可以生成HTMLHTML文檔,并將文檔返回文檔,并將文檔返回WWWWWW服務(wù)器。服務(wù)器。 CGICGI應(yīng)用程序能夠與瀏覽器進行交互作用,還可以應(yīng)用程序能夠與瀏覽器進行交互作用,還可以通過數(shù)據(jù)庫的通過數(shù)據(jù)庫的APIAPI與數(shù)據(jù)庫服務(wù)器等外部數(shù)據(jù)源進行與數(shù)據(jù)庫服務(wù)器等外部數(shù)據(jù)源進行通信,如一個通信,如一個CGICGI程序可以從數(shù)據(jù)

56、庫服務(wù)器中獲取數(shù)程序可以從數(shù)據(jù)庫服務(wù)器中獲取數(shù)據(jù),然后格式化為據(jù),然后格式化為HTMLHTML文檔后發(fā)送給瀏覽器,也可文檔后發(fā)送給瀏覽器,也可以將從瀏覽器獲得的數(shù)據(jù)放到數(shù)據(jù)庫中。幾乎使用以將從瀏覽器獲得的數(shù)據(jù)放到數(shù)據(jù)庫中。幾乎使用的服務(wù)器軟件都支持的服務(wù)器軟件都支持CGICGI,開發(fā)人員可以使用任何一,開發(fā)人員可以使用任何一種種WWWWWW服務(wù)器內(nèi)置語言編寫服務(wù)器內(nèi)置語言編寫CGICGI,其中包括流行的,其中包括流行的C C、C+C+、VBVB和和DelphiDelphi等。等。 從體系結(jié)構(gòu)上來看,用戶通過從體系結(jié)構(gòu)上來看,用戶通過WebWeb瀏覽器輸入查瀏覽器輸入查詢信息,瀏覽器通過詢信息,

57、瀏覽器通過HTTPHTTP協(xié)議向協(xié)議向WebWeb服務(wù)器發(fā)出帶有服務(wù)器發(fā)出帶有查詢信息的請求,查詢信息的請求,WebWeb服務(wù)器按照服務(wù)器按照CGICGI協(xié)議激活外部協(xié)議激活外部CGICGI程序,由該程序向程序,由該程序向DBMSDBMS發(fā)出發(fā)出SQLSQL請求并將結(jié)果轉(zhuǎn)請求并將結(jié)果轉(zhuǎn)化為化為HTMLHTML后返回給后返回給WebWeb服務(wù)器。再由服務(wù)器。再由WebWeb服務(wù)器返回服務(wù)器返回給給WebWeb瀏覽器。瀏覽器。 這種結(jié)構(gòu)體現(xiàn)了客戶這種結(jié)構(gòu)體現(xiàn)了客戶/ /服務(wù)器方式的三層模型,其服務(wù)器方式的三層模型,其中中WebWeb服務(wù)器和服務(wù)器和CGICGI程序?qū)嶋H起到了程序?qū)嶋H起到了HTMLH

58、TML和和SQLSQL轉(zhuǎn)換的轉(zhuǎn)換的網(wǎng)關(guān)的作用。網(wǎng)關(guān)的作用。CGICGI的典型操作過程是:分析的典型操作過程是:分析CGICGI數(shù)據(jù);數(shù)據(jù);打開與打開與DBMSDBMS的連接;發(fā)送的連接;發(fā)送SQLSQL請求并得到結(jié)果;將結(jié)請求并得到結(jié)果;將結(jié)果轉(zhuǎn)化為果轉(zhuǎn)化為HTMLHTML;關(guān)閉;關(guān)閉DBMSDBMS的連接;將的連接;將HTMLHTML結(jié)果返回結(jié)果返回給給WebWeb服務(wù)器。服務(wù)器。 基于通用網(wǎng)關(guān)接口基于通用網(wǎng)關(guān)接口CGICGI 基于基于WebWeb的數(shù)據(jù)庫訪問利用已有的信息資源和服務(wù)器。的數(shù)據(jù)庫訪問利用已有的信息資源和服務(wù)器。其訪問頻率大,尤其是熱點數(shù)據(jù)。但其主

59、要的缺點其訪問頻率大,尤其是熱點數(shù)據(jù)。但其主要的缺點是:是: 客戶端與后端數(shù)據(jù)庫服務(wù)器通信必須通過客戶端與后端數(shù)據(jù)庫服務(wù)器通信必須通過WebWeb服服務(wù)器,且務(wù)器,且WebWeb服務(wù)器要進行數(shù)據(jù)與服務(wù)器要進行數(shù)據(jù)與HTMLHTML文檔的互相轉(zhuǎn)文檔的互相轉(zhuǎn)換,當多個用戶同時發(fā)出請求時,必然在換,當多個用戶同時發(fā)出請求時,必然在WebWeb服務(wù)器服務(wù)器形成信息和發(fā)布瓶頸。形成信息和發(fā)布瓶頸。 CGI CGI應(yīng)用程序每次運行都需打開和關(guān)閉數(shù)據(jù)庫連應(yīng)用程序每次運行都需打開和關(guān)閉數(shù)據(jù)庫連接,效率低,操作費時;接,效率低,操作費時; CGI CGI應(yīng)用程序不能由多個客戶機請求共享,即使應(yīng)用程序不能由多個客

60、戶機請求共享,即使新請求到來時新請求到來時CGICGI程序正在運行,也會啟動另一個程序正在運行,也會啟動另一個 CGICGI應(yīng)用程序,隨著并行請求的數(shù)量增加,服務(wù)器上應(yīng)用程序,隨著并行請求的數(shù)量增加,服務(wù)器上將生成越來越多的進程。為每個請求都生成進程既將生成越來越多的進程。為每個請求都生成進程既費時又需要大量內(nèi)存,影響了資源的使用效率,導(dǎo)費時又需要大量內(nèi)存,影響了資源的使用效率,導(dǎo)致性能降低并增加等待時間;致性能降低并增加等待時間; 由于由于SQLSQL與與HTMLHTML差異很大,差異很大,CGICGI程序中的轉(zhuǎn)換代碼程序中的轉(zhuǎn)換代碼編寫繁瑣,維護困難;編寫繁瑣,維護困難; 安全性差,缺少用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論