北京郵電大學(xué)軟件工程研究生的課程-數(shù)據(jù)庫設(shè)計開發(fā)-3_第1頁
北京郵電大學(xué)軟件工程研究生的課程-數(shù)據(jù)庫設(shè)計開發(fā)-3_第2頁
北京郵電大學(xué)軟件工程研究生的課程-數(shù)據(jù)庫設(shè)計開發(fā)-3_第3頁
北京郵電大學(xué)軟件工程研究生的課程-數(shù)據(jù)庫設(shè)計開發(fā)-3_第4頁
北京郵電大學(xué)軟件工程研究生的課程-數(shù)據(jù)庫設(shè)計開發(fā)-3_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

3.3數(shù)據(jù)庫應(yīng)用系統(tǒng)體系結(jié)構(gòu)數(shù)據(jù)庫應(yīng)用系統(tǒng)的發(fā)展經(jīng)歷了主機/終端模式、客戶機/服務(wù)器模式之后,隨著Internet的發(fā)展,又出現(xiàn)了瀏覽器/服務(wù)器模式,以及分布式數(shù)據(jù)庫體系結(jié)構(gòu)。3.3.1簡介3.3.2客戶機/服務(wù)器結(jié)構(gòu)3.3.3C/S結(jié)構(gòu)的數(shù)據(jù)庫管理系統(tǒng)3.3.4C/S結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)3.3.5瀏覽器/服務(wù)器模式3.3.6分布式數(shù)據(jù)庫體系結(jié)構(gòu)郭文明2003.06.053.3.1簡介早期數(shù)據(jù)庫系統(tǒng)是集中式的體系結(jié)構(gòu),所有訪問數(shù)據(jù)庫的應(yīng)用程序以及用戶終端發(fā)送并接受數(shù)據(jù)的通信都在一個宿主計算機(UNIX大型或小型機)上運行。隨著PC機的興起,單用戶的DBMS出現(xiàn),DBMS的功能和數(shù)據(jù)庫應(yīng)用功能結(jié)合在一個應(yīng)用程序中,數(shù)據(jù)庫應(yīng)用處理用戶輸入和屏幕輸出的同時,也處理對數(shù)據(jù)庫中數(shù)據(jù)的訪問?;赑C的單用戶DBMS不支持事務(wù)處理和回退恢復(fù),不能保證數(shù)據(jù)的安全和完整,但查詢速度并不一定慢。郭文明2003.06.053.3.1簡介基于PC的多用戶DBMS建立在文件服務(wù)器前提下,客戶端運行服務(wù)器的應(yīng)用程序,文件服務(wù)器將客戶申請的文件傳送給客戶機器,數(shù)據(jù)處理過程在客戶機器上進行。這種方式網(wǎng)絡(luò)傳輸?shù)氖菙?shù)據(jù)文件,傳輸量大,數(shù)據(jù)鎖定在解決并發(fā)時存在困難。事務(wù)處理的性質(zhì)使數(shù)據(jù)庫系統(tǒng)從集中式、PC系統(tǒng)過渡到客戶機/服務(wù)器系統(tǒng),并使分布式系統(tǒng)成為可能。客戶機/服務(wù)器系統(tǒng)最本質(zhì)的特點在于:客戶PC運行數(shù)據(jù)庫應(yīng)用(界面處理),數(shù)據(jù)庫服務(wù)器運行全部或大部分DBMS(數(shù)據(jù)處理)。服務(wù)器運行SQL,將查詢結(jié)果傳送到客戶端,減少了網(wǎng)絡(luò)信息的傳輸,系統(tǒng)采用數(shù)據(jù)鎖定、事務(wù)技術(shù)、存儲過程等數(shù)據(jù)庫技術(shù)保證數(shù)據(jù)完整一致準(zhǔn)確。郭文明2003.06.053.3.2客戶機/服務(wù)器結(jié)構(gòu)客戶機/服務(wù)器(Clien/Server)結(jié)構(gòu)可以指硬件結(jié)構(gòu),也可以指軟件結(jié)構(gòu)。硬件結(jié)構(gòu)指某項任務(wù)在兩臺或多臺計算機之間進行分配,客戶機來運行提供用戶接口和前端處理的應(yīng)用程序,服務(wù)器提供可供客戶機使用的各種資源和服務(wù)。客戶機在完成某一項任務(wù)時,通常要利用服務(wù)器上的共享資源和服務(wù)器提供的服務(wù)。在一個客戶機/服務(wù)器體系結(jié)構(gòu)中可以有多臺客戶機、多臺服務(wù)器。郭文明2003.06.053.3.2客戶機/服務(wù)器結(jié)構(gòu)軟件結(jié)構(gòu)指把一個應(yīng)用系統(tǒng)按照邏輯功能分成四個組成部分:用戶界面、應(yīng)用表示邏輯、事務(wù)邏輯、數(shù)據(jù)管理,按照其相對角色的不同區(qū)分為客戶端和服務(wù)器端軟件??蛻糗浖軌蛘埱蠓?wù)器軟件的服務(wù)??蛻糗浖头?wù)器軟件可以分布在網(wǎng)絡(luò)中不同的計算機節(jié)點上,也可以放置在同一臺計算機上。終端數(shù)據(jù)庫應(yīng)用程序用戶界面應(yīng)用邏輯事務(wù)邏輯數(shù)據(jù)管理GUI3GL4GLSQLORACLEDB2郭文明2003.06.053.3.2客戶機/服務(wù)器結(jié)構(gòu)常見C/S體系有兩層結(jié)構(gòu)和三層結(jié)構(gòu)。兩層C/S結(jié)構(gòu)的基本工作方式:客戶程序運行用戶的應(yīng)用程序,向數(shù)據(jù)庫服務(wù)器發(fā)送SQL請求,數(shù)據(jù)庫服務(wù)器接受客戶機的請求,并將處理結(jié)果返回客戶端。一個功能強大的客戶應(yīng)用開發(fā)語言和一個多用途的用于傳送客戶請求到服務(wù)器的機構(gòu)是整個兩層結(jié)構(gòu)的核心。在一個數(shù)據(jù)存取事件中,數(shù)據(jù)由服務(wù)器實施存儲和訪問,數(shù)據(jù)庫引擎負(fù)責(zé)處理從客戶端發(fā)來的請求。把SQL語言從客戶機傳送到服務(wù)器上必須能識別服務(wù)的標(biāo)識符或由一個應(yīng)用程序接口來完成,還必須知道服務(wù)器的位置、數(shù)據(jù)組織形式以及數(shù)據(jù)如何定義。在服務(wù)器中,請求將得到存儲邏輯和處理的進一步優(yōu)化,例如使用權(quán)限、完整性、并發(fā)控制等。郭文明2003.06.053.3.2客戶機/服務(wù)器結(jié)構(gòu)兩層C/S結(jié)構(gòu)具體又分為兩種實現(xiàn)方式:一種是客戶端完成界面顯示和應(yīng)用邏輯,服務(wù)器完成事務(wù)邏輯和數(shù)據(jù)管理。這種情況是以客戶為中心的。這種方式下,表示部分和應(yīng)用邏輯耦合緊密,比較適用于應(yīng)用相對簡單、數(shù)據(jù)訪問量不大的情況。另一種以服務(wù)器為中心,一些重要的應(yīng)用邏輯放在服務(wù)器上,充分利用服務(wù)器的計算能力,通常以存儲過程和觸發(fā)器出現(xiàn),減少網(wǎng)絡(luò)壓力,提高系統(tǒng)性能。這種方式下,存儲程序依賴于特定數(shù)據(jù)庫,不同數(shù)據(jù)庫間的移植不太容易。郭文明2003.06.053.3.2客戶機/服務(wù)器結(jié)構(gòu)把兩層結(jié)構(gòu)中服務(wù)器部分和客戶端部分的應(yīng)用單獨劃分出來,即形成三層C/S結(jié)構(gòu)。在X/OpenDTP標(biāo)準(zhǔn)中描述了三層C/S模型:由應(yīng)用程序定義各種操作來執(zhí)行完成特定任務(wù),它定義事務(wù)的范圍并把服務(wù)要求提交給事務(wù)管理器、通信管理器及一個或多個資源管理器。資源管理器提供應(yīng)用程序的事務(wù)間的服務(wù),通常是一個數(shù)據(jù)庫。事務(wù)管理器提供事務(wù)的服務(wù)。如果事務(wù)跨越多個平臺,那么其中一個的事務(wù)管理器為該事務(wù)的事務(wù)管理器。通信管理器提供通信服務(wù)的接口以及管理應(yīng)用層協(xié)議。郭文明2003.06.053.3.2客戶機/服務(wù)器結(jié)構(gòu)數(shù)據(jù)庫應(yīng)用的三層C/S結(jié)構(gòu)將應(yīng)用分成表示部分、應(yīng)用邏輯(或稱商業(yè)邏輯)、數(shù)據(jù)訪問部分。三層C/S結(jié)構(gòu)使各部分相互獨立并單獨實現(xiàn),分別稱為客戶、應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器。三層C/S結(jié)構(gòu)中數(shù)據(jù)在發(fā)送到網(wǎng)絡(luò)之前由功能服務(wù)器加以過濾,網(wǎng)絡(luò)流量會減少,另外客戶端并不是直接同數(shù)據(jù)庫打交道,而是通過中間層的統(tǒng)一調(diào)用來實現(xiàn),在靈活性和獨立性方面較好,適合于不同數(shù)據(jù)庫的互聯(lián)??蛻?應(yīng)用服務(wù)器數(shù)據(jù)庫數(shù)據(jù)庫服務(wù)器客戶N…郭文明2003.06.053.3.2客戶機/服務(wù)器結(jié)構(gòu)基于三層模型的應(yīng)用系統(tǒng):應(yīng)用邏輯層:最普遍的處理方案是使用存儲過程和觸發(fā)器。從客戶機角度看存儲過程是一個單獨的事件,可以在服務(wù)器上執(zhí)行復(fù)雜的操作,事務(wù)的完成或取消最終控制權(quán)交給用戶;使用存儲過程可避免通過網(wǎng)絡(luò)傳送SQL語句,也不必將數(shù)據(jù)通過網(wǎng)絡(luò)傳回來進行處理。數(shù)據(jù)層:定義正確的數(shù)據(jù)表和選擇合適的存儲方案,優(yōu)化數(shù)據(jù)庫的性能,使數(shù)據(jù)庫快速、可靠、準(zhǔn)確的響應(yīng)用戶的請求。如建立索引,優(yōu)化設(shè)置。表示層:表示層主要承擔(dān)人機界面的任務(wù)應(yīng)用系統(tǒng)的性能優(yōu)化設(shè)計是一項系統(tǒng)的工作,三層模型為系統(tǒng)的開放性擴充和性能優(yōu)化提供了很大的空間和靈活性,但單純的三層結(jié)構(gòu)并不一定是最優(yōu)的。郭文明2003.06.053.3.3C/S結(jié)構(gòu)的數(shù)據(jù)庫管理系統(tǒng)C/S數(shù)據(jù)庫管理系統(tǒng)通常通過高性能的鎖定、事務(wù)提交、參照完整性、存儲過程和觸發(fā)器等數(shù)據(jù)管理技術(shù)實現(xiàn)多用戶下良好的數(shù)據(jù)完整性和并發(fā)控制。C/S結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)的分層模型應(yīng)用程序數(shù)據(jù)庫API網(wǎng)絡(luò)/通信接口網(wǎng)絡(luò)/通信接口數(shù)據(jù)管理客戶管理DBMS存儲文件客戶端服務(wù)器數(shù)據(jù)/網(wǎng)絡(luò)協(xié)議郭文明2003.06.053.3.3C/S結(jié)構(gòu)的數(shù)據(jù)庫管理系統(tǒng)客戶端網(wǎng)絡(luò)接口:是在客戶端負(fù)責(zé)客戶應(yīng)用與數(shù)據(jù)庫服務(wù)器通信,將數(shù)據(jù)信息編碼或解碼,提供發(fā)送/接受的邏輯通道。網(wǎng)絡(luò)接口層協(xié)議的目的是為了減少網(wǎng)絡(luò)傳送的字節(jié)數(shù)目,它建立在基礎(chǔ)網(wǎng)絡(luò)協(xié)議(TCP/IP、IPX、SAN等)之上。編碼協(xié)議主要有兩種:通信與遠(yuǎn)程過程調(diào)用(RemoteProcedureCall,RPC)。通信是指前端應(yīng)用與DBMS之間的信息傳輸采用的報文形式,編碼協(xié)議有:TABULAR(Microsoft)、SQL*Net(Oracle)、DRDA(IBM)。遠(yuǎn)程過程調(diào)用是一種由客戶制定而由服務(wù)器來執(zhí)行的函數(shù)調(diào)用。客戶端數(shù)據(jù)管理層:用于客戶應(yīng)用與服務(wù)器數(shù)據(jù)庫進行交互時所必需的登錄管理和數(shù)據(jù)庫連接以及提交語句、返回結(jié)果和處理錯誤??蛻舳藬?shù)據(jù)管理層實際上就是開發(fā)人員或應(yīng)用程序使用的數(shù)據(jù)庫API。如DB_Library(Microsoft、Sybase)、OCI(Oracle)和SQLRuntime(IBM).郭文明2003.06.053.3.3C/S結(jié)構(gòu)的數(shù)據(jù)庫管理系統(tǒng)服務(wù)器端的客戶管理:客戶管理程序的作用是協(xié)調(diào)客戶端的通信要求,為每個客戶聯(lián)系建立合法的數(shù)據(jù)通信渠道,為在網(wǎng)絡(luò)上傳送而使信息格式化,管理多種客戶請求線程。服務(wù)器端的數(shù)據(jù)管理:數(shù)據(jù)管理程序處理每個客戶的數(shù)據(jù)服務(wù)請求,驗證和解析SQL請求,優(yōu)化數(shù)據(jù)操作,生成存取計劃,建立不同形式的鎖控制并發(fā),對數(shù)據(jù)庫中數(shù)據(jù)的訪問(存取計劃)??蛻魧?shù)據(jù)庫的訪問可以理解為:服務(wù)器端正確解析客戶發(fā)出的SQL請求,并作出回應(yīng)或發(fā)回出錯信息。郭文明2003.06.053.3.3C/S結(jié)構(gòu)的數(shù)據(jù)庫管理系統(tǒng)基于不同DBMS的差異和對不同SQL語言版本的支持,客戶應(yīng)用必須考慮采用何種數(shù)據(jù)庫訪問策略:選擇開發(fā)客戶應(yīng)用的開發(fā)環(huán)境和選擇適當(dāng)?shù)膽?yīng)用程序接口(API)。所有的客戶機服務(wù)器數(shù)據(jù)庫廠商都有自己支持的程序設(shè)計工具箱,他們可以獨立建立定制的客戶應(yīng)用。特定于專門數(shù)據(jù)庫的設(shè)計工具,提供了對本數(shù)據(jù)庫最完美的支持,但可能忽略對其他數(shù)據(jù)庫的全力支持,選擇第三方廠商的開發(fā)應(yīng)用集成環(huán)境,是對該空隙的有力補充,他們往往注意數(shù)據(jù)庫共性的同時,通過各種技術(shù)為異質(zhì)數(shù)據(jù)庫提供不同支持,如ODBC。郭文明2003.06.053.3.3C/S結(jié)構(gòu)的數(shù)據(jù)庫管理系統(tǒng)為了使客戶應(yīng)用能同時訪問多種數(shù)據(jù)庫,(既包括網(wǎng)絡(luò)數(shù)據(jù)庫,又包括單機數(shù)據(jù)庫),應(yīng)用開發(fā)環(huán)境所采用的技術(shù)往往有兩種途徑:支持諸如ODBC這樣的公共數(shù)據(jù)庫接口API專門設(shè)計同時驅(qū)動多種安裝在客戶端的數(shù)據(jù)庫驅(qū)動程序管理層。許多應(yīng)用開發(fā)集成環(huán)境同時采用這兩種途徑,以便提高產(chǎn)品的通用性。如Delphi的BDE(BorlandDatabaseEngine)。郭文明2003.06.053.3.4C/S結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)C/S系統(tǒng)的并發(fā)控制:C/S系統(tǒng)必須提供封鎖機制,事務(wù)編程要盡可能避免死鎖,并允許死鎖的發(fā)生及提供解決死鎖的方案,保證并發(fā)執(zhí)行的同時維護數(shù)據(jù)的一致。封鎖機制可以由DBMS自動控制,也可以通過顯式加鎖完成。C/S系統(tǒng)的完整性約束:在C/S系統(tǒng)中,數(shù)據(jù)完整性約束是在服務(wù)器上定義,并由服務(wù)器來檢查約束,這樣能方便地實現(xiàn)對數(shù)據(jù)庫的完整性和一致性控制。如果由客戶機檢查約束,檢查邏輯必須包含在每一個應(yīng)用程序中,既浪費又容易出錯。郭文明2003.06.053.3.4C/S結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)C/S系統(tǒng)的安全性控制:DBMS通常運行在后臺服務(wù)器上,自身已具備安全管理功能。應(yīng)用程序運行在前端客戶機上,安全性問題由開發(fā)者自己設(shè)計。如何將后臺DBMS的安全機制與前端應(yīng)用程序的安全機制有機結(jié)合起來,形成統(tǒng)一的安全保密機制??梢赃x擇以下幾種方案:內(nèi)核級透明代理:每個數(shù)據(jù)庫應(yīng)用只建立一個真正的數(shù)據(jù)庫帳號(Root),它具有對系統(tǒng)應(yīng)用所涉及的數(shù)據(jù)庫實體進行操作的全部權(quán)限。為每一個系統(tǒng)操作人員分別創(chuàng)建一個‘應(yīng)用系統(tǒng)帳號’,放在數(shù)據(jù)庫中的Users表中。每次應(yīng)用程序在客戶端執(zhí)行時,首先以Root登錄數(shù)據(jù)庫,然后執(zhí)行登錄程序,與Users表結(jié)合,實現(xiàn)應(yīng)用系統(tǒng)登錄。Users表中的內(nèi)容需加密保存,數(shù)據(jù)的加密和解密通過應(yīng)用程序完成。郭文明2003.06.053.3.4C/S結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)用戶授權(quán)機制:后臺服務(wù)器系統(tǒng)除了操作系統(tǒng)具有嚴(yán)格的用戶等級機制外,DBMS也具有嚴(yán)格的用戶授權(quán)管理機制。前端應(yīng)用程序的安全機制與DBMS的安全機制統(tǒng)一起來,可以增強安全保密功能。具體做法:從功能出發(fā)將整個系統(tǒng)細(xì)分為若干個可分配的最小權(quán)限單元,這些權(quán)限即對數(shù)據(jù)庫中所涉及的表、視圖的增刪改查。然后運用角色或工作組的概念,結(jié)合各種系統(tǒng)使用人員的工作性質(zhì),為系統(tǒng)創(chuàng)建各種操作等級,并為每個等級相應(yīng)地授予不同的權(quán)限。用戶等級及每種等級所對應(yīng)的默認(rèn)權(quán)限組合建立對照字典,管理員可以方便地增加等級或改變某一等級的默認(rèn)權(quán)限。在統(tǒng)一管理下,既方便又可防止用戶繞過應(yīng)用邏輯直接操作數(shù)據(jù)庫的可能。郭文明2003.06.053.3.4C/S結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)智能型日志:DBMS的日志系統(tǒng)是為了保障事務(wù)故障、系統(tǒng)故障和介質(zhì)故障的恢復(fù)。智能型日志是數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計的為了跟蹤系統(tǒng)使用情況的記錄,相當(dāng)于飛機的‘黑匣子’。在系統(tǒng)中,智能型日志將記錄:自某用戶登錄時起,到其退出系統(tǒng)時止,這段時間中執(zhí)行的所有操作,包括登錄失敗操作,具體內(nèi)容有執(zhí)行某操作的用戶名、執(zhí)行操作的計算機IP地址、操作類型、操作對象、執(zhí)行時間等。一旦系統(tǒng)發(fā)生故障或受到非授權(quán)用戶的惡意攻擊,通過查詢?nèi)罩鞠到y(tǒng)的記載可追溯到事件發(fā)生的所有過程。另外,日志系統(tǒng)還可以使系統(tǒng)管理員分類檢索日志內(nèi)容,通過智能推理日志內(nèi)容,尋找系統(tǒng)中可能存在的不安全因素。如對同一帳號的連續(xù)三次登錄失敗,系統(tǒng)自動凍結(jié)該帳號或封鎖工作站。郭文明2003.06.053.3.4C/S結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)備份及恢復(fù)機制:數(shù)據(jù)庫管理系統(tǒng)提供了事務(wù)故障、系統(tǒng)故障的恢復(fù)例程,介質(zhì)故障的恢復(fù)要靠DBA來進行。DBMS提供的數(shù)據(jù)恢復(fù)機制并不能滿足所有的應(yīng)用情形。為了防止存儲設(shè)備的異常損壞,可以采用可熱插拔的磁盤容錯陣列或雙機熱備份等技術(shù)。為了防止人為的失誤或破壞,可建立強大的數(shù)據(jù)庫觸發(fā)器以備份重要數(shù)據(jù)的更新操作,對刪除操作,將被操作的記錄全部存儲在備份庫中,對更新操作,可以備份執(zhí)行過的SQL語句等等。保證在任何情況下,重要數(shù)據(jù)均能有效地得到恢復(fù)。只有將系統(tǒng)日志與備份數(shù)據(jù)有機地結(jié)合在一起,才能實現(xiàn)系統(tǒng)安全的‘萬無一失’。郭文明2003.06.053.3.5瀏覽器/服務(wù)器模式隨著Internet和Web技術(shù)的發(fā)展,大量的商業(yè)活動在Internet展開。在典型的C/S體系中,為Internet中的每一個用戶安裝一前端應(yīng)用程序已不再現(xiàn)實,在自己的Web站點上同時保存某一應(yīng)用程序的多個特定平臺的版本也不可行??蛻舳税惭b某種具有一定‘翻譯’功能的統(tǒng)一的構(gòu)件,充當(dāng)用戶與Internet之間的一個接口,同時是大部分應(yīng)用程序運行的主要環(huán)境外殼,這一構(gòu)件即瀏覽器。對于瀏覽器而言,程序和數(shù)據(jù)的具體位置并不重要,只需知道它們的URL(通用資源定位符)。郭文明2003.06.053.3.5瀏覽器/服務(wù)器模式基于瀏覽器/服務(wù)器計算模式的系統(tǒng)應(yīng)運而生,它繼承了C/S模式的優(yōu)點,十分容易地實現(xiàn)了不同網(wǎng)絡(luò)間的連接。目前應(yīng)用廣泛的瀏覽器/服務(wù)器計算模式主要是瀏覽器以超文本的形式向Web服務(wù)器提出訪問數(shù)據(jù)庫的請求,Web服務(wù)器接到客戶請求后,激活對應(yīng)的CGI程序?qū)⒊谋綡TML語言轉(zhuǎn)化為SQL語法,將這個請求交給數(shù)據(jù)庫,數(shù)據(jù)庫服務(wù)器得到請求后,驗證其合法性,并進行數(shù)據(jù)處理,然后將處理結(jié)果集返回CGI程序。CGI再將結(jié)果集轉(zhuǎn)化為HTML,并由Web服務(wù)器轉(zhuǎn)發(fā)給請求方的瀏覽器。郭文明2003.06.053.3.5瀏覽器/服務(wù)器模式在瀏覽器/服務(wù)器模式中,客戶端的標(biāo)準(zhǔn)配置是瀏覽器,業(yè)務(wù)處理功能處理從C/S代碼中分離出來,由獨立的應(yīng)用服務(wù)器處理,Web服務(wù)器成為應(yīng)用處理的標(biāo)準(zhǔn)配置,數(shù)據(jù)處理仍然由數(shù)據(jù)庫服務(wù)器處理.瀏覽器/服務(wù)器模式是三層分布結(jié)構(gòu),即瀏覽器-Web服務(wù)器-數(shù)據(jù)庫服務(wù)器.Web瀏覽器Web瀏覽器Web瀏覽器Web服務(wù)器數(shù)據(jù)庫應(yīng)用文件系統(tǒng)數(shù)據(jù)庫應(yīng)用數(shù)據(jù)庫服務(wù)器數(shù)據(jù)庫服務(wù)器數(shù)據(jù)庫服務(wù)器客戶層Web服務(wù)層數(shù)據(jù)庫層郭文明2003.06.053.3.5瀏覽器/服務(wù)器模式瀏覽器/服務(wù)器的三種工作方式:簡單式:Web瀏覽器需要一個HTML頁面時就提交一個URL地址到Web服務(wù)器,Web服務(wù)器從Internet上檢索到所需的本地或遠(yuǎn)程的網(wǎng)頁,并將頁面返回到瀏覽器。也可使用JavaApplet、ActiveX和JavaBean來加強表達。該模型只限于使用HTTP協(xié)議進行通信。交互式:在打開與服務(wù)器連接及傳輸數(shù)據(jù)以前,HTML獲取用戶輸入的表單、文本域、按鈕,通過這些內(nèi)容取得與用戶的交互。HTTP服務(wù)器將輸入信息傳遞服務(wù)器程序或某個腳本進行處理,Web服務(wù)器再從DBMS服務(wù)器中檢索數(shù)據(jù),然后返回瀏覽器,最后中斷瀏覽器和服務(wù)器連接。該模型已經(jīng)是三層結(jié)構(gòu),但每一個瀏覽器和服務(wù)器間的通信都要建立一個連接,造價昂貴。郭文明2003.06.053.3.5瀏覽器/服務(wù)器模式分布式:客戶程序是由可下載的Java編寫,當(dāng)HTTP服務(wù)器將含有Java小應(yīng)用程序(JavaApplet)的頁面下載到瀏覽器時,小應(yīng)用程序在瀏覽器中運行并通過構(gòu)件與傳輸服務(wù)器上的小服務(wù)程序(Servlet)通信會話,小服務(wù)程序收到信息后,經(jīng)過JDBC、ODBC或本地方法向數(shù)據(jù)庫服務(wù)器發(fā)出請求,數(shù)據(jù)庫服務(wù)器接到命令后,再將結(jié)果傳給Servlet,最后送至瀏覽器。這種方式引入了分布式計算構(gòu)件概念,使得函數(shù)也可以在網(wǎng)絡(luò)上傳遞。這樣,在網(wǎng)絡(luò)環(huán)境下,不同電腦、不同操作系統(tǒng)之間的應(yīng)用程序就可以彼此溝通,達到“平臺無關(guān)”。該模型已不再局限于Web服務(wù)器和HTTP協(xié)議,還有DCOM,CORBA協(xié)議等。瀏覽器/服務(wù)器模式引發(fā)了另外一個專門的技術(shù)領(lǐng)域Web數(shù)據(jù)庫。郭文明2003.06.053.3.6分布式數(shù)據(jù)庫體系結(jié)構(gòu)DB1DB1DB1計算機1計算機1計算機1通訊網(wǎng)絡(luò)北京重慶上海銀行系統(tǒng)背景:數(shù)據(jù)庫系統(tǒng)+計算機網(wǎng)絡(luò)郭文明2003.06.053.3.6分布式數(shù)據(jù)庫體系結(jié)構(gòu)基本特性分布性:數(shù)據(jù)存儲在不同場地上。與集中式數(shù)據(jù)庫不同。邏輯整體性:數(shù)據(jù)邏輯上是相互聯(lián)系的一個整體。與分散在計算機網(wǎng)絡(luò)不同站點上的一組沒有相互聯(lián)系的本地數(shù)據(jù)庫區(qū)別開來。定義DDBS(DistributedDataBase)是一個數(shù)據(jù)集合,這些數(shù)據(jù),分布在計算機網(wǎng)絡(luò)的不同計算機上,網(wǎng)絡(luò)中每個結(jié)點具有獨立處理的能力,可以執(zhí)行局部應(yīng)用,同時每個結(jié)點也能通過網(wǎng)絡(luò)通訊支持全局應(yīng)用。

