摘要:隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,分布式數(shù)據(jù)庫技術(shù)得到越來越廣泛的應(yīng)用。本文探討了在設(shè)計(jì)基于B/S結(jié)構(gòu)的辦公自動化系統(tǒng)中如何應(yīng)用分布式數(shù)據(jù)庫技術(shù),以及在應(yīng)用過程中的數(shù)據(jù)庫設(shè)計(jì)的原則、結(jié)構(gòu)、機(jī)制等。
關(guān)鍵詞:分布式數(shù)據(jù)庫;辦公自動化;應(yīng)用
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2008)12-20000-00
The Application of Distributed Database in Office Automation System
YANG Zhi
(Zhejiang Water Conservancy and Hydropower College,Hangzhou 310018,China)
Abstract: Application of distributed database in office automation system With the development of computer network technology, application of distributed database has been wider and wider. This paper discuss the problem that how to use the distributed database technology in the office automation system which is based on the Browse/Server frame, and the principia, structure, mechanism in the process of designing distributed database.
Key words:DDBS; OA; application
1 概述
分布式數(shù)據(jù)庫是一個(gè)面向地理上分散而在管理上需要集中的提供數(shù)據(jù)信息的處理系統(tǒng),是分布式技術(shù)與數(shù)據(jù)庫技術(shù)的結(jié)合,在數(shù)據(jù)庫研究領(lǐng)域中已有多年的歷史,主要解決計(jì)算機(jī)在網(wǎng)絡(luò)上如何進(jìn)行數(shù)據(jù)的分布和處理。從概念上講,分布式數(shù)據(jù)庫是物理上分散在計(jì)算機(jī)網(wǎng)絡(luò)各結(jié)點(diǎn)上,而邏輯上屬于同一個(gè)系統(tǒng)的數(shù)據(jù)集合,它具有數(shù)據(jù)的分布性和數(shù)據(jù)庫間的協(xié)調(diào)性兩大特點(diǎn)。系統(tǒng)強(qiáng)調(diào)結(jié)點(diǎn)的自治性而不強(qiáng)調(diào)系統(tǒng)的集中控制,且系統(tǒng)應(yīng)保持?jǐn)?shù)據(jù)的分布透明性,使應(yīng)用程序編寫時(shí)可完全不考慮數(shù)據(jù)的分布情況。由于它有物力分布性、邏輯整體性及站點(diǎn)自治性等特點(diǎn),因此十分適合在系統(tǒng)化的行業(yè)或項(xiàng)目中應(yīng)用[1]。
而隨著信息化時(shí)代的到來,計(jì)算機(jī)網(wǎng)絡(luò)、通信技術(shù)和多媒體技術(shù)迅速發(fā)展和廣泛應(yīng)用,使實(shí)現(xiàn)計(jì)算機(jī)辦公、網(wǎng)絡(luò)辦公成為現(xiàn)代管理工作的主要方式,網(wǎng)絡(luò)化的程度越來越高。對于龐大的校園網(wǎng)絡(luò)來說,實(shí)現(xiàn)網(wǎng)絡(luò)化就必須解決數(shù)據(jù)共享的問題,而分布式數(shù)據(jù)庫技術(shù)正好可以解決這樣的問題,大型組織結(jié)構(gòu)跨地區(qū)形式上的聯(lián)系,使面向整個(gè)組織結(jié)構(gòu)的信息分而治之的集中管理,比單一的集中管理更有利,不僅能克服集中式數(shù)據(jù)庫的不足,也完全適應(yīng)分布組織結(jié)構(gòu)的自身特點(diǎn)。所以說分布式數(shù)據(jù)庫技術(shù)在校園網(wǎng)的建設(shè)中的應(yīng)用前景是十分寬廣的。
2 校園網(wǎng)建設(shè)中分布式數(shù)據(jù)庫的設(shè)計(jì)
2.1 系統(tǒng)結(jié)構(gòu)的選擇
系統(tǒng)結(jié)構(gòu)的設(shè)計(jì)是整個(gè)系統(tǒng)開發(fā)過程中的關(guān)鍵點(diǎn)。對于應(yīng)用系統(tǒng)來說,特別是一些較為復(fù)雜的系統(tǒng),沒有一個(gè)合適的系統(tǒng)結(jié)構(gòu)而要有一個(gè)成功的系統(tǒng)幾乎是不可想象的。不同類型的系統(tǒng)需要不同的結(jié)構(gòu)體系,系統(tǒng)的設(shè)計(jì)往往很大程度取決于系統(tǒng)結(jié)構(gòu)的選擇。按照系統(tǒng)終端情況的不同,可將校園網(wǎng)的開發(fā)結(jié)構(gòu)分為B/S(瀏覽器/服務(wù)器)和C/S(客戶端/服務(wù)器)兩種結(jié)構(gòu)模式,它們各具特色,是當(dāng)前系統(tǒng)開發(fā)的主流。
B/S結(jié)構(gòu)的系統(tǒng)以服務(wù)器為核心,程序處理和數(shù)據(jù)存儲基本上都在服務(wù)器端完成,用戶無須安裝專門的客戶端軟件,只要通過網(wǎng)絡(luò)中的計(jì)算機(jī)連接服務(wù)器,使用瀏覽器就可以進(jìn)行事務(wù)處理。C/S結(jié)構(gòu)的系統(tǒng)以服務(wù)器作為數(shù)據(jù)處理和存儲平臺,在終端必須裝有特定的程序來進(jìn)行事務(wù)處理,然后再將數(shù)據(jù)傳遞到服務(wù)器端,用戶必須使用客戶端應(yīng)用程序才能對數(shù)據(jù)進(jìn)行操作。
與C/S結(jié)構(gòu)相比,B/S結(jié)構(gòu)的系統(tǒng)明顯具有以下優(yōu)點(diǎn):
1)客戶端無需裝有特定程序只需使用現(xiàn)行的瀏覽器,其操作十分方便,簡單易學(xué),界面統(tǒng)一,降低了用戶使用難度,易于接受,這樣既節(jié)省了開發(fā)時(shí)間,也減少了系統(tǒng)出錯(cuò)的可能性,基本實(shí)現(xiàn)了客戶端零維護(hù),降低了工作量。
2)技術(shù)上相對成熟,投入費(fèi)用少,系統(tǒng)維護(hù)簡便,簡單易用。應(yīng)用B/S結(jié)構(gòu),校園網(wǎng)只需在服務(wù)器端集中實(shí)現(xiàn)和配置的維護(hù)、管理,大大降低了客戶端用于系統(tǒng)維護(hù)和升級的難度與工作量,使整個(gè)系統(tǒng)更加容易實(shí)施。
3)系統(tǒng)運(yùn)行穩(wěn)定、安全、可靠,并可進(jìn)行擴(kuò)展;移植容易,并可以進(jìn)行嚴(yán)密的安全管理[2]。
因此,本校園網(wǎng)系統(tǒng)的開發(fā)將采用B/S的結(jié)構(gòu)。
2.2 分布式數(shù)據(jù)庫的設(shè)計(jì)
2.2.1 設(shè)計(jì)原則
綜合考慮到校園網(wǎng)系統(tǒng)基礎(chǔ)數(shù)據(jù)量大,訪問頻繁,設(shè)計(jì)時(shí)應(yīng)遵循效率至上的基本原則,同時(shí)從全局的角度出發(fā),數(shù)據(jù)從總部至每個(gè)分站點(diǎn)構(gòu)成分布式數(shù)據(jù)庫系統(tǒng),保證全局?jǐn)?shù)據(jù)的完整性和一致性。各分站點(diǎn)存放本地的數(shù)據(jù),總部的數(shù)據(jù)庫則存放整個(gè)網(wǎng)絡(luò)系統(tǒng)的管理數(shù)據(jù),并對數(shù)據(jù)進(jìn)行完整性和一致性的檢查,這種做法雖然有一定的數(shù)據(jù)冗余,但有利于系統(tǒng)的集中管理。分站點(diǎn)每次本地業(yè)務(wù)不必向總部發(fā)送數(shù)據(jù)請求,也提高了局部應(yīng)用的效率,減少了通訊代價(jià)。另外該分布式數(shù)據(jù)庫系統(tǒng)可以在任何時(shí)間和地點(diǎn)增加新的分站點(diǎn),并且對其他分站點(diǎn)無影響。
2.2.2 系統(tǒng)結(jié)構(gòu)
該校園網(wǎng)是由一個(gè)核心服務(wù)器和許多局部服務(wù)器構(gòu)成。核心數(shù)據(jù)庫存放所有的管理數(shù)據(jù),管理整個(gè)系統(tǒng)正常運(yùn)行,局部數(shù)據(jù)庫存放本地的管理數(shù)據(jù),局部的本地服務(wù)器處理局部用戶的請求。采用這種有冗余的相對集中分布式結(jié)構(gòu)可以對系統(tǒng)中的主要數(shù)據(jù)進(jìn)行集中式管理,某些數(shù)據(jù)的冗余則可保證各分站點(diǎn)在低帶寬條件下對常用信息的高速存取[3]。核心和局部服務(wù)器都包含各自的WEB服務(wù)器、服務(wù)器應(yīng)用程序和數(shù)據(jù)庫。
每個(gè)局部服務(wù)器有一個(gè)文件服務(wù)器來存放本地的系統(tǒng)數(shù)據(jù)。核心和局部服務(wù)器是用因特網(wǎng)來連接的。用戶在分站點(diǎn)上登錄時(shí)先到本地?cái)?shù)據(jù)庫檢索該用戶,若未檢索到則到核心數(shù)據(jù)庫檢索。當(dāng)WEB服務(wù)器收到用戶的請求后,服務(wù)器應(yīng)用程序和WEB服務(wù)器將請求轉(zhuǎn)換為數(shù)據(jù)庫訪問命令,并發(fā)送到數(shù)據(jù)庫服務(wù)器,數(shù)據(jù)庫服務(wù)器執(zhí)行命令并返回結(jié)果。
2.2.3 分布式數(shù)據(jù)庫的數(shù)據(jù)存取機(jī)制
1)首先確定數(shù)據(jù)的物理位置
分布式數(shù)據(jù)庫環(huán)境中,對每個(gè)數(shù)據(jù)表都要確定其最佳的存放位置,從而使數(shù)據(jù)庫的分布更加合理。
2)其次再確定數(shù)據(jù)庫及其對象
對每個(gè)獨(dú)立場點(diǎn)都要建立一個(gè)數(shù)據(jù)庫,同一場點(diǎn)也可以建立多個(gè)數(shù)據(jù)庫,每個(gè)數(shù)據(jù)庫中還要根據(jù)實(shí)際需求建立有關(guān)的數(shù)據(jù)庫對象。
3)最后確定數(shù)據(jù)存取機(jī)制
在分布式數(shù)據(jù)庫設(shè)計(jì)時(shí)就需要確定如何訪問和存取其它數(shù)據(jù)庫中的數(shù)據(jù),如何實(shí)現(xiàn)不同數(shù)據(jù)庫中數(shù)據(jù)表的鏈接等規(guī)則。
本校園網(wǎng)采用了分布式數(shù)據(jù)庫結(jié)構(gòu)。由于數(shù)據(jù)的分布存放,將對數(shù)據(jù)的處理、管理與維護(hù)帶來困難,當(dāng)用戶需要經(jīng)常訪問遠(yuǎn)程數(shù)據(jù)時(shí),系統(tǒng)效率會明顯地受到網(wǎng)絡(luò)通信的制約。因此,采用何種數(shù)據(jù)存儲機(jī)制將是分布式數(shù)據(jù)庫設(shè)計(jì)以及影響其運(yùn)行速度和效率的關(guān)鍵要素[4]。在分布式數(shù)據(jù)庫系統(tǒng)中,可以通過復(fù)制、分片和復(fù)制加分片3種方式存儲數(shù)據(jù),因?yàn)楦鞯赜颥F(xiàn)有數(shù)據(jù)庫之間存在一定的數(shù)據(jù)冗余,又存在著差異,所以本系統(tǒng)采用了復(fù)制加分片的方式進(jìn)行數(shù)據(jù)存儲,這將涉及到數(shù)據(jù)分片和同步兩個(gè)存儲要素:
1)數(shù)據(jù)分片
在分布式數(shù)據(jù)庫系統(tǒng)中,將關(guān)系分片,這有利于按用戶需求組織數(shù)據(jù)的分布。目前的分片方式有水平分片、垂直分片、導(dǎo)出分片、混合分片等4種,可以根據(jù)不同的數(shù)據(jù)關(guān)系采用不同的分片方式: ① 在核心數(shù)據(jù)庫與各分布點(diǎn)數(shù)據(jù)庫的數(shù)據(jù)關(guān)系中,由于分布點(diǎn)的數(shù)據(jù)是核心數(shù)據(jù)庫數(shù)據(jù)的子集,本系統(tǒng)采用了水平分片的方式,通過并運(yùn)算實(shí)現(xiàn)關(guān)系的重構(gòu);② 在總數(shù)據(jù)庫的數(shù)據(jù)關(guān)系中,數(shù)據(jù)是按照其事務(wù)功能或事務(wù)流程來劃分的,所以這里采用了垂直分片的方式。
2)數(shù)據(jù)同步
數(shù)據(jù)同步則是根據(jù)數(shù)據(jù)庫系統(tǒng)需求使用事務(wù)復(fù)制和合并復(fù)制兩種,根據(jù)事務(wù)流程的垂直分片,各個(gè)分布點(diǎn)(功能模塊) 只存放本點(diǎn)的數(shù)據(jù),數(shù)據(jù)管理和分析功能是由總部的核心數(shù)據(jù)庫服務(wù)器來實(shí)現(xiàn)的,各個(gè)分布點(diǎn)只需將更新的數(shù)據(jù)發(fā)送到核心數(shù)據(jù)庫即可, 所以,本系統(tǒng)采用事務(wù)復(fù)制進(jìn)行業(yè)務(wù)數(shù)據(jù)的同步,并在分發(fā)數(shù)據(jù)庫中記錄同步狀態(tài)的信息。
2.2.4 分布式數(shù)據(jù)庫系統(tǒng)的事務(wù)并發(fā)處理
該校園網(wǎng)系統(tǒng)的數(shù)據(jù)庫系統(tǒng)如所有分布式數(shù)據(jù)庫系統(tǒng)一樣,將事務(wù)的管理劃分為兩個(gè)層次,在各分站點(diǎn)由局部事務(wù)管理器對局部事務(wù)進(jìn)行管理,對整個(gè)數(shù)據(jù)庫系統(tǒng),由分布式事務(wù)管理器來協(xié)作完成對分布式事務(wù)管理。由于系統(tǒng)對數(shù)據(jù)更新操作大多數(shù)是異步進(jìn)行的,所以對于這些異步操作的數(shù)據(jù)來說,對每一分站點(diǎn)內(nèi)更新事務(wù)的并發(fā)控制,就成為完成對核心數(shù)據(jù)庫更新的基礎(chǔ)[5]。在每一個(gè)分站點(diǎn)內(nèi),對數(shù)據(jù)的更新事務(wù)又被分為許多子事務(wù),要正確處理子事務(wù)的并發(fā)控制,避免事務(wù)讀無效數(shù)據(jù)和瀑布式回退,采用嚴(yán)格的兩階段加鎖協(xié)議,即所有事務(wù)只有到達(dá)交付點(diǎn)之后才能將數(shù)據(jù)寫入數(shù)據(jù)庫,所有事務(wù)只有在完成數(shù)據(jù)寫入以后才能對操作對象解鎖。當(dāng)發(fā)生故障時(shí),事務(wù)的恢復(fù)是保證事務(wù)原狀的重要措施,依靠日志是事務(wù)恢復(fù)的重要手段,對數(shù)據(jù)庫系統(tǒng)日志和數(shù)據(jù)定時(shí)備份,利用備份來恢復(fù)數(shù)據(jù)庫。其中,備份的最大問題是備份打開的文件,由于頻繁的更新和用戶需要時(shí)的可訪問性,數(shù)據(jù)庫系統(tǒng)運(yùn)行時(shí)使其文件保持打開。如果數(shù)據(jù)備份時(shí)包括了數(shù)據(jù)已更新和未更新,但又存在內(nèi)在依賴關(guān)系的兩部分?jǐn)?shù)據(jù),那么數(shù)據(jù)庫文件的備份就失去了完整性,最好的辦法是在操作相對較少的時(shí)段關(guān)閉數(shù)據(jù)庫進(jìn)行備份,備份完畢再啟動數(shù)據(jù)庫。
3 結(jié)語
通過使用B/S架構(gòu),再引進(jìn)分布式數(shù)據(jù)庫技術(shù),可以有效解決校園網(wǎng)中的很多應(yīng)用需求,有效地緩解了數(shù)據(jù)分散和集中管理的矛盾,實(shí)現(xiàn)了數(shù)據(jù)的共享和交換。當(dāng)然,在實(shí)際開發(fā)過程中,還應(yīng)注意根據(jù)需要考慮采用鎖定機(jī)制、存儲過程、分布事務(wù)來保證數(shù)據(jù)的有效性和一致性。
參考文獻(xiàn):
[1] 阮宏一.分布式數(shù)據(jù)庫系統(tǒng)工作原理分析.江漢大學(xué)學(xué)報(bào)(自然科學(xué)版),2006.
[2] 王政,徐玲.電子政務(wù)理論與實(shí)務(wù)[M].北京:清華大學(xué)出版社,2004.
[3] 邵佩英.分布式數(shù)據(jù)庫系統(tǒng)及其應(yīng)用[M].北京:科學(xué)出版社,2000.
[4] 王子牛.ORACLE分布式數(shù)據(jù)庫及其應(yīng)用程序的簡歷[J].計(jì)算機(jī)與信息技術(shù),2004, (9).
[5] 王春森.數(shù)據(jù)庫理論與新技術(shù)[M].北京:北京理工大學(xué)出版社,2001.
收稿日期:2008-02-27