分布式數(shù)據(jù)庫在校園一卡通中的應(yīng)用
文章出處:http://m.luckydriving.com 作者: 人氣: 發(fā)表時間:2011年12月11日
摘要:論文首先分析了分布式數(shù)據(jù)庫的概念,然后給出了校園一卡通中數(shù)據(jù)庫如何實現(xiàn)了分布式的流程。最后探索了系統(tǒng)應(yīng)用的關(guān)鍵點,該論文可以作為有關(guān)人員有益的參考。
現(xiàn)代化的學(xué)校少不了現(xiàn)代化管理設(shè)施、設(shè)備的武裝。管理信息化水平正在成為衡量學(xué)校總體水平的重要因素之一,也是學(xué)校管理能否達(dá)到現(xiàn)代化標(biāo)準(zhǔn)的重要標(biāo)志。校園一卡通系統(tǒng)是數(shù)字化校園的基礎(chǔ)工程,是數(shù)字化校園中有機(jī)的和重要的組成部分。應(yīng)用一卡通,主要是結(jié)合這校園網(wǎng),與校園網(wǎng)數(shù)據(jù)庫相連,采用一個統(tǒng)一的軟件進(jìn)行管理,完成有關(guān)的查詢。消費等等一系列功能。達(dá)到 “一卡在手,走遍校園 ”必將滿足學(xué)校數(shù)字化校園建設(shè)和金融服務(wù)的需求及目的。
1分布式數(shù)據(jù)庫淺析
1.1分布式數(shù)據(jù)庫的概念
要開發(fā)一個基于數(shù)據(jù)庫的應(yīng)用系統(tǒng),其中最關(guān)鍵的一步就是整個系統(tǒng)所依據(jù)的數(shù)據(jù)庫的建模設(shè)計,從邏輯的到物理的,一個環(huán)節(jié)疏于設(shè)計,整個的應(yīng)用系統(tǒng)便似建立在危房之上,隨著開發(fā)過程的不斷深入,它要隨時面臨著各種難以預(yù)料的風(fēng)險,開發(fā)者要為修改或重新設(shè)計沒有設(shè)計好的數(shù)據(jù)庫系統(tǒng)而付出難以預(yù)料的代價。所以,一個良好的數(shù)據(jù)庫設(shè)計是高效率的系統(tǒng)所需要的重要基礎(chǔ)。而分布式數(shù)據(jù)庫就是本系統(tǒng)所依托的核心。
所謂分布式數(shù)據(jù)庫(簡稱 DDB)可以定義為物理上分布而邏輯上集中的共享數(shù)據(jù)的集合。分布式數(shù)據(jù)庫跟集中式數(shù)據(jù)庫有共同點也有不同之處。對于分布式數(shù)據(jù)庫來講,它也包含著兩個重要的組成部分:首先是對于數(shù)據(jù)的集合,它們是物理上硬件存在的數(shù)據(jù)庫,是分布式數(shù)據(jù)庫最關(guān)鍵的組成部分。另外的一個組成部分,是隸屬于數(shù)據(jù)結(jié)構(gòu)方面,它實現(xiàn)了對數(shù)據(jù)段的分片、分布描述。
1.2分布式數(shù)據(jù)庫的策略
在分布式數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)分割和分布是兩個重要的概念。事實上 ,大部分的問題是分布式數(shù)據(jù)庫數(shù)據(jù)分割和分布 ,導(dǎo)致整個系統(tǒng)的可用性和可靠性以及效率方面的影響。數(shù)據(jù)分割發(fā)揮著重要的作用,它采用某種方式使得全局?jǐn)?shù)據(jù)庫按照一定的層次、邏輯關(guān)系進(jìn)行整合,從而實現(xiàn)得到不同的局部數(shù)據(jù)庫;數(shù)據(jù)分布通常描述了數(shù)據(jù)庫的分布特點。以為對于分布式數(shù)據(jù)庫來說,所有的數(shù)據(jù)沒有保存在一個統(tǒng)一的地方,它們以邏輯段方式分布到了很多網(wǎng)絡(luò)節(jié)點上。一般來說,分布式數(shù)據(jù)庫的數(shù)據(jù)分布策略是多種多樣的,下面進(jìn)行分析:
1)所有的數(shù)據(jù)段集中于同一地點。這樣的策略保證系統(tǒng)的數(shù)據(jù)都存儲在同一地點 ,使得對其控制和管理非常之容易,也可以使得數(shù)據(jù)一致性和完整性得到保證。這里需要注意,由于檢索和修改數(shù)據(jù)通過這個平臺的時候,會使得現(xiàn)場負(fù)擔(dān)加重。特別是如果這個網(wǎng)站存在著瓶頸,那么很容易導(dǎo)致整個系統(tǒng)癱瘓,總之系統(tǒng)的可靠性得不到保證。
2)分割式所有數(shù)據(jù)只有一份,它被分割成若干個邏輯片段,每個分成幾塊分配在了不同地點。這樣的策略能夠允許充分利用各種現(xiàn)場倉儲設(shè)備來進(jìn)行數(shù)據(jù)存儲,存儲的數(shù)據(jù)在不同的地點可以修改數(shù)據(jù),并發(fā)揮操作系統(tǒng)的并行處理能力。同時 ,由于數(shù)據(jù)分布在多個地點 ,當(dāng)一些網(wǎng)站出現(xiàn)故障時,系統(tǒng)還可以運行,提高了系統(tǒng)的可靠性。
3)復(fù)制式。對于總體數(shù)據(jù)存在著多個復(fù)制備份,而且每一個網(wǎng)站都是完全的拷貝數(shù)據(jù)。通過這個策略,會使得數(shù)據(jù)庫可靠性高、響應(yīng)速度快,而且回收數(shù)據(jù)容易得多。但是需要使得每個站點數(shù)據(jù)同步,這往往付出高昂的代價。而且當(dāng)整個系統(tǒng)的數(shù)據(jù)冗余比較嚴(yán)重時,數(shù)據(jù)庫存儲通常也會受到較大影響。
4)混合數(shù)據(jù)分為幾個子集,每個不同子集的網(wǎng)站,但沒有任何地點保存所有的數(shù)據(jù)。這樣的策略,具有復(fù)制式和分割式的雙重特點,可以提高系統(tǒng)效率,但是也保有了二者的復(fù)雜性。
2基于 XML的數(shù)據(jù)庫交互
2.1基本思想
在整個校園一卡通分布式數(shù)據(jù)庫及數(shù)據(jù)分布方案中,把各個子系統(tǒng)的數(shù)據(jù)庫設(shè)計為如圖 1所示。
圖1 數(shù)據(jù)庫互聯(lián)
由于一卡通的實現(xiàn),實際上是對原有校園各個子系統(tǒng)的二次開發(fā)、改造與結(jié)合,那么整個一卡通系統(tǒng)的實現(xiàn)就需要需要借助于 XML技術(shù)。 XML(Extensible Markup Language,可擴(kuò)展標(biāo)記語言)是一種界定文本數(shù)據(jù)簡便而標(biāo)準(zhǔn)的方法,得到工業(yè)界廣泛支持,具有自描述和數(shù)據(jù)結(jié)構(gòu)化表示的特點。 1998年 2月,XML1.0成為 W3C的推薦標(biāo)準(zhǔn),它的數(shù)據(jù)描述機(jī)制使它成為 Internet/Intranet上共享數(shù)據(jù)信息的一種有效方式,能夠在不同的用戶和程序之間交換數(shù)據(jù)而不論其平臺如何;文檔類型定義 (Document Type Definition DTD)則使 XML文檔不僅遵循 XML的語法規(guī)則,而且受所創(chuàng)建的詞匯表規(guī)則約束,成為有效的 XML文檔。
本文主要是應(yīng)用 XML作為數(shù)據(jù)庫從分布到中央的交互載體。在相互轉(zhuǎn)換時需要應(yīng)用某種的規(guī)則從而保證正向變換以及反向變換都是可行的。不僅如此,這種規(guī)則還要使得關(guān)系數(shù)據(jù)庫里固有的約束關(guān)系得以保存。首先當(dāng)把關(guān)系模式轉(zhuǎn)化為 XML的表達(dá)時,應(yīng)該根據(jù)提取出的關(guān)系模式來生成關(guān)系模式,這個過程是通過數(shù)據(jù)樹來實現(xiàn)的;然后需要利用這個關(guān)系數(shù)據(jù)樹逆向生成表跟表之間所具有的嵌套關(guān)系,從而得到結(jié)構(gòu)樹。把映射結(jié)構(gòu)樹以及關(guān)系樹結(jié)合起來,就得到了 XML模式的 XML Schema文件。當(dāng)把 XML模式轉(zhuǎn)換為關(guān)系模式的時候,這里需要調(diào)用解析工具來分析 Schema,然后用形式化的語句給出它里面所蘊含的相關(guān)結(jié)構(gòu)和信息。再一步,就是根據(jù)形式化的結(jié)果生成元素樹。而這就獲得了 XML Schema描述的結(jié)構(gòu)。
2.2關(guān)系模式映射為 XML模式
對于關(guān)系模式變換為 XML來說,需要應(yīng)用有關(guān)的程序接口來讀取數(shù)據(jù)庫相關(guān)數(shù)據(jù),同時得到所蘊含的模式關(guān)系。進(jìn)一步應(yīng)用集合,來對關(guān)系模式進(jìn)行表達(dá)。
當(dāng)映射結(jié)構(gòu)把關(guān)系轉(zhuǎn)過以后,就會得到表表之間,以及列列的相互關(guān)系。這個轉(zhuǎn)化包含了兩步,其一是關(guān)系模式的表、列到 XML下元素、屬性的映射。這一步的關(guān)鍵是,數(shù)的生成以及 XML-Schema文檔的建立。具體的過程是這樣的,通過建立結(jié)構(gòu)樹,然后采用深度遍歷的方式,把嵌入的上層元素反映到文檔中,然后將下層元素也反映過去。
2.3 XML模式到關(guān)系模式的映射
映射轉(zhuǎn)化需要很多步才能完成。首先是依托 XML,然后把樹作為輔助性的工具,把素有向樹中某些節(jié)點化為表,某些化為列,而根元素這里就取名為原來的是數(shù)據(jù)庫,里面的屬性把數(shù)據(jù)庫的關(guān)系進(jìn)行了表達(dá);緊接著是對應(yīng)關(guān)系模式 R中 P的映射,這里主要是把 XML Schema中的普通元素定義和屬性轉(zhuǎn)化為列的關(guān)系;再次是主關(guān)鍵字的約束轉(zhuǎn)化。在此基礎(chǔ)上,生成 SQL語言:1)合成創(chuàng)建表語句,涉及關(guān)系模式各列的數(shù)據(jù)類型、默認(rèn)值、是否可以為空等條件。 2)根據(jù)關(guān)系模式 R(PK)合成主鍵語句,保證關(guān)系模式的實體完整性。 3)根據(jù)關(guān)系模式 R(FK)合成外鍵語句,保證關(guān)系模式的參照完整完性。 4)根據(jù)關(guān)系模式 R(UI)合成唯一鍵,根據(jù) P中的分量合成檢查語句,保證關(guān)系模式的用戶定義完整性。
當(dāng)這些步驟都完成以后,就需要解析 XML數(shù)據(jù)文檔了。這里需要依照 Schema的轉(zhuǎn)化結(jié)果,把數(shù)據(jù)合成 SQL語言,從而生成數(shù)據(jù)庫。
3并發(fā)時的一致性保證
在整個校園一卡通分布式數(shù)據(jù)庫及數(shù)據(jù)分布方案中,把各個子系統(tǒng)的數(shù)據(jù)庫設(shè)計為各用戶使用,即允許多個用戶同時訪問數(shù)據(jù)庫。在這種情況下,經(jīng)常會出現(xiàn)這樣的問題:那就是許多用戶一起并發(fā)對對數(shù)據(jù)庫進(jìn)行查詢、修改的操作時,會產(chǎn)生一定的沖突。如果沒有某種保障措施,很有可能出現(xiàn)錯誤的結(jié)果。比如,如果同時有兩個人都在訪問相同的表格、行和列,那么就很有可能導(dǎo)致數(shù)據(jù)的訪問沖突。這種保障措施主要是為了協(xié)調(diào)這種對數(shù)據(jù)訪問的一致性,需要在 SQLServer中應(yīng)用鎖機(jī)制,同時限制、保證最大量的并發(fā)用戶。這里特別需要對鎖機(jī)制進(jìn)行說明,它主要作用就是像一把鎖一樣,當(dāng)某個動作正在修改數(shù)據(jù)庫時,要防止其它用戶訪問到不一致的數(shù)據(jù)。這里當(dāng)某個事務(wù)向系統(tǒng)發(fā)出要求的動作時,就會對被操作的數(shù)據(jù)加鎖(LOCK),其它事務(wù)必須等到此事務(wù)解鎖之后才能訪問該數(shù)據(jù),從而,在多個用戶并發(fā)訪問數(shù)據(jù)庫時確保不互相干擾。
參考文獻(xiàn):
[1]裴沛 一卡通在數(shù)字化校園整合中的關(guān)鍵技術(shù)研究[J].2008(7):20-21.
[2]佩英 分布式數(shù)據(jù)庫系統(tǒng)及其應(yīng)用[M].北京:科學(xué)出版社 ,2008.
[3]郭品 SQLServer2000系統(tǒng)管理 [M].北京:電子工業(yè)出版社,2008.
【稿件聲明】:如需轉(zhuǎn)載,必須注明來源和作者,保留文中圖片和內(nèi)容的完整性,違者將依法追究。