在一個數(shù)據(jù)庫應用系統(tǒng)中,包括數(shù)據(jù)存儲層、業(yè)務處理層和界面表示層三個層次。數(shù)據(jù) 庫系統(tǒng)體系結構就是指數(shù)據(jù)庫應用系統(tǒng)中數(shù)據(jù)存儲層、業(yè)務處理層、界面表示層等之間的布 局和分布。 數(shù)據(jù)庫系統(tǒng)體系結構可以從不同層次或不同角度來分析。
從數(shù)據(jù)庫最終用戶角度看數(shù)據(jù) 庫系統(tǒng)外部的體系結構,可以將其體系結構分為單用戶結構、主從式結構、分布式結構、客 戶機/服務器結構和瀏覽器/服務器結構等。
1.單用戶結構
單用戶結構的數(shù)據(jù)庫系統(tǒng)是一種比較簡單的數(shù)據(jù)庫系統(tǒng),通常稱為桌面型數(shù)據(jù)庫管理系 統(tǒng)。這種桌面型數(shù)據(jù)庫管理系統(tǒng)已經(jīng)基本上實現(xiàn)了 DBMS 應該具備的功能。 這種單用戶系統(tǒng)結構,其特點是整個數(shù)據(jù)庫系統(tǒng)包括操作系統(tǒng)、DBMS、應用程序和數(shù) 據(jù)庫等都安裝在一臺計算機上,由一個用戶獨占,不同機器間不能共享數(shù)據(jù),容易造成數(shù)據(jù) 大量冗余,主要適合于個人計算機用戶。
單用戶結構中,數(shù)據(jù)存儲層、業(yè)務處理層和界面表示層都存在于一個計算機上。目前比 較流行的這種結構的 DBMS 有 Access 和 Visual FoxPro。
2、主從式結構
主從式結構的數(shù)據(jù)庫系統(tǒng)是一種采用大型主機和終端結合的系統(tǒng),這種結構是將操作系 統(tǒng)、應用程序和數(shù)據(jù)庫系統(tǒng)等數(shù)據(jù)和資源放在主機上,事務由主機完成,終端只是作為一種輸入/輸出設備,可以共享主機的數(shù)據(jù)。
在這種主從式結構中,數(shù)據(jù)存儲層和應用層都放在 主機上,而用戶界面層放在各個終端上。 這種結構的優(yōu)點是簡單,數(shù)據(jù)易于管理和維護,但對主機性能要求比較高。
缺點是當終 端用戶增加到一定程度后,主機的任務會過于繁重,使性能大大下降,可靠性不夠高。并且 這種結構通信費用比較昂貴,這是數(shù)據(jù)庫系統(tǒng)初期較流行的一種體系結構。這種結構比較典 型的有一些銀行的業(yè)務系統(tǒng),其業(yè)務數(shù)據(jù)存放在大型主機中,柜面業(yè)務人員通過終端實現(xiàn)對 主機數(shù)據(jù)的共享。
3、分布式結構
分布式結構的數(shù)據(jù)庫系統(tǒng)是指數(shù)據(jù)庫中的數(shù)據(jù)在邏輯上是一個整體,但物理地分布在計 算機網(wǎng)絡的不同結點上。
分布式數(shù)據(jù)庫系統(tǒng)由多臺計算機組成,每臺計算機都配有各自的本 地數(shù)據(jù)庫。在分布式數(shù)據(jù)庫系統(tǒng)中,大多數(shù)處理任務由本地計算機訪問本地數(shù)據(jù)庫完成局部 應用;對于少量本地計算機不能勝任的處理任務,通過網(wǎng)絡存取和處理多個異地數(shù)據(jù)庫中的 數(shù)據(jù),執(zhí)行全局應用。
分布式結構的優(yōu)點是適應了地理上分散的公司、團體和組織對數(shù)據(jù)庫應用的需求,體系 結構靈活,經(jīng)濟性能好。其缺點是由于數(shù)據(jù)的分散存放,給數(shù)據(jù)的處理、管理與維護帶來困 難。
而且當用戶需要經(jīng)常訪問遠程數(shù)據(jù)時,系統(tǒng)效率會明顯地受到網(wǎng)絡傳輸?shù)闹萍s。分布式 結構大量用于跨不同地區(qū)的公司、團體等。
4、客戶機/服務器結構
客戶機/服務器(Client/Server,C/S)結構是當前非常流行的一種結構。在這種結構中, 網(wǎng)絡中某個(些)結點上的計算機專門用于執(zhí)行 DBMS 功能,稱為服務器。其他結點上的計算 機安裝 DBMS 的外圍應用開發(fā)工具以及用戶的應用系統(tǒng),稱為客戶機。
客戶機提出請求, 服務器對客戶機的請求做出回應。 在客戶機/服務器結構的數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)存儲層處于服務器上,應用層和用戶界面 層處于客戶機上??蛻魴C支持用戶應用,負責管理用戶界面、接收用戶數(shù)據(jù)、生成數(shù)據(jù)庫服 務請求等;服務器則接收客戶機的請求,處理請求并返回執(zhí)行的結果。 這種結構的優(yōu)點是不需要將大量數(shù)據(jù)在網(wǎng)絡上傳輸,減少了網(wǎng)絡的數(shù)據(jù)傳輸量,提高了 系統(tǒng)的性能、吞吐量和負載能力。數(shù)據(jù)庫更加開放,可移植性高,因為客戶機與服務器 一 般都能在多種不同的硬件和軟件平臺上運行,并且可以使用不同廠商的數(shù)據(jù)庫應用開發(fā) 工 具。
但這種結構本身也有缺點,如系統(tǒng)安裝復雜,工作量大;應用維護困難,難于保密, 造 成安全性差;相同的應用程序要重復安裝在每一臺客戶機上,從總體來看,大大浪費了系統(tǒng) 資源。特別是當系統(tǒng)規(guī)模達到數(shù)百或數(shù)千臺客戶機,它們的硬件配置、操作系統(tǒng)又常常不同, 要為每一個客戶機安裝應用程序和相應的工具模塊,其安裝維護代價便不可接受了。 客戶機/服務器結構也可分為集中的和分布的。集中的服務器結構只有一臺數(shù)據(jù)庫服務 器,多臺客戶機。分布的服務器結構在網(wǎng)絡中有多臺數(shù)據(jù)庫服務器,它是客戶機/服務器與 分布式數(shù)據(jù)庫的結合。
5.瀏覽器/服務器結構
由于客戶機/服務器結構需要配置和維護多個客戶端支撐軟件,不但會造成客戶機臃腫, 而且給應用程序的維護工作帶來了很大的不便。隨著因特網(wǎng)瀏覽器功能越來越強大,在許多 場合下,可以用瀏覽器取代客戶機/服務器結構的客戶端軟件,因此,人們提出了一種改進 的結構——瀏覽器/服務器(B/S)結構。這種結構中,統(tǒng)一用瀏覽器作為客戶端,實現(xiàn)用 戶的輸入輸出。
應用程序的業(yè)務邏輯和數(shù)據(jù)處理都在服務器端安裝和運行,因此,服務器端 除了要有數(shù)據(jù)庫服務器保存數(shù)據(jù)并運行基本的數(shù)據(jù)操作外,還要有處理客戶端提交的處理要求的應用服務器。這種結構的數(shù)據(jù)存儲層處于數(shù)據(jù)庫服務器上,主要執(zhí)行數(shù)據(jù)邏輯,運行 SQL 式存儲過程;業(yè)務處理層位于應用服務器上,主要執(zhí)行業(yè)務邏輯,向數(shù)據(jù)庫發(fā)送請求;
而用戶界面層位于客戶機,實現(xiàn)用戶引導,向應用服務器發(fā)送請求并顯示處理結果。 瀏覽器/服務器結構采用瀏覽器作為客戶端,界面統(tǒng)一,容易為用戶所掌握,大大減少 了用戶培訓時間。并且由于所有業(yè)務邏輯和數(shù)據(jù)處理均在服務器端執(zhí)行,大大減少了系統(tǒng)開 發(fā)和維護的代價,能夠支持數(shù)萬甚至更多的用戶。這種結構已成為目前最流行的數(shù)據(jù)庫體系 結構。