分布式數(shù)據(jù)庫強調(diào)場地自治性(局部應(yīng)用)以及自治場地之間的協(xié)作性(全局應(yīng)用)。 “在自治的結(jié)點之間協(xié)同工作”郭文明2003.06.053.3.6分布式數(shù)據(jù)庫體系結(jié)構(gòu)體系結(jié)構(gòu)G-概念模式:定義DDBS中數(shù)據(jù)的整體邏輯結(jié)構(gòu),數(shù)據(jù)如同沒有分布一樣。分片模式:每一個關(guān)系可以分為若干互不相交的部分,每一部分稱為一個片段。分布模式:定義片段的存放地點。G-外模式G-外模式G-概念模式分片模式分布模式L-概念模式L-概念模式L-內(nèi)模式L-內(nèi)模式L-DBL-DB郭文明2003.06.053.3.6分布式數(shù)據(jù)庫體系結(jié)構(gòu)數(shù)據(jù)在分布式數(shù)據(jù)庫的存儲途徑復(fù)制 系統(tǒng)維護關(guān)系的幾個完全相同的副本,這些副本存儲在不同的結(jié)點上。分片 關(guān)系被劃分為幾個片段,各個片段存儲在不同的結(jié)點上。分片方式水平分片:將關(guān)系r按行分為若干子集r1,r2,…,rn,每個子集ri稱為一個水平片段。一個水平片段可以看成是關(guān)系上的一個選擇。垂直分片:將關(guān)系r按列分為若干屬性子集r1,r2,…,rn,每個子集ri稱為一個垂直片段。一個垂直片段可以看成是關(guān)系上的一個投影。郭文明2003.06.053.3.6分布式數(shù)據(jù)庫體系結(jié)構(gòu)導(dǎo)出分片:導(dǎo)出水平分片,分片的條件不是關(guān)系本身屬性條件,而是其它關(guān)系的屬性條件。混合分片:關(guān)系按某種方式分片后,得到的片段再按另一種方式繼續(xù)分片。復(fù)制+分片 關(guān)系被劃分為幾個片段,系統(tǒng)為每個片段維護幾個副本。數(shù)據(jù)項的命名每個數(shù)據(jù)項(關(guān)系、副本、片段)必須有唯一的名字,在分布式數(shù)據(jù)庫系統(tǒng)中必須保證在不同的結(jié)點上不會用同一個名字來代表不同的數(shù)據(jù)項。郭文明2003.06.053.3.6分布式數(shù)據(jù)庫體系結(jié)構(gòu)分布(網(wǎng)絡(luò))透明性分片透明性:用戶或應(yīng)用程序只對全局關(guān)系進行操作而不必考慮關(guān)系的分片。如果分片模式改變了,通過調(diào)整全局模式與分片模式之間的映象關(guān)系來保持全局模式不變。位置透明性:用戶或應(yīng)用程序不必了解片段的存儲位置。局部數(shù)據(jù)模型透明性:用戶或應(yīng)用程序不必了解局部場地上使用的是哪種數(shù)據(jù)模型。分布式數(shù)據(jù)庫系統(tǒng)(DDBS)的組成:全局用戶、局部用戶;全局?jǐn)?shù)據(jù)庫(GDB)、局部數(shù)據(jù)庫(LDB);全局?jǐn)?shù)據(jù)庫管理系統(tǒng)(GDBMS)、局部數(shù)據(jù)庫管理系統(tǒng)(LDBMS);全局?jǐn)?shù)據(jù)分配(GDD)、局部數(shù)據(jù)分配(LDD)。郭文明2003.06.053.4中間件在分布式計算環(huán)境中,有兩層的C/S模式、三層的C/S模式、三層的B/S模式以及多層的計算模式,不同層次之間需要相互通信。在兩層系統(tǒng)中,關(guān)系數(shù)據(jù)庫開發(fā)商提供一些專用庫和驅(qū)動程序來訪問數(shù)據(jù)庫。由這些專用程序?qū)Σ煌W(wǎng)絡(luò)協(xié)議進行抽象,在寫客戶應(yīng)用程序時無需考慮數(shù)據(jù)庫的實際位置,客戶層應(yīng)用程序可以鏈接適當(dāng)?shù)膭討B(tài)或靜態(tài)庫與數(shù)據(jù)層進行通信,這些動態(tài)或靜態(tài)庫保證了請求和數(shù)據(jù)格式的一致、訪問優(yōu)化、分布式服務(wù)管理,稱為中間件(如ODBC)。郭文明2003.06.053.4中間件多層系統(tǒng)中需要更復(fù)雜的關(guān)系實現(xiàn)跨網(wǎng)絡(luò)、跨層次的通信,客戶應(yīng)用程序需要一種通信模型,來協(xié)調(diào)應(yīng)用程序的不同平臺。當(dāng)這種模型實現(xiàn)后,就出現(xiàn)了為這樣的客戶應(yīng)用程序提供中間件基礎(chǔ)的標(biāo)準(zhǔn)。多層系統(tǒng)中中間件是建立在一種通信模型基礎(chǔ)之上。中間件定義:中間件(Middleware)是分布式環(huán)境中保證操作系統(tǒng)、通信協(xié)議、數(shù)據(jù)庫之間進行對話、互操作的軟件系統(tǒng)。在C/S環(huán)境中,中間件同時存在于客戶端和服務(wù)器端,負(fù)責(zé)客戶和服務(wù)器間的請求和回答。在分布式環(huán)境中,中間件允許不同服務(wù)器之間相互通信。郭文明2003.06.053.4中間件中間件作用:保證網(wǎng)絡(luò)中各部件之間透明地連接,即隱藏網(wǎng)絡(luò)部件的異構(gòu)性,保證不同網(wǎng)絡(luò)、不同DBMS和某些訪問語言的透明性。網(wǎng)絡(luò)透明性:能支持所有類型網(wǎng)絡(luò)。服務(wù)器透明性:不管服務(wù)器的DBMS是何種型號,一個好的中間件都能通過SQL語言連接起來。語言透明性:客戶機可用任何語言進行請求和接受回答,并保證數(shù)據(jù)類型的相互轉(zhuǎn)換。郭文明2003.06.053.4中間件由于用途不同,存在不同種類的中間件,主要有數(shù)據(jù)訪問中間件、遠(yuǎn)程過程調(diào)用中間件、分布式事務(wù)處理中間件、對象調(diào)用以及面向消息的中間件等。不同種類的中間件基于不同的通信模型。為了滿足不同客戶實現(xiàn)(編程語言)的需要,中間件技術(shù)在近10年中得到極大發(fā)展。第一個獲得廣泛認(rèn)可的中間件技術(shù)是遠(yuǎn)程調(diào)用中間件(RPC)。使用遠(yuǎn)程過程調(diào)用,客戶可以在遠(yuǎn)程計算機上執(zhí)行C語言函數(shù)。對于遠(yuǎn)程過程調(diào)用體系結(jié)構(gòu)來說,ONCRPC(OpenNetworkComputingRPC)和DCE(OpenGroup’sDistributedCoputingEnvironment)是主流標(biāo)準(zhǔn)。郭文明2003.06.053.4中間件隨著面向?qū)ο笳Z言的流行,分布式中間件也朝面向?qū)ο蠓较虬l(fā)展,OMG(對象管理組織)提出了CORBA(CommonObjectRequestBrokerArchitecture),微軟提出了COM(ComponentObjectModel),都是規(guī)范分布式對象體系結(jié)構(gòu)的嘗試。許多開發(fā)商推出了基于這些規(guī)范的中間件。

