發(fā)布時間:2022-10-03 07:30:28
序言:寫作是分享個人見解和探索未知領(lǐng)域的橋梁,我們?yōu)槟x了8篇的關(guān)系數(shù)據(jù)庫樣本,期待這些樣本能夠?yàn)槟峁┴S富的參考和啟發(fā),請盡情閱讀。
關(guān)鍵詞:非關(guān)系數(shù)據(jù)庫;CouchDB;Map/Reduce
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2013)14-3220-03
隨著以社交網(wǎng)絡(luò)、云計(jì)算為代表的Web2.0網(wǎng)站的興起,非關(guān)系數(shù)據(jù)庫(NoSQL)得到了廣泛的關(guān)注[1-2]。這是因?yàn)閭鹘y(tǒng)的關(guān)系數(shù)據(jù)庫在面對這類應(yīng)用的時候暴露出許多問題,在處理超大規(guī)模的數(shù)據(jù)、應(yīng)對高度并發(fā)的請求時顯得力不從心。這種情況下非關(guān)系數(shù)據(jù)庫得到了迅速的發(fā)展,成為業(yè)界和學(xué)界所探討的熱點(diǎn)問題。
CouchDB是在處理半結(jié)構(gòu)化的文檔中具有獨(dú)特的優(yōu)勢,在CMS系統(tǒng)、大數(shù)據(jù)分析和挖掘中具有廣泛的用途。該文首選對非關(guān)系數(shù)據(jù)庫的特征及Map/Reduce的工作方式進(jìn)行分析,然后詳介紹了CouchDB的安裝、配置及使用方法。
1 非關(guān)系數(shù)據(jù)庫
1.1 非關(guān)系數(shù)據(jù)庫的特點(diǎn)
非關(guān)系數(shù)據(jù)庫是根據(jù)Web應(yīng)用發(fā)展的需要而產(chǎn)生的,與傳統(tǒng)關(guān)系數(shù)據(jù)庫有很大的差異。關(guān)系數(shù)據(jù)庫最為顯著的是ACID特性,即原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。從分布式應(yīng)用的CPA理論[3,4]的角度來看,關(guān)系數(shù)據(jù)庫主要關(guān)注的是一致性和可用性,能夠很好的滿足傳統(tǒng)的應(yīng)用需求。但是在Web2.0時代,對數(shù)據(jù)處理的要求高并發(fā)性、海量數(shù)據(jù)的處理能力和訪問需求,以及對數(shù)據(jù)庫的高擴(kuò)展性和高可用性要求。相對而言,關(guān)系數(shù)據(jù)庫所關(guān)注的一致性、讀寫的實(shí)時性和復(fù)雜的SQL查詢在新的應(yīng)用中卻并不需要[5]。
CPA理論認(rèn)為一致性、可用性和分區(qū)容錯性不可能同時實(shí)現(xiàn)。因此非關(guān)系數(shù)據(jù)庫的主要特征為與ACID有著顯著差異的BASE模型[6]。即基本可用(Basically Available)、軟狀態(tài)(Soft state)和最終一致(Eventually consistent),它允許系統(tǒng)在一段時間內(nèi)有不一致性,而放寬至只要最終狀態(tài)下數(shù)據(jù)是一致的就可以了,從而以犧牲高一致性為代價獲得了高可用性。由于非關(guān)系數(shù)據(jù)庫沒有數(shù)據(jù)庫模式的約束,從而具備了良好的可擴(kuò)充性。
1.2 Map/Reduce機(jī)制
Map函數(shù)的輸出為數(shù)據(jù)庫中的文檔或數(shù)據(jù),輸出為鍵值對。這里的鍵和值可以是系統(tǒng)支持的任何類型的數(shù)據(jù),用戶可以在Map函數(shù)中對文檔數(shù)據(jù)加以處理,把所需的數(shù)據(jù)以鍵值的形式輸出。Map函數(shù)會對數(shù)據(jù)庫中所有數(shù)據(jù)進(jìn)行處理,結(jié)果由主控制器按鍵進(jìn)行分組,如果用戶不指定Reduce函數(shù)則按鍵分組的結(jié)果直接輸出。Reduce函數(shù)的功能是把鍵值組合進(jìn)一步處理,比如統(tǒng)計(jì)、匯總等。
2 CouchDB的安裝及應(yīng)用
2.1 CouchDB簡介
CouchDB是最著名的非關(guān)系數(shù)據(jù)庫系統(tǒng)之一,它是Apache軟件基金會的頂級開源項(xiàng)目。CouchDB使用Erlang語言開發(fā),繼承了其強(qiáng)大的強(qiáng)大的并發(fā)性和分布式的特征,因此在大數(shù)據(jù)處理及諸如社交網(wǎng)絡(luò)等Web2.0應(yīng)用開發(fā)中具有重要的應(yīng)用價值。CouchDB的早期版本只能安裝在POSIX系統(tǒng)之上,最新版本則提供了對Windows的支持。
CouchDB是一個面向文檔的、分布式的數(shù)據(jù)庫,支持REST接口訪問。面向文檔是指CouchDB中存儲的是半結(jié)構(gòu)化的JSON文檔,而且可以方便的將文檔對象映射為具體編程語言的對象。由于JSON在Ajax技術(shù)及社交網(wǎng)絡(luò)應(yīng)用中廣泛應(yīng)用,因此CouchDB在這類應(yīng)用的數(shù)據(jù)存儲和處理中具有良好的應(yīng)用前景。CouchDB是分布式的數(shù)據(jù)庫系統(tǒng),源于Erlang極好的并發(fā)特性,CouchDB存儲系統(tǒng)可以分布到多臺計(jì)算機(jī)之上,每臺計(jì)算機(jī)稱為存儲系統(tǒng)的一個節(jié)點(diǎn)。CouchDB能夠很好的協(xié)調(diào)和同步多個節(jié)點(diǎn)之間的數(shù)據(jù)一致性和完整性,有效的應(yīng)用系統(tǒng)應(yīng)用中可能出現(xiàn)的各種錯誤。CouchDB支持REST接口訪問,即可以通過GET、PUT、POST、HEAD和DELETE等標(biāo)準(zhǔn)的Http請求對數(shù)據(jù)庫進(jìn)行寫入和查詢分析等操作。因此,任何一種編程語言只要具備Http請求模塊就可以方便的與CouchDB進(jìn)行對接,甚至只要利用正確的URL地址只要運(yùn)用瀏覽器就可以訪問CouchDB得到所需要的數(shù)據(jù)。
與其他的非關(guān)系數(shù)據(jù)庫一樣,CouchDB利用Map/Reduce對數(shù)據(jù)進(jìn)行插入、搜索等操作。CouchDB將鍵值對存儲在B-樹引擎之上,并根據(jù)鍵值進(jìn)行排序,因此具有高效的查詢和操作性能。需要注意的是,CouchDB是一個基于版本的數(shù)據(jù)庫系統(tǒng),即只能添加數(shù)據(jù)不能刪除和修改數(shù)據(jù),當(dāng)數(shù)據(jù)需要更新時CouchDB只是增加了新的版本,所有的版本數(shù)據(jù)依舊保存在數(shù)據(jù)庫中,且可以方便的得到。如果要刪除數(shù)據(jù)則需要將整個數(shù)據(jù)庫刪除。
2.2 CouchDB的安裝和配置
CouchDB在包括Windows在內(nèi)的各種操作系統(tǒng)中安裝都非常方便,幾乎不需要做任何復(fù)雜的配置,特別是在Mac OS中,下載之后直接運(yùn)行即可。CouchDB默認(rèn)使用5984端口,在本機(jī)可使用http://127.0.0.1:5984訪問。在瀏覽器中訪問該Url即可得到關(guān)于版本等信息的JSON格式的數(shù)據(jù)。CouchDB的管理控制臺稱為Futon,通過http://127.0.0.1:5984/_utils訪問并操作。在Futon中可以手工創(chuàng)建數(shù)據(jù)庫、添加和查看文檔,并管理CouchDB。默認(rèn)情況下,CouchDB開放admin權(quán)限,為了安全起見需要添加用戶名和密碼。
2.3 CouchDB的操作
3)統(tǒng)計(jì)和匯總
對CouchDB進(jìn)行更復(fù)雜的查詢需要同時使用map函數(shù)reduce函數(shù)。圖5所示的代碼對數(shù)據(jù)庫文檔數(shù)量進(jìn)行統(tǒng)計(jì),程序運(yùn)行輸出結(jié)果為數(shù)據(jù)庫中文檔的總數(shù)。如果數(shù)據(jù)庫中僅有圖2所加入的數(shù)據(jù),則圖5輸出結(jié)果為2。如果要進(jìn)行匯總操作,只需改變map函數(shù)返回值為需要匯總的數(shù)值,并根據(jù)需要改變group參數(shù)的值為True。
結(jié)合map函數(shù)和reduce函數(shù),可以在CouchDB數(shù)據(jù)庫中實(shí)現(xiàn)傳統(tǒng)關(guān)系數(shù)據(jù)庫中的運(yùn)算,如選擇、投影、并、交、差,以及連接等。此外,與傳統(tǒng)數(shù)據(jù)庫一樣,CouchDB也可以利用ViewDefinition將查詢保存為視圖,其使用參數(shù)與query較為類似。不同的是視圖的信息要保存在設(shè)計(jì)文檔之中,因此要指定相應(yīng)的鍵值,在使用中,數(shù)據(jù)庫根據(jù)這些鍵值生成url用于進(jìn)行訪問。
3 結(jié)論
CouchDB作為一種高性能的面向文檔的非關(guān)系數(shù)據(jù)庫具有廣泛的用途,其開源、免費(fèi),以及易用使用的特點(diǎn)使其在Web2.0應(yīng)用開發(fā)、大數(shù)據(jù)挖掘與分析等方面都有潛在的重要應(yīng)用價值。該文對CouchDB的應(yīng)用的分析,有助于深入了解非關(guān)系數(shù)據(jù)庫的工作機(jī)制和使用方法。需要指出的是,盡管非關(guān)系數(shù)據(jù)庫在處理大數(shù)據(jù)方面有很高的效率,但是它絕不是關(guān)系數(shù)據(jù)庫的替代,在數(shù)據(jù)更新頻繁的傳統(tǒng)應(yīng)用中關(guān)系數(shù)據(jù)庫依舊是最優(yōu)的選擇。
參考文獻(xiàn):
[1] 蔡金花.淺析NOSQL及使用[J].電腦知識與技術(shù),2012,7(12):2757-2758.
[2] 柯棟梁,鄭嘯,李喬.云計(jì)算:實(shí)例研究與關(guān)鍵技術(shù)[J].小型微型計(jì)算機(jī)系統(tǒng),2012,33(11): 2321-2329.
[3] Brewer E A.Towards Robust Towards Robust Distributed Systems[C].Proceedings of the 19th Annual ACM Symposium on Principles of Distributed Computing, 2000.
[4] Gilbert S,Lynch N.Brewer's Conjeture and the Feasibility of Consistent, Available, Partition-Tolerant Web[J]. ACM SIGACT News, 2002, 33(2):51-59.
[5] 范凱.NoSQL數(shù)據(jù)庫探討之——為什么要用非關(guān)系數(shù)據(jù)庫?[EB/OL].(2009-11-25). http:///topic/524977.
【關(guān)鍵詞】數(shù)據(jù)庫設(shè)計(jì);單元測試;集成測試
一、數(shù)據(jù)庫設(shè)計(jì)
本系統(tǒng)為面向關(guān)系數(shù)據(jù)庫的關(guān)鍵字查詢系統(tǒng),在實(shí)驗(yàn)中本文選取了IMDB 數(shù)據(jù)集,為了進(jìn)行實(shí)驗(yàn),將數(shù)據(jù)集整理為以下七個表數(shù)據(jù)結(jié)構(gòu)。
實(shí)驗(yàn)數(shù)據(jù)集(電影信息數(shù)據(jù)庫):
Actor(演員表)、Consume(設(shè)計(jì)師)、Director(導(dǎo)演信息)、Business(投資)、Editor(編輯)、Color(顏色信息)、Keyword(關(guān)鍵詞)。本數(shù)據(jù)庫抽象的數(shù)據(jù)庫關(guān)系E-R圖如圖1所示。
二、單元測試
為保證代碼中SQL語句的正確性,需要對數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行查詢檢測,當(dāng)輸入關(guān)鍵字為“black”時,查詢結(jié)果如圖2所示。
通過外鍵mvname的連接,再查詢Business關(guān)系表,顯示結(jié)果如圖3所示。
圖3說明當(dāng)關(guān)鍵字是“black”時查詢出來的actor表中,與business中mvname相同的值沒有。當(dāng)關(guān)鍵字為“a”時查詢兩表,顯示結(jié)果不為空,如圖4所示。
按照上述方法和SQL語句依次查詢檢測其他關(guān)系表。
三、集成測試
在確定系統(tǒng)代碼中關(guān)鍵字轉(zhuǎn)化的SQL語句都正確的前提下,進(jìn)行系統(tǒng)測試,即進(jìn)行關(guān)鍵字檢索測試。
(一)當(dāng)輸入的關(guān)鍵字為為單關(guān)鍵字時,關(guān)鍵字分析過程比較簡單,假設(shè)檢索關(guān)鍵字選擇“keyword”,查詢結(jié)果如圖5所示。
關(guān)鍵字“keyword”為表名,直接輸出keyword表即可。
(二)當(dāng)輸入的關(guān)鍵字為多個時,情況比單個的復(fù)雜一些,假設(shè)檢索關(guān)鍵字選擇“director color”,檢索結(jié)果如圖6所示。
顯示的結(jié)果中,包含director和color均為表名時兩表合一的元組;director為表名color為color表中屬性名時,通過mvname、mvyear、setname、episode、made、explantaion等屬性值相等連接后的元組;以及director為表名、color為director和color兩表中的屬性值時,同樣通過mvname、mvyear、setname、episode、made、explantaion等屬性值相等連接所得元組。這三種情況合到一起即為關(guān)鍵字“director color”的查詢結(jié)果。
四、結(jié)語
從單元測試的角度,在MySQL數(shù)據(jù)庫中測試了系統(tǒng)代碼中SQL語句的正確性。最后,系統(tǒng)測試中測試了系統(tǒng)的關(guān)鍵字檢索功能,從單關(guān)鍵字和多關(guān)鍵字的角度驗(yàn)證了系統(tǒng)中的查詢功能,保證了系統(tǒng)的正確性、可靠性。
參考文獻(xiàn)
[1] Mac K,David J,Linda C.A hierarchical Dirichiet language model[J].Natural Language Engineering,1995,1(3).
關(guān)鍵詞:關(guān)系;E-R圖;實(shí)體
中圖分類號:TP301 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2013)25-5587-02
數(shù)據(jù)庫技術(shù)的應(yīng)用實(shí)例在我們生活中隨處可見,如企業(yè)、學(xué)校、醫(yī)院、超市、社區(qū)等,可見數(shù)據(jù)庫技術(shù)的重要性不言而喻。而在普通高等院校、三本或高職類(非)計(jì)算機(jī)專業(yè)的群體中,數(shù)據(jù)庫課程也是作為其中一門必修的公共基礎(chǔ)課存在。開設(shè)的課程有SQL Server、Oracle、Visual FoxPro、Access等,無論是哪門課程,它們都有一個共同的特點(diǎn),都是關(guān)系型數(shù)據(jù)庫[1],而關(guān)系型數(shù)據(jù)庫在我們現(xiàn)實(shí)生活中應(yīng)用也是最為廣泛的。下面我們就以一個簡單的實(shí)例來闡述關(guān)系數(shù)據(jù)庫設(shè)計(jì)的基本原則和實(shí)踐應(yīng)用。
1 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)與邏輯設(shè)計(jì)
1.1 三級模式和二級映像結(jié)構(gòu)的優(yōu)點(diǎn)
數(shù)據(jù)庫系統(tǒng)的標(biāo)準(zhǔn)結(jié)構(gòu)為三級模式和二級映像。三級模式分別為內(nèi)模式、模式和外模式,二級映射為內(nèi)模式/模式映像和模式/外模式映像。如圖1所示:
模式即概念模式,該模式是對數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是對所有應(yīng)用程序的數(shù)據(jù)綜合抽象得到的全局?jǐn)?shù)據(jù)視圖;外模式是所有應(yīng)用程序或用戶訪問數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述;內(nèi)模式是數(shù)據(jù)的底層物理存儲結(jié)構(gòu)的描述。二級映像保證了各級數(shù)據(jù)在不破壞底層數(shù)據(jù)存儲結(jié)構(gòu)的基礎(chǔ)上完成上層數(shù)據(jù)的所有操作任務(wù),保證了數(shù)據(jù)庫中數(shù)據(jù)較高的邏輯獨(dú)立性和物理獨(dú)立性。
1.2 邏輯設(shè)計(jì)內(nèi)容和方法
計(jì)算機(jī)處理客觀應(yīng)用問題的一般框架如圖2所示:
在設(shè)計(jì)開發(fā)數(shù)據(jù)庫時,邏輯設(shè)計(jì)的內(nèi)容有應(yīng)用語義環(huán)境下如何設(shè)計(jì)表、定義表、定義表間關(guān)系、如何操作表等,可通過文字或一套業(yè)務(wù)實(shí)體表格來描述。大致可通過兩步來完成,第一步:從應(yīng)用問題中提取核心概念建立概念模型;概念模型可用實(shí)體—關(guān)系圖(E-R圖)來描述;第二步基于一定的轉(zhuǎn)換原則建立關(guān)系數(shù)據(jù)模型。關(guān)系模型的表示形式為:R(U, F),其中,R為關(guān)系名,U為屬性集,F(xiàn)為函數(shù)依賴關(guān)系。轉(zhuǎn)換原則有以下七種[2][3]:
1)一個實(shí)體型轉(zhuǎn)換為一個關(guān)系模式,通俗的說即一個實(shí)體對應(yīng)一張二維表。
2)一個1:1實(shí)體聯(lián)系可轉(zhuǎn)換為一個獨(dú)立關(guān)系模式,也可以與任意一端對應(yīng)的關(guān)系合并。
3)一個1:N實(shí)體聯(lián)系可轉(zhuǎn)換為一個獨(dú)立關(guān)系模式,也可以與任意一端對應(yīng)的關(guān)系合并。
4)一個M:N實(shí)體聯(lián)系一定轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,特別是帶有屬性的聯(lián)系。
5)三個以上實(shí)體間的多元聯(lián)系可轉(zhuǎn)換為一個關(guān)系模式。
6)相同碼的關(guān)系模式可以合并。
7)同一實(shí)體集的實(shí)體間聯(lián)系與對應(yīng)的關(guān)系合并為一個關(guān)系模式。
除此之外,數(shù)據(jù)庫的設(shè)計(jì)不僅需考慮理論支持,還需要結(jié)合實(shí)際的業(yè)務(wù)流程。
2 應(yīng)用實(shí)例解析
其中,實(shí)體“學(xué)生”、“課程”和“系別”分別轉(zhuǎn)換為三個關(guān)系模式,照應(yīng)原則1;另外有兩個聯(lián)系,“所屬”聯(lián)系可以獨(dú)立轉(zhuǎn)換為一個關(guān)系模式,也可以與“學(xué)生”和“系別”任意一個關(guān)系合并,照應(yīng)原則3;而“選課”聯(lián)系自身具有特殊屬性“成績”,特殊性體現(xiàn)在該屬性既不能作為“學(xué)生”的屬性存在,也不能作為“課程”的屬性存在,故必須將該聯(lián)系轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,照應(yīng)原則4。綜上所述,E-R圖可被轉(zhuǎn)換為4個關(guān)系模式,根據(jù)對該領(lǐng)域的認(rèn)識和經(jīng)驗(yàn)為每個關(guān)系添加屬性描述其特征,同時指定關(guān)系的主碼、外碼以及用戶自定義完整性約束,最終實(shí)現(xiàn)E-R圖到關(guān)系模型合理正確的轉(zhuǎn)換,建立數(shù)據(jù)庫同時進(jìn)一步優(yōu)化其性能[4]。
原則4實(shí)際應(yīng)用的例子有很多,又如銷售商與供應(yīng)商之間的供銷關(guān)系問題。在該業(yè)務(wù)流程中三個主要的實(shí)體:供應(yīng)商,源材料和工廠。他們之間時刻有著密切的業(yè)務(wù)往來,而在三個實(shí)體間共同存在“供銷”聯(lián)系,而該聯(lián)系具有屬性“供應(yīng)量”,供應(yīng)量就如同上述的“成績”一樣,需轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式來描述。
3 結(jié)束語
文中以關(guān)系數(shù)據(jù)庫基本理論為依據(jù)展開闡述數(shù)據(jù)庫邏輯設(shè)計(jì)的內(nèi)容和方法,并以簡單實(shí)例來論證理論方法的指導(dǎo)意義和應(yīng)用效果。
參考文獻(xiàn):
[1] 薩師煊,王珊. 數(shù)據(jù)庫系統(tǒng)概論[M].北京:高等教育出版社,2000.
[2] 袁國銘.關(guān)系數(shù)據(jù)庫設(shè)計(jì)的總體原則[C].第七屆中國通信學(xué)會學(xué)術(shù)年會論文集,2010:168-171
關(guān)鍵詞:查詢優(yōu)化;索引結(jié)構(gòu);算法分析;對象關(guān)系數(shù)據(jù)庫
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)25-1366-02
Object Relational Data Base Management Systems
LIU Da-ming1,2
(1.Ningxia Vocational Technological Institution,Yinchuan 750002;2.Ningxia Radio and TV University,Yinchuan 750002, China)
Abstract: Object-relational database technology combines the relational and object-oriented capabilities in one database system. It provides support for richer object structures and powerful query-oriented functions. This kind of DBMS can meet the requirement of some newly emerging application areas, such as GIS. Now, the Object-Relational DataBase technology is regarded as one of the most promising research and product development directions. This paper gives a method of accessing spatiotemporal vector data in an Object-Relational database. Results provide path of spatiotemporal data storage in Web environment.
Key words: query optimization; index structure; loin algorithm; algorithm analysis; ORDB
面向?qū)ο蟮拈_發(fā)方法是當(dāng)今的主流,但是同時不得不使用關(guān)系型數(shù)據(jù)庫,將兩者更好地結(jié)合起來將在很大程度上加快軟件的開發(fā)[1]。對象/關(guān)系數(shù)據(jù)庫通過將面向?qū)ο蟪绦蛟O(shè)計(jì)中的對象映射到基于SQL的關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)中去,能給軟件的開發(fā)帶來很多好處如:數(shù)據(jù)庫結(jié)構(gòu)清晰,便于實(shí)現(xiàn)OOP,數(shù)據(jù)庫對象具有獨(dú)立性,便于維護(hù),需求變更時程序與數(shù)據(jù)庫重用率高,修改少。地理時空數(shù)據(jù)小不同于一般的屬性數(shù)據(jù)和空間數(shù)據(jù)時空數(shù)據(jù)主要有以下特性:空間性、時間性、抽象性,進(jìn)而帶來多維性、多態(tài)性和多尺度[2]。GIS的時空數(shù)據(jù)組織與管理一直是GIS理論界關(guān)注的一個熱點(diǎn)問題,傳統(tǒng)的基于文件方式的GIS數(shù)據(jù)存儲技術(shù)以及基于混合方式的GIS數(shù)據(jù)存儲技術(shù)有其各自的不足,采用對象關(guān)系數(shù)據(jù)庫技術(shù)存儲時空數(shù)據(jù)是今后一段時間內(nèi)GIS數(shù)據(jù)管理發(fā)展的一個方向[3]。
1 對象關(guān)系數(shù)據(jù)庫管理系統(tǒng)(ORDBMS)的基本原理
“對象關(guān)系數(shù)據(jù)庫”實(shí)現(xiàn)既非純粹的面向?qū)ο蟮臄?shù)據(jù)庫也非純粹的關(guān)系數(shù)據(jù)庫,它代表兩者的結(jié)合[4]。擴(kuò)充現(xiàn)有數(shù)據(jù)庫系統(tǒng)以支持面向?qū)ο蟮母拍?,我們?xí)慣上稱這樣的系統(tǒng)為擴(kuò)充數(shù)據(jù)庫系統(tǒng)。在關(guān)系數(shù)據(jù)庫基礎(chǔ)上加以擴(kuò)充的, 稱之為對象-關(guān)系數(shù)據(jù)庫(ORDBMS)。RDBMS派認(rèn)為RDB具有堅(jiān)實(shí)而成熟的理論基礎(chǔ), 主張對現(xiàn)有的RDBMS 進(jìn)行擴(kuò)充和改進(jìn), 使之升級為ORDBMS。這種系統(tǒng)既支持已經(jīng)被廣泛使用的SQL,具有良好的通用性, 又具有面向?qū)ο筇匦裕?支持復(fù)雜對象和復(fù)雜對象的復(fù)雜行為, 是對象技術(shù)和傳統(tǒng)關(guān)系數(shù)據(jù)庫技術(shù)的最佳融合。
由于在ORDBMS 中,關(guān)系和對象兩者共存,因此由面向用戶層和內(nèi)部接口層構(gòu)成的兩層體系結(jié)構(gòu)來構(gòu)造一個ORDBMS。面向用戶層主要是對ORSQL ,ORDML 及ORDDL 這類語言進(jìn)行轉(zhuǎn)換和處理,通過解析各種用戶命令語句,并完成視圖轉(zhuǎn)換和查詢優(yōu)化,以產(chǎn)生執(zhí)行代碼。內(nèi)部接口層在存儲管理器之上運(yùn)行。存儲管理器是一個既支持表存儲又支持對象存儲的內(nèi)核機(jī)制。依靠操作系統(tǒng)的頁、Buffer 及內(nèi)存管理,存儲機(jī)制實(shí)現(xiàn)從邏輯到物理的存儲的轉(zhuǎn)換。存儲和存取機(jī)制的任務(wù)就是把上層操作轉(zhuǎn)換成單個的對象操作或記錄操作。ORDBMS體系結(jié)構(gòu)圖1所示。
2 Oracle對象關(guān)系數(shù)據(jù)庫管理系統(tǒng)在GIS中的應(yīng)用
Oracle是以高級結(jié)構(gòu)化查詢語言(SQL)為基礎(chǔ)、支持分布式海量數(shù)據(jù)存儲與處理的對象關(guān)系數(shù)據(jù)庫管理系統(tǒng)。目前很多GIS軟件平臺及其相關(guān)產(chǎn)品采用Oracle作為空間數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)平臺。因此如何在Oracle中快速、有效地管理和操作海量空間數(shù)據(jù)成為GIS平臺和應(yīng)用系統(tǒng)研發(fā)人員十分關(guān)心的問題。Oracle Spatial解決空間數(shù)據(jù)的方法是:提供一個MDSYS模式,在其中包含了關(guān)于空間數(shù)據(jù)管理的所有內(nèi)容,即提供一個對象數(shù)據(jù)類型(SDO_GEOMETRY)、索引功能及多個針對SDO_GEOMETRY的函數(shù)/運(yùn)算符。這樣就可以在Oracle數(shù)據(jù)庫中快速有效地存儲、訪問和分析空間數(shù)據(jù)。Oracle Spatial所提供的功能完全集成在數(shù)據(jù)庫服務(wù)器中。用戶可使用SQL定義來操縱空問數(shù)據(jù),也可以利用Oracle的標(biāo)準(zhǔn)特性,從而確保數(shù)據(jù)的完整性、可恢復(fù)性和安全性等特征。
2.1 對象-關(guān)系模型
對于空間幾何對象,Oracle Spatial可以用對象關(guān)系模型來表達(dá),該對象關(guān)系模型通常用表的一個MDSYS.SDO_GEOMETRY類型字段來表示,同時每一記錄表示一個幾何對象地實(shí)例。該對象關(guān)系模型有以下的優(yōu)點(diǎn):
1) 支持多種幾何對象類型,包括:弧、圓、復(fù)合多邊形、復(fù)合線串、矩形。
2) 容易創(chuàng)建和維護(hù)空間索引并進(jìn)行空間的查詢。
3) 用一行和一列表示幾何對象的模型。
4) 可以達(dá)到最優(yōu)的性能。
2.2 數(shù)據(jù)模型
空間數(shù)據(jù)模型可分為幾何元素、幾何對象、層等三級結(jié)構(gòu),每一種結(jié)構(gòu)都對應(yīng)于空間數(shù)據(jù)的一種表達(dá)。層是由幾何對象組成,而幾何對象則由幾何元素組成。例如:一個點(diǎn)表示一個建筑物,一條線表示一條公路或是跑道,一個多邊形表示一個省、城市或某個區(qū)域。
1) 幾何元素(element)
元素是幾何對象(Geometry)的基本構(gòu)成單元,支持的空間元素有點(diǎn)、線、面和多邊形,例如:元素可以構(gòu)成星群(由點(diǎn)串構(gòu)成),公路(由線串構(gòu)成)、縣的邊界(多邊形構(gòu)成),元素的每個坐標(biāo)存儲為x,y坐標(biāo)對。一個帶洞的多邊形的外部環(huán)和內(nèi)部環(huán)被認(rèn)為是兩個不同的元素所構(gòu)成的復(fù)合多邊形。
2) 幾何對象(Geometry)
一個幾何對象表示一個空間幾何特征,它是由一個或多個幾何元素的有序組成:一個幾何對象可以由一個幾何元素組成,也可以由同一類型的幾何元素集合或不同類型的幾何元素集合組成。
3) 層(layer)
層是具有相同屬性特征的幾何對象的集合。例如:地理信息系統(tǒng)中,一層包括拓?fù)涮卣?,而另一層描述它的人口密度,第三層則描述路和橋的網(wǎng)絡(luò)結(jié)構(gòu),每一層對應(yīng)一個空間索引。
2.3 空間查詢模型
Oracle Spatial用兩層查詢模型來解決空間查詢和空間聯(lián)合查詢。這兩層模型是指主過濾和次過濾。主過濾主要從被選記錄中作快速選擇并傳給次過濾,它近似地比較幾何對象以減小復(fù)雜度計(jì)算,它是一種內(nèi)存、時間消耗的過濾;次過濾是對來自于主過濾的幾何對象結(jié)果集作精確的計(jì)算。
2.4 空間索引
通過Oracle Spatial把空間索引化能力導(dǎo)入數(shù)據(jù)庫引擎是空間產(chǎn)品的一個關(guān)鍵特征。一個空間索引就是以空間標(biāo)準(zhǔn)為基礎(chǔ)、限制表內(nèi)(或數(shù)據(jù)空間內(nèi))的搜索的機(jī)制。為了高效地執(zhí)行查詢過程,索引是必不可少的,比如在查詢區(qū)域的數(shù)據(jù)空間內(nèi)尋找對象,通過一個查詢多邊形(柵欄定位)。第二種查詢(空間聯(lián)合)類型是在兩個存在空間關(guān)聯(lián)的數(shù)據(jù)空間內(nèi)尋找對象組。
2.5 空間關(guān)系與過濾
Oracle Spatial用次過濾來決定數(shù)據(jù)庫中的空間對象之間的空間關(guān)系。空間關(guān)系是以幾何對象的位置為基礎(chǔ)的,最基本的空間關(guān)系是基于拓?fù)浜途嚯x。如:區(qū)域的邊界包含一系列把外部的空間分隔開來的弧段,區(qū)域的內(nèi)部包含區(qū)域內(nèi)的所有不在邊界的點(diǎn)。為此我們說,擁有部分共同邊界而沒用共同內(nèi)部點(diǎn)的兩個區(qū)域的空間關(guān)系為臨近的。兩個空間幾何對象的距離定義為他們之間的任何兩點(diǎn)的最小距離。如果兩個幾何對象之間的距離小于給定的距離,則我們說一個幾何對象在另一個對象的某一距離內(nèi)。
3 結(jié)論
面向?qū)ο蟮拈_發(fā)方法是當(dāng)今的主流,但是同時不得不使關(guān)系型數(shù)據(jù)庫,將兩者更好地結(jié)合起來將在很大程度上方便軟件的開發(fā)。伴隨著關(guān)系數(shù)據(jù)庫日益增長用和面向?qū)ο蟪绦蛟O(shè)計(jì)的普及,對對象/關(guān)系數(shù)據(jù)庫的關(guān)注越來越多。由于將目前最為流行的關(guān)系數(shù)據(jù)庫和面向?qū)ο蟪绦蛟O(shè)計(jì)很好的結(jié)合起來,而且己經(jīng)有了比較穩(wěn)定的對象/關(guān)系數(shù)據(jù)庫的映射下具,因此對象/關(guān)系數(shù)據(jù)庫會有一定的應(yīng)用前景。本文正是利用對象關(guān)系數(shù)據(jù)庫管理地理時空數(shù)據(jù)所具備的優(yōu)越性,將其用于存取矢量時空數(shù)據(jù),為地理時空數(shù)據(jù)的存儲提供了一條有效途徑。
參考文獻(xiàn):
[1] Carey M J,Dewitt D J.Of Objects and Databases: A Decade of Turmoil[M].22nd VLDB,1996:3-14.
[2] Stonebraker M.Object-Relational DBMSs The Next Grew' Wave[M].Morgan Kaufmann Publishers,Inc,1996.
關(guān)鍵詞:公共信息模型CIM;SqlBulkCopy與OracleBulkCopy;Oracle;關(guān)系數(shù)據(jù)庫
中圖分類號: G250 文獻(xiàn)標(biāo)識碼: A 文章編號:
0引言
目前,由于電力生產(chǎn)的迅猛發(fā)展,高科技的廣泛應(yīng)用,用電需求不斷增加,并且隨著我國經(jīng)濟(jì)的不斷發(fā)展,用電需求將持續(xù)增大,電網(wǎng)規(guī)模越來越龐大,也就直接造成了電網(wǎng)模型的膨脹性發(fā)展;電網(wǎng)具有調(diào)度、運(yùn)行、維護(hù)、檢修、改造等工作量大的特點(diǎn),需滿足調(diào)度工作“實(shí)時、可靠、靈活、協(xié)作”的原則,因此如何快速有效的將龐大的電網(wǎng)模型建模入庫,使調(diào)度員能不間斷、高效完成調(diào)度工作成為首要解決的問題。
1影響入庫性能因素分析
公共信息模型(Common Information Model , CIM模型)[ 1]是一個抽象模型,它包含了所有與電力生產(chǎn)有關(guān)的數(shù)據(jù),實(shí)際為一種XML格式數(shù)據(jù),可以作為一種數(shù)據(jù)庫直接使用。
煙臺供電公司是山東電力集團(tuán)公司直屬的國有大一型供電企業(yè),承擔(dān)著煙臺市14個縣市區(qū)的供用電工作。目前,煙臺電網(wǎng)以500千伏變電站為支撐,220千伏環(huán)網(wǎng)和110千伏輻射網(wǎng)為主網(wǎng)架,公司直轄35千伏及以上變電站54座,變電總?cè)萘?46萬千伏安,35千伏及以上輸電線路143條,總長2437千米。電網(wǎng)模型十分龐大,相對于的CIM模型巨大,并且隨著用電需求將持續(xù)增大,直接影響入庫速度。
CIM采取了面向?qū)ο蟮募夹g(shù)來抽象電力系統(tǒng)的實(shí)現(xiàn)。通過提供一種對象類和屬性及他們之間的關(guān)系來表示電力系統(tǒng)資源的標(biāo)準(zhǔn)。但是,目前面向?qū)ο蟮臄?shù)據(jù)庫發(fā)展還不成熟,而使用最廣泛、技術(shù)最成熟的數(shù)據(jù)庫管理系統(tǒng)大都是關(guān)系型的。所以需要將面向?qū)ο蟮腃IM與關(guān)系型數(shù)據(jù)庫結(jié)合起來[ 2]。
通用信息模型之間的關(guān)系比較復(fù)雜,將所有關(guān)系全部映射成關(guān)系數(shù)據(jù)庫[3]的表,這些復(fù)雜的通用信息模型關(guān)系將會不可避免的生成很多關(guān)系表,使數(shù)據(jù)庫的表的數(shù)量增大。而且表之間的關(guān)系性也非常強(qiáng)。標(biāo)準(zhǔn)的意義在于將系統(tǒng)涉及的通用信息模型對象和關(guān)系全部映射成表,如果只是其中一部分,數(shù)據(jù)庫便不能完全的遵循通用信息模型。
關(guān)系型數(shù)據(jù)庫[4]是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫,借助于集合代數(shù)等數(shù)學(xué)概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù)。
XML缺少關(guān)系型數(shù)據(jù)庫具備的特性[5]:高效的存儲、索引和數(shù)據(jù)修改機(jī)制、嚴(yán)格的數(shù)據(jù)安全訪問控制、完整的事務(wù)和數(shù)據(jù)一致性控制、多用戶訪問機(jī)制、觸發(fā)器、完善的并發(fā)控制等。因此,數(shù)據(jù)量大、數(shù)據(jù)集成度高以及性能要求高的數(shù)據(jù)環(huán)境中仍是使用關(guān)系型數(shù)據(jù)庫較好,在這里的比較中不考慮直接使用XML數(shù)據(jù)庫的情況。
2各種方法入庫的性能比較及應(yīng)用
將CIM對象模型寫入關(guān)系數(shù)據(jù)庫的方法很多,可以用SQL語句或存儲過程,也可以用SqlBulkCopy或OracleBulkCopy方法[6],然而不同的方法在性能方面又有他們的不同。下面分別對各種方法寫入數(shù)據(jù)庫進(jìn)行了分析。
2.1 SQL語句
優(yōu)點(diǎn):以煙臺電網(wǎng)CIM 模型118.2M的數(shù)據(jù)為例,采用SQL語句直接寫入數(shù)據(jù)庫的方法只需執(zhí)行一次SQL的連接字符串,非常方便。
缺點(diǎn):在客戶端代碼中,使用拼接SQL語句方式實(shí)現(xiàn)數(shù)據(jù)寫入時,由于SQL語句是動態(tài)執(zhí)行的,所以惡意用戶可以通過拼接SQL的方式實(shí)施SQL注入攻擊。
2.2 存儲過程
優(yōu)點(diǎn):與SQL語句相比,存儲過程存在很多優(yōu)勢。存儲過程允許標(biāo)準(zhǔn)組件式編程,能夠?qū)崿F(xiàn)較快的執(zhí)行速度,能夠減少網(wǎng)絡(luò)流量,而且可被作為一種安全機(jī)制來充分利用。
缺點(diǎn):由于其實(shí)現(xiàn)方式是利用數(shù)據(jù)庫訪問類調(diào)用存儲過程,利用循環(huán)逐條插入,所以這種方式的效率不高。還有兩個方面是他的可移植性和可擴(kuò)展性,因?yàn)橐话愦笮偷腤eb應(yīng)用程序都是多Web服務(wù)器,然后用雙數(shù)據(jù)庫服務(wù)器做雙機(jī)熱備,其中一臺開機(jī),但是是閑置的。這里只是解決單點(diǎn)故障的問題,但形成了多Web應(yīng)用服務(wù)器,單數(shù)據(jù)庫服務(wù)器的情況。如果所有的運(yùn)算都用存儲過程實(shí)現(xiàn),那么會造成數(shù)據(jù)庫服務(wù)器負(fù)擔(dān)過重。而Web服務(wù)器負(fù)荷不足的情況,擴(kuò)展數(shù)據(jù)庫服務(wù)器的話就會非常的麻煩,而且投資較大,程序也需要改。
2.3 SqlBulkCopy
優(yōu)點(diǎn):SqlBulkCopy可以實(shí)現(xiàn)數(shù)據(jù)的批量寫入操作,并且寫入速度非?????梢允褂闷渌吹臄?shù)據(jù)有效批量加載SQL Server表。Microsoft SQL Server 提供一個命令提示符實(shí)用工具,用于將數(shù)據(jù)從一個表移動到另一個表,表既可以在同一個服務(wù)器上,也可以在不同服務(wù)器上。SqlBulkCopy 類允許編寫提供類似功能的托管代碼解決方案,還有其他將數(shù)據(jù)加載到 SQL Server 表的方法(例如 INSERT 語句),但相比之下 SqlBulkCopy 提供明顯的性能優(yōu)勢。
缺點(diǎn):使用 SqlBulkCopy 類只能向 SQL Server 表寫入數(shù)據(jù),數(shù)據(jù)源不限于 SQL Server,可以使用任何數(shù)據(jù)源,只要數(shù)據(jù)可加載到 DataTable instance 或可使用 DataReader 讀取數(shù)據(jù)。SqlBulkCopy的另一個缺點(diǎn)是寫入前的數(shù)據(jù)判斷和過濾。
2.4 OracleBulkCopy
OracleBulkCopy是中的一個類,是才有的功能。
優(yōu)點(diǎn):調(diào)用WriteToServer方法,可以快速有效的實(shí)現(xiàn)大數(shù)據(jù)量導(dǎo)入數(shù)據(jù)庫。OracleBulkCopy支持超大文本的導(dǎo)入,支持從數(shù)據(jù)中的某一行開始導(dǎo)入,可以決定是否保存數(shù)據(jù)行號,列映射不區(qū)分大小寫,支持導(dǎo)入常量列,支持源列自動檢測,當(dāng)相同源列導(dǎo)入多目標(biāo)列時,只分配一次內(nèi)存,更加節(jié)約內(nèi)存。
缺點(diǎn):OracleBulkCopy目前還不支持事務(wù)回滾。并且Oracle 11g及以上的版本才支持OracleBulkCopy。
2.5 入庫時間比較分析
下面以118.2M煙臺電網(wǎng)CIM模型數(shù)據(jù)作為實(shí)例寫入數(shù)據(jù)庫,應(yīng)用各種不同方法寫入數(shù)據(jù)庫的時間比較如下表1。
表1各種寫入數(shù)據(jù)庫方法時間比較
在上述比較過程中由于采用編碼技術(shù)及CIM模型數(shù)據(jù)關(guān)系的特殊性,寫入時間有差距,僅供參考。
綜合以上對各種方法的分析以及不同方法寫入數(shù)據(jù)庫的時間比較,在處理海量數(shù)據(jù)方面,OracleBulkCopy較其他方法有明顯的優(yōu)勢。并且考慮到CIM模型的巨大,因此,采用OracleBulkCopy的方式寫入關(guān)系數(shù)據(jù)庫是最高效的。
3總結(jié)
本文分析了將龐大的電網(wǎng)模型建模入庫的影響因素,并對多種寫入數(shù)據(jù)庫的各種方法的性能進(jìn)行了比較。最后通過煙臺電網(wǎng)實(shí)際CIM模型數(shù)據(jù)作為實(shí)例對各種方法入庫的時間進(jìn)行了比較。綜合各方面的分析表明:使用OracleBulkCopy方法寫入Oracle數(shù)據(jù)庫是最快,最高效的。解決了煙臺供電公司基于綜合數(shù)據(jù)平臺的調(diào)度智能防誤系統(tǒng)中CIM模型快速入庫的問題。
參考文獻(xiàn):
孟祥治.電力系統(tǒng)CIM模型及其數(shù)據(jù)庫設(shè)計(jì)[J].《企業(yè)科技與發(fā)展》,2009,24.
趙麗華,劉軍.基于C #的電力系統(tǒng)網(wǎng)絡(luò)數(shù)據(jù)模型解析[J].《現(xiàn)代計(jì)算機(jī)》,2011,10.
翁芳芳,林俐,楊以涵.CIM模型與關(guān)系模型的一種映射方法的探討[J].《現(xiàn)代電力》, 2005,22(4).
陳明磊,薛永強(qiáng),邵玉槐.基于CIM的變電站設(shè)備數(shù)據(jù)庫模型探討[J].《太原理工大學(xué)學(xué)報(bào)》,2008,39(1).
關(guān)鍵詞: 關(guān)系數(shù)據(jù)庫; NoSQL; 海量數(shù)據(jù); 教學(xué)
中圖分類號:TP311.13 文獻(xiàn)標(biāo)志碼:A 文章編號:1006-8228(2013)02-47-03
Analyzing the relationship between NoSQL and teaching database
Lou Ying
(Electronic Information Engineering College, Henan University of Science and Technology, Luoyang, Henan 471003, China)
Abstract: Because of the dominant position in database, the relational database has been always the main content in database curriculum of university. With the rise of Web2.0, in the huge data environment, NoSQL (not relational database) technology is used widely and the current database course teaching has been impacted deeply. NoSQL technology is introduced in this paper and then the challenges of NoSQL database technology to teaching database are analyzed. Finally, the teaching methods of database course are proposed.
Key words: relational database; NoSQL; massive data; teaching
0 引言
NoSQL指的是非關(guān)系型的數(shù)據(jù)庫。隨著互聯(lián)網(wǎng)Web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫在應(yīng)付Web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的社交網(wǎng)絡(luò)類型的Web2.0純動態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露出了很多難以克服的問題。例如:關(guān)系數(shù)據(jù)庫為了降低數(shù)據(jù)冗余,保證數(shù)據(jù)約束性,在數(shù)據(jù)查詢時不得不使用多個數(shù)據(jù)表之間的連接操作,這極大地降低了查詢效率,不能夠滿足當(dāng)前Internet的高實(shí)時性的要求。而非關(guān)系型數(shù)據(jù)庫對并發(fā)的大規(guī)模訪問有著效率上的優(yōu)勢,因此,非關(guān)系數(shù)據(jù)庫是在具體應(yīng)用背景下得到了迅速的發(fā)展。
其實(shí),NoSQL概念最早出現(xiàn)在1998年,當(dāng)時的含義是反SQL技術(shù)革命運(yùn)動,但并未引起太多的關(guān)注。直到2009年,NoSQL概念被來自Rackspace的Eric Evans再次提出,這時的NoSQL已經(jīng)不是單純的反SQL運(yùn)動,指的主要是非關(guān)系型的分布式數(shù)據(jù)庫,并且不支持原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)的數(shù)據(jù)庫設(shè)計(jì)模式[1]。在亞特蘭大舉行的有關(guān)NoSQL的討論會上,學(xué)者給出了NoSQL較為普遍的解釋,即“非關(guān)系型的”。并且指出Key-Value存儲和文檔數(shù)據(jù)庫是NoSQL的主要特點(diǎn),本文認(rèn)為NoSQL是一項(xiàng)新的與傳統(tǒng)關(guān)系數(shù)據(jù)庫有顯著區(qū)別的新技術(shù)。
1 NoSQL的主要特點(diǎn)
1.1 Key-Value存儲
Key-Value本身是一種數(shù)據(jù)結(jié)構(gòu)的模式,其基本思想為:一個主鍵下有相應(yīng)的值,在實(shí)現(xiàn)上可以通過哈希表或B樹等不同的數(shù)據(jù)結(jié)構(gòu)完成。Key-Value存儲是以鍵值對的數(shù)據(jù)模型存儲數(shù)據(jù),并能提供持久化分布式存儲系統(tǒng),查詢速度快、存放數(shù)據(jù)量大、支持高并發(fā),非常適合通過主鍵進(jìn)行查詢機(jī)制和數(shù)據(jù)同步等功能[2]。
現(xiàn)有非關(guān)系型數(shù)據(jù)庫采用不同的方式實(shí)現(xiàn)了Key-Value存儲,并且擁有各自的優(yōu)缺點(diǎn)。然而,性能優(yōu)良的Key-Value存儲需要滿足下列條件:高可用性,即在Key-Value存儲模式下可以提供不間斷的服務(wù);可擴(kuò)展性,海量數(shù)據(jù)的處理要求存儲模式能夠具有可擴(kuò)展性;故障恢復(fù),要求該存儲模式下能夠?qū)收献詣痈兄⒛茏詣踊謴?fù)。
在具體的實(shí)現(xiàn)上,多數(shù)非關(guān)系數(shù)據(jù)庫采用單文件進(jìn)行存儲,雖然單個文件操作具有一定的方便性,但在數(shù)據(jù)量不斷增大時,會遇到存儲瓶頸。為了提高響應(yīng)速度,Key-Value存儲一般只支持?jǐn)?shù)據(jù)的添加操作,而不是支持?jǐn)?shù)據(jù)更新操作。為了實(shí)現(xiàn)故障可恢復(fù),需要對數(shù)據(jù)進(jìn)行備份,數(shù)據(jù)備份操作即從主端向從端的數(shù)據(jù)復(fù)制,應(yīng)用系統(tǒng)的性能在備份過程中會受到影響,備份策略決定了影響程度。然而,數(shù)據(jù)可靠性和性能是一對平衡關(guān)系,越是可靠性高的數(shù)據(jù)保障,其性能相對會下降。
1.2 最終一致性
一致性是關(guān)系數(shù)據(jù)庫中主要特點(diǎn)[3],關(guān)系數(shù)據(jù)庫為了保證一致性需要使用約束條件,從而影響了數(shù)據(jù)的讀寫效率。而非關(guān)系數(shù)據(jù)庫只要求保證數(shù)據(jù)的最終一致性,基本思想是:在數(shù)據(jù)的讀寫過程中,對一致性的要求是松散的,而最終完成操作后的結(jié)果是一致的。
假設(shè)A為對數(shù)據(jù)庫的寫操作,而B和C都代表對數(shù)據(jù)庫的讀操作,且A,B和C之間是相互獨(dú)立的。當(dāng)執(zhí)行了A,即向數(shù)據(jù)庫中寫入數(shù)據(jù),若數(shù)據(jù)庫系統(tǒng)能夠保證隨后B和C的讀操作都能夠讀到最新的數(shù)據(jù),則說明該數(shù)據(jù)庫系統(tǒng)具有強(qiáng)一致性,關(guān)系數(shù)據(jù)庫能夠保證強(qiáng)一致性;當(dāng)執(zhí)行了A,B和C不能夠立即讀到最新的數(shù)據(jù),而是需要經(jīng)過一段時間才能獲取更新的數(shù)據(jù),則說明該數(shù)據(jù)庫系統(tǒng)具備弱一致性,這段時間也叫做不一致性時間窗口;最終一致性屬于弱一致性的特例,當(dāng)執(zhí)行了A,在該數(shù)據(jù)沒有再被更新的條件下,B和C最終都讀取到最新的數(shù)據(jù),這就是最終一致性。
最終一致性是在高數(shù)據(jù)量(十幾億條記錄、數(shù)TB數(shù)據(jù))和高訪問量(數(shù)千TPS、數(shù)萬QPS)需求下的選擇,在缺乏種種約束的情況下,最終一致性在一致性要求不高的應(yīng)用場景下能夠極大提高數(shù)據(jù)訪問效率。
1.3 可擴(kuò)展
這里的擴(kuò)展性主要指的是水平擴(kuò)展性,應(yīng)用無關(guān)和容錯性。關(guān)系數(shù)據(jù)通常通過讀寫分離,更換高性能的服務(wù)器來提高性能[4],而在海量數(shù)據(jù)的環(huán)境下,這些方法仍然無法滿足某些應(yīng)用需求。非關(guān)系數(shù)據(jù)庫具有水平擴(kuò)展性的特點(diǎn)。
盡管現(xiàn)有的非關(guān)系型數(shù)據(jù)庫采用不同的技術(shù)實(shí)現(xiàn)可擴(kuò)展性,但其基本的目標(biāo)是:在應(yīng)用不間斷的情況下,增加或刪除數(shù)據(jù)節(jié)點(diǎn),實(shí)現(xiàn)水平擴(kuò)展;利用分布式計(jì)算的技術(shù),通過節(jié)點(diǎn)之間的通訊,實(shí)現(xiàn)數(shù)據(jù)分布式處理,滿足海量數(shù)據(jù)的讀寫性能要求。
2 NoSQL技術(shù)對數(shù)據(jù)庫教學(xué)的影響
長期以來,普通高校計(jì)算機(jī)專業(yè)的數(shù)據(jù)庫課程以關(guān)系數(shù)據(jù)庫為講授內(nèi)容。作為當(dāng)前數(shù)據(jù)庫領(lǐng)域不可忽視的力量,NoSQL技術(shù)已經(jīng)引起了許多高校的關(guān)注,它給傳統(tǒng)的數(shù)據(jù)庫教學(xué)帶來了以下幾個方面的挑戰(zhàn):
挑戰(zhàn)一,教師的認(rèn)知和講授能力。長期以來,在講授數(shù)據(jù)庫課程時,往往認(rèn)為關(guān)系數(shù)據(jù)庫占主導(dǎo)和統(tǒng)治地位,忽略了對其他數(shù)據(jù)庫的研究。當(dāng)前高校與市場的聯(lián)系遠(yuǎn)遠(yuǎn)不如想象的那樣緊密,因此,當(dāng)前高校教師面對著對NoSQL技術(shù)的認(rèn)知能力,這里不僅包含對技術(shù)的掌握和熟悉,而更重要的是對該新興技術(shù)的認(rèn)可。
在授課的過程中,如何把握NoSQL技術(shù)和關(guān)系數(shù)據(jù)庫的之間的關(guān)系,巧妙地融合兩種技術(shù),使學(xué)生有個全面和清晰的認(rèn)識是數(shù)據(jù)庫課程教師的重要工作之一。
挑戰(zhàn)二,學(xué)生的接受水平。對于剛剛接觸專業(yè)課程的學(xué)生,同時掌握兩種具有對立性質(zhì)的技術(shù)也是學(xué)生學(xué)習(xí)過程中的一個難點(diǎn)。
挑戰(zhàn)三,學(xué)校的實(shí)驗(yàn)環(huán)境。實(shí)驗(yàn)一直是數(shù)據(jù)庫課程教學(xué)的重要環(huán)節(jié),現(xiàn)有大多數(shù)學(xué)校的實(shí)驗(yàn)條件和環(huán)境能夠基本滿足關(guān)系數(shù)據(jù)庫技術(shù)的教學(xué)需要,對于NoSQL技術(shù)所在大規(guī)模數(shù)據(jù)處理下的優(yōu)勢,如何構(gòu)建實(shí)驗(yàn)環(huán)境也是教學(xué)的一個重要挑戰(zhàn)。
為了應(yīng)對這些挑戰(zhàn),我們至少需要弄清楚兩個方面的問題:①為什么要使用NoSQL;②NoSQL技術(shù)和關(guān)系數(shù)據(jù)庫的聯(lián)系和區(qū)別。
2.1 為什么要使用NoSQL技術(shù)
NoSQL技術(shù)不是實(shí)驗(yàn)室的產(chǎn)物,而是以實(shí)際需求推動的,這里的推動主要指的是互聯(lián)網(wǎng)的發(fā)展在推動。Web2.0時代,用戶每天使用網(wǎng)絡(luò)的同時也在制造網(wǎng)絡(luò)的內(nèi)容。例如:用戶在瀏覽微博網(wǎng)站的同時也會自己的信息。這種特點(diǎn)改變了對網(wǎng)站后臺數(shù)據(jù)庫的訪問方式,從原先頻繁的讀操作變成了頻繁的讀寫操作,這時,往往要達(dá)到每秒上萬次讀寫請求,關(guān)系數(shù)據(jù)庫還能同時勉強(qiáng)應(yīng)付上萬次的SQL查詢,但是要同時應(yīng)付上萬次的SQL寫數(shù)據(jù)請求,關(guān)系數(shù)據(jù)庫系統(tǒng)就已經(jīng)無法承受了,對數(shù)據(jù)讀寫操作需求的變化推動了新技術(shù)的發(fā)展。
社交網(wǎng)絡(luò)是Web2.0的一個重要產(chǎn)物,近年來,社交網(wǎng)絡(luò)用戶的規(guī)模日漸增長,2011年8月,F(xiàn)acebook的活躍用戶已經(jīng)接近7億,用戶對Web的要求也逐步的提高,縮短用戶操作的響應(yīng)時間已成為提高網(wǎng)絡(luò)質(zhì)量的基本要求。關(guān)系數(shù)據(jù)庫在保證數(shù)據(jù)的一致性方面有優(yōu)勢,而在大規(guī)模的用戶操作下,嚴(yán)格的一致性對現(xiàn)實(shí)的需求來說并不是必須的,高效的數(shù)據(jù)響應(yīng)才是最重要的,NoSQL在保證最終一致性的情況下能夠?qū)崿F(xiàn)高效的數(shù)據(jù)訪問。
對于一個Web應(yīng)用系統(tǒng),在用戶量和訪問量不斷增加的時候,該應(yīng)用系統(tǒng)需要增加新的服務(wù)節(jié)點(diǎn)來提高性能和負(fù)載能力,在增加服務(wù)節(jié)點(diǎn)時,可以通過增加硬件設(shè)施在滿足Web服務(wù)器和應(yīng)用服務(wù)器的需求,而對于數(shù)據(jù)服務(wù)器,關(guān)系數(shù)據(jù)庫模式下很難進(jìn)行類似增加節(jié)點(diǎn)的水平擴(kuò)展。因此,在關(guān)系數(shù)據(jù)庫的模式下,進(jìn)行節(jié)點(diǎn)增加時需要停機(jī)維護(hù)和數(shù)據(jù)遷移,這對于很多需要提供24小時不間斷服務(wù)的網(wǎng)站來說是不方便的??梢钥闯觯P(guān)系數(shù)據(jù)庫無法滿足應(yīng)用的可擴(kuò)展性和高可用性,而NoSQL技術(shù)具有水平擴(kuò)展性的特點(diǎn),可滿足需求。
從上述分析可知,在互聯(lián)網(wǎng)環(huán)境下處理海量數(shù)據(jù)時,關(guān)系數(shù)據(jù)庫無法滿足實(shí)際需求。一方面,關(guān)系數(shù)據(jù)庫技術(shù)中的種種約束(事務(wù)管理、完整性約束等)對實(shí)際需求來說是沒有必要的;另一方面,這種約束的保證影響了數(shù)據(jù)處理性能。在這種情況下,NoSQL技術(shù)就自然而然地成為了人們的選擇并取得了快速的發(fā)展。
2.2 NoSQL與關(guān)系數(shù)據(jù)庫的對比
通過上述分析可以看出,NoSQL數(shù)據(jù)庫和關(guān)系數(shù)據(jù)庫是根本不同的,兩種數(shù)據(jù)庫分別適應(yīng)不同的需求。
關(guān)系數(shù)據(jù)庫是以表來存儲數(shù)據(jù)的,表的組織形式嚴(yán)格,表中的每一行代表一條數(shù)據(jù)記錄,每一列代表特定方面的信息。在設(shè)計(jì)好表結(jié)構(gòu)(表的列信息)后,修改的代價巨大,數(shù)據(jù)庫表之間存在著聯(lián)系和某種約束關(guān)系。所設(shè)計(jì)的數(shù)據(jù)操作(查詢,添加,修改,刪除)通常涉及對單張表和多個表,在對多個表的操作時需要使用到表之間定義的范式,消除數(shù)據(jù)冗余和保證數(shù)據(jù)一致性是關(guān)系數(shù)據(jù)庫的基本要求。長期以來,關(guān)系數(shù)據(jù)庫一直以簡潔、規(guī)范和靈活占據(jù)著數(shù)據(jù)庫領(lǐng)域的統(tǒng)治地位,現(xiàn)有關(guān)系數(shù)據(jù)庫的產(chǎn)品主要有SQL Server,DB2,Oracle,MySqL等,這些產(chǎn)品都屬于關(guān)系數(shù)據(jù)庫管理系統(tǒng),雖然功能有所不同,但基本思想都屬于關(guān)系數(shù)據(jù)庫的范疇。正是由于關(guān)系數(shù)據(jù)庫的主導(dǎo)地位,在高校計(jì)算機(jī)學(xué)科數(shù)據(jù)庫教學(xué)中,關(guān)系數(shù)據(jù)庫也一直是該課程講授的重點(diǎn)內(nèi)容。
NoSQL數(shù)據(jù)主要有三種主流的數(shù)據(jù)模型,除了上面介紹的Key-Value以外,還有列式和文檔兩種。列式也主要使用Table這樣的模型,但是它并不支持關(guān)系數(shù)據(jù)庫中的多表連接操作,其主要特點(diǎn)是在存儲數(shù)據(jù)時,主要圍繞著“列”,而不是像關(guān)系型數(shù)據(jù)庫那樣根據(jù)“行”進(jìn)行存儲;在結(jié)構(gòu)上,文檔模式與Key-Value模式想象,不同的是,這里的Value對應(yīng)的往往是一個文檔。在查詢時,NoSQL數(shù)據(jù)庫往往只支持主鍵或者是單個列查詢,不支持關(guān)系數(shù)據(jù)庫多表復(fù)雜查詢。在寫操作時,NoSQL數(shù)據(jù)庫對數(shù)據(jù)一致的要求并不是那么高。現(xiàn)有的NoSQL產(chǎn)品很多,主要有Cassandra,HBase,Memcached,Voldemort等。這些數(shù)據(jù)庫的側(cè)重點(diǎn)不同,雖然都具備NoSQL的特點(diǎn),但一些也兼具關(guān)系數(shù)據(jù)庫的功能。其中,許多產(chǎn)品是開源的,開源雖然能夠使更多用戶采用,但其可靠性和后期的維護(hù)也受到了用戶的質(zhì)疑。
關(guān)系數(shù)據(jù)庫是否能被NoSQL數(shù)據(jù)庫取代呢?答案是否定的。雖然關(guān)系數(shù)據(jù)庫在處理Web2.0數(shù)據(jù)時明顯遇到了瓶頸,但不代表它就能被NoSQL技術(shù)完全取代。不同的應(yīng)用背景可有不同的選擇,例如,在金融和電信領(lǐng)域,用戶無法接受數(shù)據(jù)的不一致,因此,關(guān)系數(shù)據(jù)庫的一致性對數(shù)據(jù)處理來說就尤為重要。而對一些非核心數(shù)據(jù)的處理,日志的管理和外部數(shù)據(jù)的集成來說,NoSQL技術(shù)就更能勝任。因此,應(yīng)該根據(jù)實(shí)際的需求選擇NoSQL技術(shù)或者是關(guān)系數(shù)據(jù)庫。NoSQL技術(shù)是在新的需求下對關(guān)系數(shù)據(jù)庫的補(bǔ)充和擴(kuò)展。這就需要將NoSQL技術(shù)和關(guān)系數(shù)據(jù)庫進(jìn)行結(jié)合使用,各取所長,需要使用關(guān)系特性的時候使用關(guān)系數(shù)據(jù)庫,需要使用NoSQL特性的時候使用NoSQL數(shù)據(jù)庫。
2.3 采用啟發(fā)式教學(xué)法
啟發(fā)式教學(xué)的基本思想是:教師在根據(jù)教學(xué)任務(wù)和學(xué)習(xí)的客觀規(guī)律,從實(shí)際出發(fā),以啟發(fā)學(xué)生的思維為核心,采用多種方式,調(diào)動學(xué)生的學(xué)習(xí)主動性和積極性,促使他們生動活潑地學(xué)習(xí)的一種教學(xué)指導(dǎo)思想。
由于NoSQL技術(shù)是從實(shí)際應(yīng)用需求產(chǎn)生而來的,具備實(shí)際的推動力。因此,教師在講授時,可以首先介紹關(guān)系數(shù)據(jù)庫的基本知識,在介紹關(guān)系數(shù)據(jù)庫的性能指標(biāo),例如:每秒讀寫數(shù)據(jù)的次數(shù),數(shù)據(jù)處理能力的極限等概念時,再描述現(xiàn)實(shí)需求。從現(xiàn)實(shí)中,學(xué)生可以發(fā)現(xiàn)關(guān)系數(shù)據(jù)庫的不足,當(dāng)它的某些優(yōu)點(diǎn)不是必須時,就引出了NoSQL技術(shù)。啟發(fā)學(xué)生從需求出發(fā)研究技術(shù)的思想,真正做到學(xué)以致用。
3 結(jié)束語
NoSQL技術(shù)的應(yīng)用已經(jīng)給市場帶來了巨大的影響。本文總結(jié)了NoSQL的特點(diǎn),對比了NoSQL與關(guān)系數(shù)據(jù)之間的區(qū)別,提出了NoSQL技術(shù)給高校計(jì)算機(jī)教學(xué)帶來的挑戰(zhàn)。面對計(jì)算機(jī)技術(shù)高速發(fā)展的時代,高校計(jì)算機(jī)的教學(xué)模式是否能夠適應(yīng)當(dāng)前教育的需要,在數(shù)據(jù)庫教學(xué)方面,如果仍然按照固定的教學(xué)模式,將關(guān)系數(shù)據(jù)庫不可動搖地位的思想傳遞給學(xué)生,顯然是不合理的。因此,我們需要在重視理論教育的同時,研究技術(shù)發(fā)展的動態(tài),以更客觀和合理的方法講授課程。T技術(shù)是一項(xiàng)發(fā)展迅速的技術(shù),在未來的教學(xué)工作中,知識的傳播已經(jīng)不是高等教育的主要任務(wù),而啟發(fā)式的引導(dǎo)才能豐富高校的教學(xué)成果。
參考文獻(xiàn):
[1] Thomas, R. H. A majority consensus approach to concurrencycontrol for multiple copy databases. ACM Transactions on Database Systems,1979.4(2):180-209
[2] Chris Bunch, NavrajChohan, Chandra Krintz, JovanChohan,Jonathan Kupferman, Puneet-Lakhina, YimingLi, Yoshihide Nomura. Key-Value Data stores Comparison in App Scale. February 17, 2010 UCSB Tech Report,2010.3.
關(guān)鍵詞:遙感影像數(shù)據(jù)庫管理系統(tǒng);要求;管理模式
中圖分類號:P23 文獻(xiàn)標(biāo)識碼:A
遙感技術(shù)的發(fā)展準(zhǔn)確來說應(yīng)該開始于人類第一顆人造衛(wèi)星發(fā)射。經(jīng)過幾十年來的發(fā)展,遙感影像的應(yīng)用范圍越來越廣泛,涉及到了軍事、科學(xué)研究、氣象預(yù)報(bào)等等多個行業(yè)領(lǐng)域,也正是由于遙感影像的應(yīng)用越來越廣泛,遙感影像數(shù)據(jù)量越來越大。遙感影像數(shù)據(jù)量與日劇增以后,遙感影像的發(fā)展必然呈現(xiàn)出越來越繁榮的趨勢,數(shù)據(jù)量也會越來越大,面對這樣的情況,對建設(shè)遙感影像數(shù)據(jù)庫管理系統(tǒng)提出了更高的標(biāo)準(zhǔn)。
1 遙感影像數(shù)據(jù)庫管理系統(tǒng)所具備的要求分析
遙感影像是記錄電磁波的膠片,與我們?nèi)粘5挠跋駭?shù)據(jù)存在很大的區(qū)別,從遙感影像數(shù)據(jù)特征來進(jìn)行分析,遙感影像數(shù)據(jù)庫管理系統(tǒng)需要具備以下幾點(diǎn)要求:
1.1 在實(shí)際當(dāng)中,遙感影像的來源有很多渠道,如航空影像、衛(wèi)星影像等等,因此,遙感影像數(shù)據(jù)庫管理系統(tǒng)的兼容性要強(qiáng)。
1.2 遙感影像具有一個很明顯的特點(diǎn)就是能夠表現(xiàn)立體空間,支持空間表達(dá)對于應(yīng)高影像來說是至關(guān)重要的,所以遙感影像數(shù)據(jù)庫管理系統(tǒng)對于空間數(shù)據(jù)索引和數(shù)據(jù)查詢具有一定的能力。
1.3 由于遙感影像數(shù)據(jù)庫來源于很多的渠道,影像數(shù)據(jù)也沒有統(tǒng)一的標(biāo)準(zhǔn),所以對于遙感影像要滿足多尺度的特性。
1.4 遙感影像數(shù)據(jù)庫管理系統(tǒng)必須具備“無縫性”,主要表現(xiàn)在其一集合空間的無縫,遙感影像的存儲一般來說具有固定的存儲模式,而無縫性的要求就是要打破這種模式,構(gòu)建一個無縫的區(qū)域,用戶在使用的時候圖幅是透明的。二是色彩空間的無縫性,遙感影像數(shù)據(jù)庫管理系統(tǒng)在一定區(qū)域和分辨率范圍內(nèi),影像色彩的變化應(yīng)當(dāng)是平滑的,不能出現(xiàn)明顯的差異。其三是尺度空間的無縫性,在操作遙感影像數(shù)據(jù)縮放的時候,應(yīng)該保持不同尺寸之間的遙感影像能夠平穩(wěn)的過渡。其四是影像數(shù)據(jù)和元數(shù)據(jù)的無縫性,該性質(zhì)是遙感影像數(shù)據(jù)庫管理系統(tǒng)建設(shè)當(dāng)中需要著重強(qiáng)調(diào)的。
1.5 遙感影像應(yīng)用較為廣泛,對于商業(yè)用途來說,系統(tǒng)的通用性、擴(kuò)展性以及維護(hù)性是非常重要的。
1.6 隨著社會經(jīng)濟(jì)的發(fā)展,遙感影像數(shù)據(jù)量急劇增加,遙感數(shù)據(jù)庫管理系統(tǒng)的儲存量也應(yīng)該是海量的,必須要達(dá)到TB級。
1.7 從數(shù)據(jù)可視化的角度上來說,遙感影像數(shù)據(jù)庫管理系統(tǒng)的建設(shè)應(yīng)該以零延遲為目標(biāo)。
2 遙感影像數(shù)據(jù)庫系統(tǒng)管理模式研究
從大體上來說,遙感數(shù)據(jù)庫系統(tǒng)管理的主要方式可以分為三大類,一個是基于文件的方式,其次是基于數(shù)據(jù)庫的方式,最后就是文件和數(shù)據(jù)庫混合的方式,下面文章對三種方法進(jìn)行簡單的分析:
2.1 基于文件的方式
遙感影像數(shù)據(jù)庫管理系統(tǒng)基于文件方式進(jìn)行管理的主要優(yōu)點(diǎn)就是結(jié)構(gòu)不復(fù)雜,并且維護(hù)的費(fèi)用也不高,技術(shù)相對來說較為成熟。同時也存在一定的缺點(diǎn),主要表現(xiàn)為安全性能不高,不能支持多用戶進(jìn)行并發(fā)操作,元數(shù)據(jù)管理效率較低等等。因此,對于這種管理方式來說在多數(shù)據(jù)量的環(huán)境下性能表現(xiàn)力不從心,大多數(shù)情況下只能適用于遙感影像數(shù)據(jù)量較小的環(huán)境下。
2.2 文件和數(shù)據(jù)庫混合的方式
文件和數(shù)據(jù)庫混合的方式的主要原理是將遙感影像數(shù)據(jù)以文件的形式保存在服務(wù)器上,但是與之對應(yīng)的元數(shù)據(jù)卻分隔開來保存在了數(shù)據(jù)庫當(dāng)中,這種管理方式的主要優(yōu)點(diǎn)是遙感影像數(shù)據(jù)存儲的效率高,但是相對難度也會增大很多,并且隨著時間的推移,遙感影像數(shù)據(jù)量會不斷增多,并且后期的維護(hù)難度也非常大。
2.3 基于數(shù)據(jù)庫的方式
基于數(shù)據(jù)庫的遙感影像管理模式主要以分布式對象對應(yīng)關(guān)系數(shù)據(jù)庫管理遙感影像數(shù)據(jù),該方式不僅可以給中央服務(wù)器減負(fù),還可以減少產(chǎn)生瓶頸的幾率,提高數(shù)據(jù)的傳送率、查詢以及更新效率,可以大大縮短相應(yīng)時間,并且能夠支持多用戶的并發(fā)訪問,這些都是其他管理模式無法比擬的。除此之外目前的數(shù)據(jù)庫都設(shè)置了安全訪問控制機(jī)制,這樣的設(shè)置能夠?yàn)殚_發(fā)人員省下了不少的麻煩,提高效率。
3 遙感影像數(shù)據(jù)庫管理系統(tǒng)建設(shè)對比分析
由于工作的需要,遙感影像數(shù)據(jù)庫管理系統(tǒng)的功能要求越來越高,為了更好的進(jìn)行分析研究,文章對比了傳統(tǒng)遙感影像數(shù)據(jù)庫系統(tǒng)來論述。
3.1 傳統(tǒng)遙感影像數(shù)據(jù)庫管理系統(tǒng)分析
3.1.1 關(guān)系數(shù)據(jù)庫系統(tǒng)
傳統(tǒng)的關(guān)系數(shù)據(jù)庫對于遙感影像數(shù)據(jù)的處理僅限于數(shù)值和字符串,并沒有豐富的數(shù)據(jù)類型,這對于遙感影像的使用、研究來說是極其不方便的,建立在對象層來挖掘面向?qū)ο髴?yīng)該是目前的主流,對于對象數(shù)據(jù)庫的存儲和訪問不能優(yōu)化,其效率不高,而且技術(shù)上也存在嚴(yán)重的問題。
3.1.2 對象數(shù)據(jù)庫系統(tǒng)
在上個世紀(jì)八十年代以來,對了遙感影像數(shù)據(jù)的最好技術(shù)就是面對象技術(shù),這種技術(shù)的應(yīng)用能夠使得系統(tǒng)當(dāng)中的數(shù)據(jù)模型表現(xiàn)的更加直觀、并且性能更加的問題,后期維護(hù)也較為方便,同時這種系統(tǒng)也存在致命的缺陷,對于SQL的支持很少,實(shí)際的工作當(dāng)中,許多軟件需要應(yīng)用到SQL接口。
3.2 對象一關(guān)系數(shù)據(jù)庫系統(tǒng)
對象一關(guān)系數(shù)據(jù)庫管理系統(tǒng)具備最大的優(yōu)勢就是具有面向?qū)ο蟮慕D芰?,對于?fù)雜的遙感影像數(shù)據(jù)都能進(jìn)行分析,用戶可以直接使用數(shù)據(jù)管理工具,將遙感影像應(yīng)用的具體范圍與系統(tǒng)實(shí)現(xiàn)無縫結(jié)合,極大的提高了工作效率。
在目前來說,對象一關(guān)系數(shù)據(jù)庫管理模式還處在研發(fā)階段,只能說是一種新興的技術(shù),其應(yīng)用的行業(yè)領(lǐng)域也較窄,相比上文論述的遙關(guān)系數(shù)據(jù)庫管理來說還尚不成熟,關(guān)系數(shù)據(jù)庫系統(tǒng)的所有操作只是按照既定的操作標(biāo)準(zhǔn)來執(zhí)行,相對來說非常簡單,但是其致命缺點(diǎn)有限的數(shù)據(jù)類型以及程序設(shè)計(jì)中數(shù)據(jù)結(jié)構(gòu)是制約關(guān)系數(shù)據(jù)庫系統(tǒng)發(fā)展的最大障礙。而遙感影像數(shù)據(jù)對象一關(guān)系數(shù)據(jù)庫管理系統(tǒng)能夠?qū)⒚嫦驅(qū)ο蟮慕D芰完P(guān)系數(shù)據(jù)庫的功能實(shí)現(xiàn)了有機(jī)的結(jié)合,理論上來說都優(yōu)于上述兩種遙感影像數(shù)據(jù)庫管理系統(tǒng),還能將關(guān)系數(shù)據(jù)庫系統(tǒng)缺點(diǎn)轉(zhuǎn)換成優(yōu)勢,具有高度的擴(kuò)展性、管理復(fù)雜遙感影像數(shù)據(jù)的能力也大大提高,用戶通過自定義的功能和索引表達(dá),對于各種類型的遙感影像數(shù)據(jù)實(shí)現(xiàn)訪問、存儲以及恢復(fù)等功能。
遙感影像數(shù)據(jù)對象一關(guān)系數(shù)據(jù)庫管理系統(tǒng)通過開放SQL平臺,可以最大限度的避免定義復(fù)雜對象的專有數(shù)據(jù)結(jié)構(gòu),使得遙感影像數(shù)據(jù)庫管理系統(tǒng)的應(yīng)用更加廣泛。
4 遙感影像數(shù)據(jù)庫管理系統(tǒng)建設(shè)的技術(shù)分析
隨著遙感技術(shù)的不斷發(fā)展,遙感影像數(shù)據(jù)量增長速度越來越快,在這樣的背景下,必須要研發(fā)出一套高效的管理應(yīng)用系統(tǒng),將遙感影像的分發(fā)以及處理能力提升到新的高度,與此同時還需要很好的契合遙感影像數(shù)據(jù)制作影像海圖等各方面應(yīng)用需求。高效科學(xué)的遙感影像數(shù)據(jù)庫管理系統(tǒng)建設(shè)成為了業(yè)內(nèi)關(guān)注的焦點(diǎn)。鑒于此,文章對遙感影像數(shù)據(jù)庫管理系統(tǒng)建設(shè)的總體構(gòu)架以及相關(guān)的技術(shù)問題提出了幾點(diǎn)愚見。
4.1 遙感影像數(shù)據(jù)庫管理系統(tǒng)建設(shè)的總體架構(gòu)
針對日常生產(chǎn)生活對遙感影像數(shù)據(jù)庫管理系統(tǒng)提出的功能和要求,總的來說,系統(tǒng)的總體框架可以分成四層: 基礎(chǔ)設(shè)施層、數(shù)據(jù)層、邏輯層和應(yīng)用層。在這四個層次當(dāng)中,基礎(chǔ)設(shè)施層是整個遙感影像數(shù)據(jù)庫管理系統(tǒng)運(yùn)行的基礎(chǔ),主要包含了系統(tǒng)的軟硬件運(yùn)行環(huán)境以及網(wǎng)絡(luò)運(yùn)行環(huán)境的建設(shè);第二層數(shù)據(jù)層對于整個遙感影像數(shù)據(jù)庫管理系統(tǒng)來說,是非常關(guān)鍵的組成部分,也應(yīng)該是建設(shè)的重中之重,其主要的功能是對采集的原始遙感影像、影像元數(shù)據(jù)以及矢量數(shù)據(jù)等等進(jìn)行儲存;而對于邏輯層來說,主要的工作就是對客戶端訪問遙感影像數(shù)據(jù)庫所需的功能部件進(jìn)行優(yōu)化升級;最后的應(yīng)用層主要就是對遙感影像數(shù)據(jù)庫管理系統(tǒng)當(dāng)中的集成影像進(jìn)行日常的管理和維護(hù),同時提供查詢、分析以及分發(fā)等等功能。
4.2 遙感影像數(shù)據(jù)庫管理系統(tǒng)功的能設(shè)計(jì)
結(jié)合上文對遙感影像數(shù)據(jù)庫管理系統(tǒng)總體架構(gòu)分析,所提出的四層主要架構(gòu)需要實(shí)現(xiàn)的功能,可以將遙感影像數(shù)據(jù)庫管理系統(tǒng)分為五個子系統(tǒng)。
4.2.1 質(zhì)檢入庫子系統(tǒng)
遙感影像采集后需錄入到系統(tǒng)當(dāng)中,但是在此之前需要對遙感影像進(jìn)行質(zhì)檢,主要檢查的內(nèi)容包括了遙感影像的完整性、一致性等等,并且通過工程化方式對遙感影像、元數(shù)據(jù)等等實(shí)現(xiàn)快速入庫,支持?jǐn)帱c(diǎn)續(xù)傳、后臺任務(wù)同時進(jìn)行。
4.2.2 組織管理子系統(tǒng)
該子系統(tǒng)是對遙感影像數(shù)據(jù)管理的核心部分,主要對數(shù)據(jù)庫當(dāng)中遙感影像的參數(shù)進(jìn)行配制、同時還包含了數(shù)據(jù)建模、數(shù)據(jù)備份以及數(shù)據(jù)共享等等應(yīng)用,方便遙感影像數(shù)據(jù)的共享和管理系統(tǒng)的集成。
4.2.3 分發(fā)服務(wù)子系統(tǒng)
需要在系統(tǒng)中引入電子商務(wù)模式的影像分發(fā)服務(wù),實(shí)現(xiàn)對數(shù)據(jù)庫中遙感影像的查詢、分發(fā)等功能,同時在改子系統(tǒng)當(dāng)中提供開放的數(shù)據(jù)接口。
4.2.4 技術(shù)支援子系統(tǒng)
對入庫的遙感影像數(shù)據(jù)進(jìn)行規(guī)范化處理,包括了元數(shù)據(jù)的采集、快視圖提取、鑲嵌、配準(zhǔn)等。
4.2.5 配置維護(hù)子系統(tǒng)
主要的工作是支持和維護(hù)遙感影像數(shù)據(jù)庫管理系統(tǒng)的運(yùn)行,提供一系列的安全管理配套功能,如用戶管理、日志信息維護(hù)等。
結(jié)語
遙感技術(shù)隨著社會經(jīng)濟(jì)的發(fā)展,應(yīng)用越來越廣泛,面對與日俱增的遙感影像數(shù)據(jù),必須要建立一個強(qiáng)大的遙感影像數(shù)據(jù)庫管理,這也是遙感影像發(fā)展的必然趨勢。遙感影像信息系統(tǒng)核心技術(shù)設(shè)計(jì)的范圍較廣、難度較大,目前有很多的學(xué)者在進(jìn)行這方面的研究,本文對遙感影像數(shù)據(jù)庫管理系統(tǒng)的建設(shè)只是進(jìn)行了粗淺的探討,相信隨著研究的深入和科技的發(fā)展,遙感影像數(shù)據(jù)庫管理系統(tǒng)建設(shè)相關(guān)研究會更加的深入,遙感影像也會更加方便的應(yīng)用于我們的各項(xiàng)工作當(dāng)中。
參考文獻(xiàn)
[1]黃杰,劉仁義,劉南,沈林芳,王娜. 海量遙感影像管理與可視化系統(tǒng)的研究與實(shí)現(xiàn)[J]. 浙江大學(xué)學(xué)報(bào)(理學(xué)版). 2008(06).
絡(luò)不法分子通過網(wǎng)絡(luò),局域網(wǎng)等途徑通過入侵電腦使系統(tǒng)無法正常啟動,或超負(fù)荷讓機(jī)子運(yùn)行大量算法,
并關(guān)閉CPU風(fēng)扇,使CPU過熱燒壞等破壞性活動;第二層是指系統(tǒng)信息安全,系統(tǒng)安全通常受到的威脅
如下,黑客對數(shù)據(jù)庫入侵,并盜取想要的資料。
關(guān)鍵字:數(shù)據(jù)庫;管理;技術(shù)
Abstract: The security database contains two meanings: the first layer is that the system is running security,the usual threats of system safe operation are a number of network criminals through the network, local area networks and channels such as the invasion of the computer system does not start properly, or let overload machine running a large number of algorithms, and turn off the CPU fan, to made the CPU overheating burned and other destructive activities; second layer refers to information systems security, system security was usually threats by as follows, a hacker invasion, the database and steal the information you want.
Key words: database; management; technology
中圖分類號:TP31 文獻(xiàn)標(biāo)識碼:A文章編號:2095-2104(2012)
數(shù)據(jù)庫系統(tǒng)在管理數(shù)據(jù)和數(shù)據(jù)傳輸中起著至關(guān)重要的作用,數(shù)據(jù)庫系統(tǒng)在實(shí)際應(yīng)用中存在來自各方面的安全風(fēng)險,由安全風(fēng)險最終引起安全問題。
一、數(shù)據(jù)庫安全的含義
數(shù)據(jù)庫安全包含兩層含義:第一層是指系統(tǒng)運(yùn)行安全,系統(tǒng)運(yùn)行安全通常受到的威脅如下,一些網(wǎng)絡(luò)不法分子通過網(wǎng)絡(luò),局域網(wǎng)等途徑通過入侵電腦使系統(tǒng)無法正常啟動,或超負(fù)荷讓機(jī)子運(yùn)行大量算法,并關(guān)閉cpu風(fēng)扇,使cpu過熱燒壞等破壞性活動;第二層是指系統(tǒng)信息安全,系統(tǒng)安全通常受到的威脅如下,黑客對數(shù)據(jù)庫入侵,并盜取想要的資料。
下面從晰面講述數(shù)據(jù)庫系統(tǒng)的安全風(fēng)險。
二、數(shù)據(jù)庫安全的特征
數(shù)據(jù)庫系統(tǒng)的安全特性主要是針對數(shù)據(jù)而言的,包括數(shù)據(jù)獨(dú)立性、數(shù)據(jù)安全性、數(shù)據(jù)完整性、并發(fā)控制、故障恢復(fù)等幾個方面。下面分別對其進(jìn)行介紹
1、數(shù)據(jù)獨(dú)立性
數(shù)據(jù)獨(dú)立性包括物理獨(dú)立性和邏輯獨(dú)立性兩個方面。物理獨(dú)立性是指用戶的應(yīng)用程序與存儲在磁盤上的數(shù)據(jù)庫中的數(shù)據(jù)是相互獨(dú)立的;邏輯獨(dú)立性是指用戶的應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨(dú)立的。
2、數(shù)據(jù)安全性
操作系統(tǒng)中的對象一般情況下是文件,而數(shù)據(jù)庫支持的應(yīng)用要求更為精細(xì)。通常比較完整的數(shù)據(jù)庫對數(shù)據(jù)安全性采取以下措施:
(1)將數(shù)據(jù)庫中需要保護(hù)的部分與其他部分相隔。
(2)采用授權(quán)規(guī)則,如賬戶、口令和權(quán)限控制等訪問控制方法。
(3)對數(shù)據(jù)進(jìn)行加密后存儲于數(shù)據(jù)庫。
3、數(shù)據(jù)完整性
數(shù)據(jù)完整性包括數(shù)據(jù)的正確性、有效性和一致性。正確性是指數(shù)據(jù)的輸入值與數(shù)據(jù)表對應(yīng)域的類型一樣;有效性是指數(shù)據(jù)庫中的理論數(shù)值滿足現(xiàn)實(shí)應(yīng)用中對該數(shù)值段的約束;一致性是指不同用戶使用的同一數(shù)據(jù)應(yīng)該是一樣的。保證數(shù)據(jù)的完整性,需要防止合法用戶使用數(shù)據(jù)庫時向數(shù)據(jù)庫中加入不合語義的數(shù)據(jù)
4、并發(fā)控制
如果數(shù)據(jù)庫應(yīng)用要實(shí)現(xiàn)多用戶共享數(shù)據(jù),就可能在同一時刻多個用戶要存取數(shù)據(jù),這種事件叫做并發(fā)事件。當(dāng)一個用戶取出數(shù)據(jù)進(jìn)行修改,在修改存入數(shù)據(jù)庫之前如有其它用戶再取此數(shù)據(jù),那么讀出的數(shù)據(jù)就是不正確的。這時就需要對這種并發(fā)操作施行控制,排除和避免這種錯誤的發(fā)生,保證數(shù)據(jù)的正確性。
5、故障恢復(fù)
由數(shù)據(jù)庫管理系統(tǒng)提供一套方法,可及時發(fā)現(xiàn)故障和修復(fù)故障,從而防止數(shù)據(jù)被破壞。數(shù)據(jù)庫系統(tǒng)能盡快恢復(fù)數(shù)據(jù)庫系統(tǒng)運(yùn)行時出現(xiàn)的故障,可能是物理上或是邏輯上的錯誤。比如對系統(tǒng)的誤操作造成的數(shù)據(jù)錯誤等。
三、計(jì)算機(jī)安全問題的具體原因的分析
1、操作方面的問題來自操作系統(tǒng)的風(fēng)險主要集中在病毒、后門、數(shù)據(jù)庫系統(tǒng)和操作系統(tǒng)的關(guān)聯(lián)性方面。
首先在病毒方面,操作系統(tǒng)中可能存在的特洛伊木馬程序?qū)?shù)據(jù)庫系統(tǒng)構(gòu)成極大的威脅,數(shù)據(jù)庫管理員尤其需要注意木馬程序帶給系統(tǒng)人駐程序所帶來的威脅。一旦特洛伊木馬程序修改了人駐程序的密碼,并且當(dāng)更新密碼時,入侵者能得到新的密碼。
其次在操作系統(tǒng)的后門方面,許多數(shù)據(jù)庫系統(tǒng)的特征參數(shù)盡管方便了數(shù)據(jù)庫管理員,但也為數(shù)據(jù)庫服務(wù)器主機(jī)操作系統(tǒng)留下了后門,這使得黑客可以通過后門訪問數(shù)據(jù)庫。最后數(shù)據(jù)庫系統(tǒng)和操作系統(tǒng)之間帶有很強(qiáng)的關(guān)聯(lián)性。操作系統(tǒng)具有文件管理功能,能夠利用存取控制矩陣,實(shí)現(xiàn)對各類文件包括數(shù)據(jù)庫文件的授權(quán)進(jìn)行讀寫和執(zhí)行等,而目操作系統(tǒng)的監(jiān)攔褂能進(jìn)行用戶登錄和口令鑒別的控制,因此數(shù)據(jù)庫系統(tǒng)的安全性最終要靠操作系統(tǒng)和硬件設(shè)備所提供的環(huán)境,如果操作系統(tǒng)允許用戶直接存取數(shù)據(jù)庫文件,則在數(shù)據(jù)庫系統(tǒng)中采取最可靠的安全措施也沒有用。
2、管理問題用戶安全意識薄弱,對信息網(wǎng)絡(luò)安全重視不夠,安全管理措施不落實(shí),導(dǎo)致安全事件的發(fā)生,這些都是當(dāng)前安全管理工作存在的主要問題。從已發(fā)生安全事件的原因中,占前兩位的分別是“未修補(bǔ)軟件安全漏洞”和“登錄密碼過于簡單或未修改”,也表明了用戶缺乏相關(guān)的安全防范意識和基本的安全防范常識。比如數(shù)據(jù)庫系統(tǒng)可用的但并未正確使用的安全選項(xiàng)、危險的默認(rèn)設(shè)置、給用戶更多的不適當(dāng)?shù)臋?quán)限,對系統(tǒng)配置的未經(jīng)授權(quán)的改動等等。
3、數(shù)據(jù)庫系統(tǒng)自身問題雖然絕大多數(shù)常用的關(guān)系數(shù)據(jù)庫系統(tǒng)已經(jīng)存在了十多年之久,并目具有強(qiáng)大的特性,產(chǎn)品非常成熟。但許多應(yīng)詼具有的特征,在操作系統(tǒng)和現(xiàn)在普遍使用的數(shù)據(jù)庫系統(tǒng)中,并沒有提供,特別是那些重要的安全特征,絕大多數(shù)關(guān)系數(shù)據(jù)庫系統(tǒng)并不夠成熟。
四、數(shù)據(jù)庫安全策略
1、對用戶安全管理
Web數(shù)據(jù)庫是個極為復(fù)雜的系統(tǒng),因此很難進(jìn)行正確的配置和安全維護(hù),當(dāng)然,必須首先要保證的就是數(shù)據(jù)庫用戶的權(quán)限的安全性。
當(dāng)用戶通過Web方式要對數(shù)據(jù)庫中的對象(表、視圖、觸發(fā)器、存儲過程等)進(jìn)行操作時,必須通過數(shù)據(jù)庫訪問的身份認(rèn)證。多數(shù)數(shù)據(jù)庫系統(tǒng)還有眾所周知的默認(rèn)賬號和密碼,可支持對數(shù)據(jù)庫資源的各級訪問。因此,很多重要的數(shù)據(jù)庫系統(tǒng)很可能受到威協(xié)。
用戶存取權(quán)限是指不同的用戶對于不同的數(shù)據(jù)對象有不同的操作權(quán)限。存取權(quán)限由兩個要素組成:數(shù)據(jù)對象和操作類型。定義一個用戶的存取權(quán)限就是要定義這個用戶可以在哪些數(shù)據(jù)對象上進(jìn)行哪些類型的操作。
權(quán)限分系統(tǒng)權(quán)限和對象權(quán)限兩種。系統(tǒng)權(quán)限由DBA授予某些數(shù)據(jù)庫用戶,只有得到系統(tǒng)權(quán)限,才能成為數(shù)據(jù)庫用戶。對象權(quán)限是授予數(shù)據(jù)庫用戶對某些數(shù)據(jù)對象進(jìn)行某些操作的權(quán)限,它既可由DBA授權(quán),也可由數(shù)據(jù)對象的創(chuàng)建者授予。
2、數(shù)據(jù)加密
數(shù)據(jù)安全隱患無處不在。一些機(jī)密數(shù)據(jù)庫、商業(yè)數(shù)據(jù)等必須防止它人非法訪問、修改、、拷貝。如何保證數(shù)據(jù)安全?數(shù)據(jù)加密是應(yīng)用最廣、成本最低廉而相對最可靠的方法。數(shù)據(jù)加密是保護(hù)數(shù)據(jù)在存儲和傳遞過程中不被竊取或修改的有效手段。
數(shù)據(jù)加密系統(tǒng)包括對系統(tǒng)的不同部分要選擇何種加密算法、需要多高的安全級別、各算法之間如何協(xié)作等因素。在系統(tǒng)的不同部分要綜合考慮執(zhí)行效率與安全性之間的平衡。因?yàn)橐话銇碇v安全性總是以犧牲系統(tǒng)效率為代價的。
如果要在Internet上的兩個客戶端傳遞安全數(shù)據(jù),這就要求客戶端之間可以彼此判斷對方的身份,傳遞的數(shù)據(jù)必須加密,當(dāng)數(shù)據(jù)在傳輸中被更改時可以被發(fā)覺。
3、事務(wù)管理和故障恢復(fù)
事務(wù)管理和故障恢復(fù)主要是對付系統(tǒng)內(nèi)發(fā)生的自然因素故障,保證數(shù)據(jù)和事務(wù)的一致性和完整性。
故障恢復(fù)的主要措施是進(jìn)行日志記錄和數(shù)據(jù)復(fù)制。在網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)中,分布事務(wù)首先要分解為多個子事務(wù)到各個站點(diǎn)上去執(zhí)行,各個服務(wù)器之間還必須采取合理的算法進(jìn)行分布式并發(fā)控制和提交,以保證事務(wù)的完整性。
事務(wù)運(yùn)行的每一步結(jié)果都記錄在系統(tǒng)日志文件中,并且對重要數(shù)據(jù)進(jìn)行復(fù)制,發(fā)生故障時根據(jù)日志文件利用數(shù)據(jù)副本準(zhǔn)確地完成事務(wù)的恢復(fù)。
4、數(shù)據(jù)庫備份與恢復(fù)
計(jì)算機(jī)同其他設(shè)備一樣,都可能發(fā)生故障。計(jì)算機(jī)故障的原因多種多樣,包括磁盤故障、電源故障、軟件故障、災(zāi)害故障以及人為破壞等。一旦發(fā)生這種情況,就可能造成數(shù)據(jù)庫的數(shù)據(jù)丟失。
因此數(shù)據(jù)庫系統(tǒng)必須采取必要的措施,以保證發(fā)生故障時,可以恢復(fù)數(shù)據(jù)庫。數(shù)據(jù)庫管理系統(tǒng)的備份和恢復(fù)機(jī)制就是保證在數(shù)據(jù)庫系統(tǒng)出故障時,能夠?qū)?shù)據(jù)庫系統(tǒng)還原到正常狀態(tài)。
加強(qiáng)數(shù)據(jù)備份非常重要,數(shù)據(jù)庫擁有很多關(guān)鍵的數(shù)據(jù),這些數(shù)據(jù)一旦遭到破壞后果不堪設(shè)想,而這往往是入侵者真正關(guān)心的東西。不少管理員在這點(diǎn)上作得并不好,不是備份不完全,就是備份不及時。
數(shù)據(jù)備份需要仔細(xì)計(jì)劃,制定出一個策略測試后再去實(shí)施,備份計(jì)劃也需要不斷地調(diào)整。