IBM早在20世紀(jì)90年代初就提出了系統(tǒng)對象模型SOM(SystemObjectModel)。為了避開與微軟競爭,IBM也轉(zhuǎn)向了CORBA。郭文明2003.06.053.4中間件ODBC(OpenDatabaseConnect)它是由Microsoft公司于1991年提出的一個用于訪問數(shù)據(jù)庫的統(tǒng)一界面標(biāo)準(zhǔn),是應(yīng)用程序和數(shù)據(jù)庫系統(tǒng)之間的中間件。它通過使用相應(yīng)應(yīng)用平臺上和所需數(shù)據(jù)庫對應(yīng)的驅(qū)動程序與應(yīng)用程序的交互來實現(xiàn)對數(shù)據(jù)庫的操作,避免了在應(yīng)用程序中直接調(diào)用與數(shù)據(jù)庫相關(guān)的操作,從而提供了數(shù)據(jù)庫的獨立性。

傳統(tǒng)的數(shù)據(jù)庫編程方式是‘主語言+DML’。由于各廠商的SQL版本不同,不同廠商的DBMS在客戶機與服務(wù)器之間使用的通信協(xié)議不同,使得特定的前端應(yīng)用不能訪問不同的數(shù)據(jù)庫。因此有必要建立一個公共的、與數(shù)據(jù)庫無關(guān)的應(yīng)用程序設(shè)計接口(ApplicationProgrammingInterface,API)。最先推出的

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論