亚洲激情综合另类男同-中文字幕一区亚洲高清-欧美一区二区三区婷婷月色巨-欧美色欧美亚洲另类少妇

首頁(yè) 優(yōu)秀范文 關(guān)系數(shù)據(jù)庫(kù)

關(guān)系數(shù)據(jù)庫(kù)賞析八篇

發(fā)布時(shí)間:2022-10-03 07:30:28

序言:寫(xiě)作是分享個(gè)人見(jiàn)解和探索未知領(lǐng)域的橋梁,我們?yōu)槟x了8篇的關(guān)系數(shù)據(jù)庫(kù)樣本,期待這些樣本能夠?yàn)槟峁┴S富的參考和啟發(fā),請(qǐng)盡情閱讀。

第1篇

關(guān)鍵詞:非關(guān)系數(shù)據(jù)庫(kù);CouchDB;Map/Reduce

中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2013)14-3220-03

隨著以社交網(wǎng)絡(luò)、云計(jì)算為代表的Web2.0網(wǎng)站的興起,非關(guān)系數(shù)據(jù)庫(kù)(NoSQL)得到了廣泛的關(guān)注[1-2]。這是因?yàn)閭鹘y(tǒng)的關(guān)系數(shù)據(jù)庫(kù)在面對(duì)這類(lèi)應(yīng)用的時(shí)候暴露出許多問(wèn)題,在處理超大規(guī)模的數(shù)據(jù)、應(yīng)對(duì)高度并發(fā)的請(qǐng)求時(shí)顯得力不從心。這種情況下非關(guān)系數(shù)據(jù)庫(kù)得到了迅速的發(fā)展,成為業(yè)界和學(xué)界所探討的熱點(diǎn)問(wèn)題。

CouchDB是在處理半結(jié)構(gòu)化的文檔中具有獨(dú)特的優(yōu)勢(shì),在CMS系統(tǒng)、大數(shù)據(jù)分析和挖掘中具有廣泛的用途。該文首選對(duì)非關(guān)系數(shù)據(jù)庫(kù)的特征及Map/Reduce的工作方式進(jìn)行分析,然后詳介紹了CouchDB的安裝、配置及使用方法。

1 非關(guān)系數(shù)據(jù)庫(kù)

1.1 非關(guān)系數(shù)據(jù)庫(kù)的特點(diǎn)

非關(guān)系數(shù)據(jù)庫(kù)是根據(jù)Web應(yīng)用發(fā)展的需要而產(chǎn)生的,與傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)有很大的差異。關(guān)系數(shù)據(jù)庫(kù)最為顯著的是ACID特性,即原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。從分布式應(yīng)用的CPA理論[3,4]的角度來(lái)看,關(guān)系數(shù)據(jù)庫(kù)主要關(guān)注的是一致性和可用性,能夠很好的滿(mǎn)足傳統(tǒng)的應(yīng)用需求。但是在Web2.0時(shí)代,對(duì)數(shù)據(jù)處理的要求高并發(fā)性、海量數(shù)據(jù)的處理能力和訪(fǎng)問(wèn)需求,以及對(duì)數(shù)據(jù)庫(kù)的高擴(kuò)展性和高可用性要求。相對(duì)而言,關(guān)系數(shù)據(jù)庫(kù)所關(guān)注的一致性、讀寫(xiě)的實(shí)時(shí)性和復(fù)雜的SQL查詢(xún)?cè)谛碌膽?yīng)用中卻并不需要[5]。

CPA理論認(rèn)為一致性、可用性和分區(qū)容錯(cuò)性不可能同時(shí)實(shí)現(xiàn)。因此非關(guān)系數(shù)據(jù)庫(kù)的主要特征為與ACID有著顯著差異的BASE模型[6]。即基本可用(Basically Available)、軟狀態(tài)(Soft state)和最終一致(Eventually consistent),它允許系統(tǒng)在一段時(shí)間內(nèi)有不一致性,而放寬至只要最終狀態(tài)下數(shù)據(jù)是一致的就可以了,從而以犧牲高一致性為代價(jià)獲得了高可用性。由于非關(guān)系數(shù)據(jù)庫(kù)沒(méi)有數(shù)據(jù)庫(kù)模式的約束,從而具備了良好的可擴(kuò)充性。

1.2 Map/Reduce機(jī)制

Map函數(shù)的輸出為數(shù)據(jù)庫(kù)中的文檔或數(shù)據(jù),輸出為鍵值對(duì)。這里的鍵和值可以是系統(tǒng)支持的任何類(lèi)型的數(shù)據(jù),用戶(hù)可以在Map函數(shù)中對(duì)文檔數(shù)據(jù)加以處理,把所需的數(shù)據(jù)以鍵值的形式輸出。Map函數(shù)會(huì)對(duì)數(shù)據(jù)庫(kù)中所有數(shù)據(jù)進(jìn)行處理,結(jié)果由主控制器按鍵進(jìn)行分組,如果用戶(hù)不指定Reduce函數(shù)則按鍵分組的結(jié)果直接輸出。Reduce函數(shù)的功能是把鍵值組合進(jìn)一步處理,比如統(tǒng)計(jì)、匯總等。

2 CouchDB的安裝及應(yīng)用

2.1 CouchDB簡(jiǎn)介

CouchDB是最著名的非關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)之一,它是Apache軟件基金會(huì)的頂級(jí)開(kāi)源項(xiàng)目。CouchDB使用Erlang語(yǔ)言開(kāi)發(fā),繼承了其強(qiáng)大的強(qiáng)大的并發(fā)性和分布式的特征,因此在大數(shù)據(jù)處理及諸如社交網(wǎng)絡(luò)等Web2.0應(yīng)用開(kāi)發(fā)中具有重要的應(yīng)用價(jià)值。CouchDB的早期版本只能安裝在POSIX系統(tǒng)之上,最新版本則提供了對(duì)Windows的支持。

CouchDB是一個(gè)面向文檔的、分布式的數(shù)據(jù)庫(kù),支持REST接口訪(fǎng)問(wèn)。面向文檔是指CouchDB中存儲(chǔ)的是半結(jié)構(gòu)化的JSON文檔,而且可以方便的將文檔對(duì)象映射為具體編程語(yǔ)言的對(duì)象。由于JSON在Ajax技術(shù)及社交網(wǎng)絡(luò)應(yīng)用中廣泛應(yīng)用,因此CouchDB在這類(lèi)應(yīng)用的數(shù)據(jù)存儲(chǔ)和處理中具有良好的應(yīng)用前景。CouchDB是分布式的數(shù)據(jù)庫(kù)系統(tǒng),源于Erlang極好的并發(fā)特性,CouchDB存儲(chǔ)系統(tǒng)可以分布到多臺(tái)計(jì)算機(jī)之上,每臺(tái)計(jì)算機(jī)稱(chēng)為存儲(chǔ)系統(tǒng)的一個(gè)節(jié)點(diǎn)。CouchDB能夠很好的協(xié)調(diào)和同步多個(gè)節(jié)點(diǎn)之間的數(shù)據(jù)一致性和完整性,有效的應(yīng)用系統(tǒng)應(yīng)用中可能出現(xiàn)的各種錯(cuò)誤。CouchDB支持REST接口訪(fǎng)問(wèn),即可以通過(guò)GET、PUT、POST、HEAD和DELETE等標(biāo)準(zhǔn)的Http請(qǐng)求對(duì)數(shù)據(jù)庫(kù)進(jìn)行寫(xiě)入和查詢(xún)分析等操作。因此,任何一種編程語(yǔ)言只要具備Http請(qǐng)求模塊就可以方便的與CouchDB進(jìn)行對(duì)接,甚至只要利用正確的URL地址只要運(yùn)用瀏覽器就可以訪(fǎng)問(wèn)CouchDB得到所需要的數(shù)據(jù)。

與其他的非關(guān)系數(shù)據(jù)庫(kù)一樣,CouchDB利用Map/Reduce對(duì)數(shù)據(jù)進(jìn)行插入、搜索等操作。CouchDB將鍵值對(duì)存儲(chǔ)在B-樹(shù)引擎之上,并根據(jù)鍵值進(jìn)行排序,因此具有高效的查詢(xún)和操作性能。需要注意的是,CouchDB是一個(gè)基于版本的數(shù)據(jù)庫(kù)系統(tǒng),即只能添加數(shù)據(jù)不能刪除和修改數(shù)據(jù),當(dāng)數(shù)據(jù)需要更新時(shí)CouchDB只是增加了新的版本,所有的版本數(shù)據(jù)依舊保存在數(shù)據(jù)庫(kù)中,且可以方便的得到。如果要?jiǎng)h除數(shù)據(jù)則需要將整個(gè)數(shù)據(jù)庫(kù)刪除。

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訪(fǎng)問(wèn)。在瀏覽器中訪(fǎng)問(wèn)該Url即可得到關(guān)于版本等信息的JSON格式的數(shù)據(jù)。CouchDB的管理控制臺(tái)稱(chēng)為Futon,通過(guò)http://127.0.0.1:5984/_utils訪(fǎng)問(wèn)并操作。在Futon中可以手工創(chuàng)建數(shù)據(jù)庫(kù)、添加和查看文檔,并管理CouchDB。默認(rèn)情況下,CouchDB開(kāi)放admin權(quán)限,為了安全起見(jiàn)需要添加用戶(hù)名和密碼。

2.3 CouchDB的操作

3)統(tǒng)計(jì)和匯總

對(duì)CouchDB進(jìn)行更復(fù)雜的查詢(xún)需要同時(shí)使用map函數(shù)reduce函數(shù)。圖5所示的代碼對(duì)數(shù)據(jù)庫(kù)文檔數(shù)量進(jìn)行統(tǒng)計(jì),程序運(yùn)行輸出結(jié)果為數(shù)據(jù)庫(kù)中文檔的總數(shù)。如果數(shù)據(jù)庫(kù)中僅有圖2所加入的數(shù)據(jù),則圖5輸出結(jié)果為2。如果要進(jìn)行匯總操作,只需改變map函數(shù)返回值為需要匯總的數(shù)值,并根據(jù)需要改變group參數(shù)的值為T(mén)rue。

結(jié)合map函數(shù)和reduce函數(shù),可以在CouchDB數(shù)據(jù)庫(kù)中實(shí)現(xiàn)傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)中的運(yùn)算,如選擇、投影、并、交、差,以及連接等。此外,與傳統(tǒng)數(shù)據(jù)庫(kù)一樣,CouchDB也可以利用ViewDefinition將查詢(xún)保存為視圖,其使用參數(shù)與query較為類(lèi)似。不同的是視圖的信息要保存在設(shè)計(jì)文檔之中,因此要指定相應(yīng)的鍵值,在使用中,數(shù)據(jù)庫(kù)根據(jù)這些鍵值生成url用于進(jìn)行訪(fǎng)問(wèn)。

3 結(jié)論

CouchDB作為一種高性能的面向文檔的非關(guān)系數(shù)據(jù)庫(kù)具有廣泛的用途,其開(kāi)源、免費(fèi),以及易用使用的特點(diǎn)使其在Web2.0應(yīng)用開(kāi)發(fā)、大數(shù)據(jù)挖掘與分析等方面都有潛在的重要應(yīng)用價(jià)值。該文對(duì)CouchDB的應(yīng)用的分析,有助于深入了解非關(guān)系數(shù)據(jù)庫(kù)的工作機(jī)制和使用方法。需要指出的是,盡管非關(guān)系數(shù)據(jù)庫(kù)在處理大數(shù)據(jù)方面有很高的效率,但是它絕不是關(guān)系數(shù)據(jù)庫(kù)的替代,在數(shù)據(jù)更新頻繁的傳統(tǒng)應(yīng)用中關(guān)系數(shù)據(jù)庫(kù)依舊是最優(yōu)的選擇。

參考文獻(xiàn):

[1] 蔡金花.淺析NOSQL及使用[J].電腦知識(shí)與技術(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ù)庫(kù)探討之——為什么要用非關(guān)系數(shù)據(jù)庫(kù)?[EB/OL].(2009-11-25). http:///topic/524977.

第2篇

【關(guān)鍵詞】數(shù)據(jù)庫(kù)設(shè)計(jì);單元測(cè)試;集成測(cè)試

一、數(shù)據(jù)庫(kù)設(shè)計(jì)

本系統(tǒng)為面向關(guān)系數(shù)據(jù)庫(kù)的關(guān)鍵字查詢(xún)系統(tǒng),在實(shí)驗(yàn)中本文選取了IMDB 數(shù)據(jù)集,為了進(jìn)行實(shí)驗(yàn),將數(shù)據(jù)集整理為以下七個(gè)表數(shù)據(jù)結(jié)構(gòu)。

實(shí)驗(yàn)數(shù)據(jù)集(電影信息數(shù)據(jù)庫(kù)):

Actor(演員表)、Consume(設(shè)計(jì)師)、Director(導(dǎo)演信息)、Business(投資)、Editor(編輯)、Color(顏色信息)、Keyword(關(guān)鍵詞)。本數(shù)據(jù)庫(kù)抽象的數(shù)據(jù)庫(kù)關(guān)系E-R圖如圖1所示。

二、單元測(cè)試

為保證代碼中SQL語(yǔ)句的正確性,需要對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)進(jìn)行查詢(xún)檢測(cè),當(dāng)輸入關(guān)鍵字為“black”時(shí),查詢(xún)結(jié)果如圖2所示。

通過(guò)外鍵mvname的連接,再查詢(xún)Business關(guān)系表,顯示結(jié)果如圖3所示。

圖3說(shuō)明當(dāng)關(guān)鍵字是“black”時(shí)查詢(xún)出來(lái)的actor表中,與business中mvname相同的值沒(méi)有。當(dāng)關(guān)鍵字為“a”時(shí)查詢(xún)兩表,顯示結(jié)果不為空,如圖4所示。

按照上述方法和SQL語(yǔ)句依次查詢(xún)檢測(cè)其他關(guān)系表。

三、集成測(cè)試

在確定系統(tǒng)代碼中關(guān)鍵字轉(zhuǎn)化的SQL語(yǔ)句都正確的前提下,進(jìn)行系統(tǒng)測(cè)試,即進(jìn)行關(guān)鍵字檢索測(cè)試。

(一)當(dāng)輸入的關(guān)鍵字為為單關(guān)鍵字時(shí),關(guān)鍵字分析過(guò)程比較簡(jiǎn)單,假設(shè)檢索關(guān)鍵字選擇“keyword”,查詢(xún)結(jié)果如圖5所示。

關(guān)鍵字“keyword”為表名,直接輸出keyword表即可。

(二)當(dāng)輸入的關(guān)鍵字為多個(gè)時(shí),情況比單個(gè)的復(fù)雜一些,假設(shè)檢索關(guān)鍵字選擇“director color”,檢索結(jié)果如圖6所示。

顯示的結(jié)果中,包含director和color均為表名時(shí)兩表合一的元組;director為表名color為color表中屬性名時(shí),通過(guò)mvname、mvyear、setname、episode、made、explantaion等屬性值相等連接后的元組;以及director為表名、color為director和color兩表中的屬性值時(shí),同樣通過(guò)mvname、mvyear、setname、episode、made、explantaion等屬性值相等連接所得元組。這三種情況合到一起即為關(guān)鍵字“director color”的查詢(xún)結(jié)果。

四、結(jié)語(yǔ)

從單元測(cè)試的角度,在MySQL數(shù)據(jù)庫(kù)中測(cè)試了系統(tǒng)代碼中SQL語(yǔ)句的正確性。最后,系統(tǒng)測(cè)試中測(cè)試了系統(tǒng)的關(guān)鍵字檢索功能,從單關(guān)鍵字和多關(guān)鍵字的角度驗(yàn)證了系統(tǒng)中的查詢(xún)功能,保證了系統(tǒng)的正確性、可靠性。

參考文獻(xiàn)

[1] Mac K,David J,Linda C.A hierarchical Dirichiet language model[J].Natural Language Engineering,1995,1(3).

第3篇

關(guān)鍵詞:關(guān)系;E-R圖;實(shí)體

中圖分類(lèi)號(hào):TP301 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2013)25-5587-02

數(shù)據(jù)庫(kù)技術(shù)的應(yīng)用實(shí)例在我們生活中隨處可見(jiàn),如企業(yè)、學(xué)校、醫(yī)院、超市、社區(qū)等,可見(jiàn)數(shù)據(jù)庫(kù)技術(shù)的重要性不言而喻。而在普通高等院校、三本或高職類(lèi)(非)計(jì)算機(jī)專(zhuān)業(yè)的群體中,數(shù)據(jù)庫(kù)課程也是作為其中一門(mén)必修的公共基礎(chǔ)課存在。開(kāi)設(shè)的課程有SQL Server、Oracle、Visual FoxPro、Access等,無(wú)論是哪門(mén)課程,它們都有一個(gè)共同的特點(diǎn),都是關(guān)系型數(shù)據(jù)庫(kù)[1],而關(guān)系型數(shù)據(jù)庫(kù)在我們現(xiàn)實(shí)生活中應(yīng)用也是最為廣泛的。下面我們就以一個(gè)簡(jiǎn)單的實(shí)例來(lái)闡述關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)的基本原則和實(shí)踐應(yīng)用。

1 數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)與邏輯設(shè)計(jì)

1.1 三級(jí)模式和二級(jí)映像結(jié)構(gòu)的優(yōu)點(diǎn)

數(shù)據(jù)庫(kù)系統(tǒng)的標(biāo)準(zhǔn)結(jié)構(gòu)為三級(jí)模式和二級(jí)映像。三級(jí)模式分別為內(nèi)模式、模式和外模式,二級(jí)映射為內(nèi)模式/模式映像和模式/外模式映像。如圖1所示:

模式即概念模式,該模式是對(duì)數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是對(duì)所有應(yīng)用程序的數(shù)據(jù)綜合抽象得到的全局?jǐn)?shù)據(jù)視圖;外模式是所有應(yīng)用程序或用戶(hù)訪(fǎng)問(wèn)數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述;內(nèi)模式是數(shù)據(jù)的底層物理存儲(chǔ)結(jié)構(gòu)的描述。二級(jí)映像保證了各級(jí)數(shù)據(jù)在不破壞底層數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的基礎(chǔ)上完成上層數(shù)據(jù)的所有操作任務(wù),保證了數(shù)據(jù)庫(kù)中數(shù)據(jù)較高的邏輯獨(dú)立性和物理獨(dú)立性。

1.2 邏輯設(shè)計(jì)內(nèi)容和方法

計(jì)算機(jī)處理客觀應(yīng)用問(wèn)題的一般框架如圖2所示:

在設(shè)計(jì)開(kāi)發(fā)數(shù)據(jù)庫(kù)時(shí),邏輯設(shè)計(jì)的內(nèi)容有應(yīng)用語(yǔ)義環(huán)境下如何設(shè)計(jì)表、定義表、定義表間關(guān)系、如何操作表等,可通過(guò)文字或一套業(yè)務(wù)實(shí)體表格來(lái)描述。大致可通過(guò)兩步來(lái)完成,第一步:從應(yīng)用問(wèn)題中提取核心概念建立概念模型;概念模型可用實(shí)體—關(guān)系圖(E-R圖)來(lái)描述;第二步基于一定的轉(zhuǎn)換原則建立關(guān)系數(shù)據(jù)模型。關(guān)系模型的表示形式為:R(U, F),其中,R為關(guān)系名,U為屬性集,F(xiàn)為函數(shù)依賴(lài)關(guān)系。轉(zhuǎn)換原則有以下七種[2][3]:

1)一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式,通俗的說(shuō)即一個(gè)實(shí)體對(duì)應(yīng)一張二維表。

2)一個(gè)1:1實(shí)體聯(lián)系可轉(zhuǎn)換為一個(gè)獨(dú)立關(guān)系模式,也可以與任意一端對(duì)應(yīng)的關(guān)系合并。

3)一個(gè)1:N實(shí)體聯(lián)系可轉(zhuǎn)換為一個(gè)獨(dú)立關(guān)系模式,也可以與任意一端對(duì)應(yīng)的關(guān)系合并。

4)一個(gè)M:N實(shí)體聯(lián)系一定轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,特別是帶有屬性的聯(lián)系。

5)三個(gè)以上實(shí)體間的多元聯(lián)系可轉(zhuǎn)換為一個(gè)關(guān)系模式。

6)相同碼的關(guān)系模式可以合并。

7)同一實(shí)體集的實(shí)體間聯(lián)系與對(duì)應(yīng)的關(guān)系合并為一個(gè)關(guān)系模式。

除此之外,數(shù)據(jù)庫(kù)的設(shè)計(jì)不僅需考慮理論支持,還需要結(jié)合實(shí)際的業(yè)務(wù)流程。

2 應(yīng)用實(shí)例解析

其中,實(shí)體“學(xué)生”、“課程”和“系別”分別轉(zhuǎn)換為三個(gè)關(guān)系模式,照應(yīng)原則1;另外有兩個(gè)聯(lián)系,“所屬”聯(lián)系可以獨(dú)立轉(zhuǎn)換為一個(gè)關(guān)系模式,也可以與“學(xué)生”和“系別”任意一個(gè)關(guān)系合并,照應(yīng)原則3;而“選課”聯(lián)系自身具有特殊屬性“成績(jī)”,特殊性體現(xiàn)在該屬性既不能作為“學(xué)生”的屬性存在,也不能作為“課程”的屬性存在,故必須將該聯(lián)系轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,照應(yīng)原則4。綜上所述,E-R圖可被轉(zhuǎn)換為4個(gè)關(guān)系模式,根據(jù)對(duì)該領(lǐng)域的認(rèn)識(shí)和經(jīng)驗(yàn)為每個(gè)關(guān)系添加屬性描述其特征,同時(shí)指定關(guān)系的主碼、外碼以及用戶(hù)自定義完整性約束,最終實(shí)現(xiàn)E-R圖到關(guān)系模型合理正確的轉(zhuǎn)換,建立數(shù)據(jù)庫(kù)同時(shí)進(jìn)一步優(yōu)化其性能[4]。

原則4實(shí)際應(yīng)用的例子有很多,又如銷(xiāo)售商與供應(yīng)商之間的供銷(xiāo)關(guān)系問(wèn)題。在該業(yè)務(wù)流程中三個(gè)主要的實(shí)體:供應(yīng)商,源材料和工廠。他們之間時(shí)刻有著密切的業(yè)務(wù)往來(lái),而在三個(gè)實(shí)體間共同存在“供銷(xiāo)”聯(lián)系,而該聯(lián)系具有屬性“供應(yīng)量”,供應(yīng)量就如同上述的“成績(jī)”一樣,需轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式來(lái)描述。

3 結(jié)束語(yǔ)

文中以關(guān)系數(shù)據(jù)庫(kù)基本理論為依據(jù)展開(kāi)闡述數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的內(nèi)容和方法,并以簡(jiǎn)單實(shí)例來(lái)論證理論方法的指導(dǎo)意義和應(yīng)用效果。

參考文獻(xiàn):

[1] 薩師煊,王珊. 數(shù)據(jù)庫(kù)系統(tǒng)概論[M].北京:高等教育出版社,2000.

[2] 袁國(guó)銘.關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)的總體原則[C].第七屆中國(guó)通信學(xué)會(huì)學(xué)術(shù)年會(huì)論文集,2010:168-171

第4篇

關(guān)鍵詞:查詢(xún)優(yōu)化;索引結(jié)構(gòu);算法分析;對(duì)象關(guān)系數(shù)據(jù)庫(kù)

中圖分類(lèi)號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):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ū)ο蟮拈_(kāi)發(fā)方法是當(dāng)今的主流,但是同時(shí)不得不使用關(guān)系型數(shù)據(jù)庫(kù),將兩者更好地結(jié)合起來(lái)將在很大程度上加快軟件的開(kāi)發(fā)[1]。對(duì)象/關(guān)系數(shù)據(jù)庫(kù)通過(guò)將面向?qū)ο蟪绦蛟O(shè)計(jì)中的對(duì)象映射到基于SQL的關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)中去,能給軟件的開(kāi)發(fā)帶來(lái)很多好處如:數(shù)據(jù)庫(kù)結(jié)構(gòu)清晰,便于實(shí)現(xiàn)OOP,數(shù)據(jù)庫(kù)對(duì)象具有獨(dú)立性,便于維護(hù),需求變更時(shí)程序與數(shù)據(jù)庫(kù)重用率高,修改少。地理時(shí)空數(shù)據(jù)小不同于一般的屬性數(shù)據(jù)和空間數(shù)據(jù)時(shí)空數(shù)據(jù)主要有以下特性:空間性、時(shí)間性、抽象性,進(jìn)而帶來(lái)多維性、多態(tài)性和多尺度[2]。GIS的時(shí)空數(shù)據(jù)組織與管理一直是GIS理論界關(guān)注的一個(gè)熱點(diǎn)問(wèn)題,傳統(tǒng)的基于文件方式的GIS數(shù)據(jù)存儲(chǔ)技術(shù)以及基于混合方式的GIS數(shù)據(jù)存儲(chǔ)技術(shù)有其各自的不足,采用對(duì)象關(guān)系數(shù)據(jù)庫(kù)技術(shù)存儲(chǔ)時(shí)空數(shù)據(jù)是今后一段時(shí)間內(nèi)GIS數(shù)據(jù)管理發(fā)展的一個(gè)方向[3]。

1 對(duì)象關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(ORDBMS)的基本原理

“對(duì)象關(guān)系數(shù)據(jù)庫(kù)”實(shí)現(xiàn)既非純粹的面向?qū)ο蟮臄?shù)據(jù)庫(kù)也非純粹的關(guān)系數(shù)據(jù)庫(kù),它代表兩者的結(jié)合[4]。擴(kuò)充現(xiàn)有數(shù)據(jù)庫(kù)系統(tǒng)以支持面向?qū)ο蟮母拍睿覀兞?xí)慣上稱(chēng)這樣的系統(tǒng)為擴(kuò)充數(shù)據(jù)庫(kù)系統(tǒng)。在關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)上加以擴(kuò)充的, 稱(chēng)之為對(duì)象-關(guān)系數(shù)據(jù)庫(kù)(ORDBMS)。RDBMS派認(rèn)為RDB具有堅(jiān)實(shí)而成熟的理論基礎(chǔ), 主張對(duì)現(xiàn)有的RDBMS 進(jìn)行擴(kuò)充和改進(jìn), 使之升級(jí)為ORDBMS。這種系統(tǒng)既支持已經(jīng)被廣泛使用的SQL,具有良好的通用性, 又具有面向?qū)ο筇匦裕?支持復(fù)雜對(duì)象和復(fù)雜對(duì)象的復(fù)雜行為, 是對(duì)象技術(shù)和傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)技術(shù)的最佳融合。

由于在ORDBMS 中,關(guān)系和對(duì)象兩者共存,因此由面向用戶(hù)層和內(nèi)部接口層構(gòu)成的兩層體系結(jié)構(gòu)來(lái)構(gòu)造一個(gè)ORDBMS。面向用戶(hù)層主要是對(duì)ORSQL ,ORDML 及ORDDL 這類(lèi)語(yǔ)言進(jìn)行轉(zhuǎn)換和處理,通過(guò)解析各種用戶(hù)命令語(yǔ)句,并完成視圖轉(zhuǎn)換和查詢(xún)優(yōu)化,以產(chǎn)生執(zhí)行代碼。內(nèi)部接口層在存儲(chǔ)管理器之上運(yùn)行。存儲(chǔ)管理器是一個(gè)既支持表存儲(chǔ)又支持對(duì)象存儲(chǔ)的內(nèi)核機(jī)制。依靠操作系統(tǒng)的頁(yè)、Buffer 及內(nèi)存管理,存儲(chǔ)機(jī)制實(shí)現(xiàn)從邏輯到物理的存儲(chǔ)的轉(zhuǎn)換。存儲(chǔ)和存取機(jī)制的任務(wù)就是把上層操作轉(zhuǎn)換成單個(gè)的對(duì)象操作或記錄操作。ORDBMS體系結(jié)構(gòu)圖1所示。

2 Oracle對(duì)象關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)在GIS中的應(yīng)用

Oracle是以高級(jí)結(jié)構(gòu)化查詢(xún)語(yǔ)言(SQL)為基礎(chǔ)、支持分布式海量數(shù)據(jù)存儲(chǔ)與處理的對(duì)象關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。目前很多GIS軟件平臺(tái)及其相關(guān)產(chǎn)品采用Oracle作為空間數(shù)據(jù)庫(kù)管理系統(tǒng)的基礎(chǔ)平臺(tái)。因此如何在Oracle中快速、有效地管理和操作海量空間數(shù)據(jù)成為GIS平臺(tái)和應(yīng)用系統(tǒng)研發(fā)人員十分關(guān)心的問(wèn)題。Oracle Spatial解決空間數(shù)據(jù)的方法是:提供一個(gè)MDSYS模式,在其中包含了關(guān)于空間數(shù)據(jù)管理的所有內(nèi)容,即提供一個(gè)對(duì)象數(shù)據(jù)類(lèi)型(SDO_GEOMETRY)、索引功能及多個(gè)針對(duì)SDO_GEOMETRY的函數(shù)/運(yùn)算符。這樣就可以在Oracle數(shù)據(jù)庫(kù)中快速有效地存儲(chǔ)、訪(fǎng)問(wèn)和分析空間數(shù)據(jù)。Oracle Spatial所提供的功能完全集成在數(shù)據(jù)庫(kù)服務(wù)器中。用戶(hù)可使用SQL定義來(lái)操縱空問(wèn)數(shù)據(jù),也可以利用Oracle的標(biāo)準(zhǔn)特性,從而確保數(shù)據(jù)的完整性、可恢復(fù)性和安全性等特征。

2.1 對(duì)象-關(guān)系模型

對(duì)于空間幾何對(duì)象,Oracle Spatial可以用對(duì)象關(guān)系模型來(lái)表達(dá),該對(duì)象關(guān)系模型通常用表的一個(gè)MDSYS.SDO_GEOMETRY類(lèi)型字段來(lái)表示,同時(shí)每一記錄表示一個(gè)幾何對(duì)象地實(shí)例。該對(duì)象關(guān)系模型有以下的優(yōu)點(diǎn):

1) 支持多種幾何對(duì)象類(lèi)型,包括:弧、圓、復(fù)合多邊形、復(fù)合線(xiàn)串、矩形。

2) 容易創(chuàng)建和維護(hù)空間索引并進(jìn)行空間的查詢(xún)。

3) 用一行和一列表示幾何對(duì)象的模型。

4) 可以達(dá)到最優(yōu)的性能。

2.2 數(shù)據(jù)模型

空間數(shù)據(jù)模型可分為幾何元素、幾何對(duì)象、層等三級(jí)結(jié)構(gòu),每一種結(jié)構(gòu)都對(duì)應(yīng)于空間數(shù)據(jù)的一種表達(dá)。層是由幾何對(duì)象組成,而幾何對(duì)象則由幾何元素組成。例如:一個(gè)點(diǎn)表示一個(gè)建筑物,一條線(xiàn)表示一條公路或是跑道,一個(gè)多邊形表示一個(gè)省、城市或某個(gè)區(qū)域。

1) 幾何元素(element)

元素是幾何對(duì)象(Geometry)的基本構(gòu)成單元,支持的空間元素有點(diǎn)、線(xiàn)、面和多邊形,例如:元素可以構(gòu)成星群(由點(diǎn)串構(gòu)成),公路(由線(xiàn)串構(gòu)成)、縣的邊界(多邊形構(gòu)成),元素的每個(gè)坐標(biāo)存儲(chǔ)為x,y坐標(biāo)對(duì)。一個(gè)帶洞的多邊形的外部環(huán)和內(nèi)部環(huán)被認(rèn)為是兩個(gè)不同的元素所構(gòu)成的復(fù)合多邊形。

2) 幾何對(duì)象(Geometry)

一個(gè)幾何對(duì)象表示一個(gè)空間幾何特征,它是由一個(gè)或多個(gè)幾何元素的有序組成:一個(gè)幾何對(duì)象可以由一個(gè)幾何元素組成,也可以由同一類(lèi)型的幾何元素集合或不同類(lèi)型的幾何元素集合組成。

3) 層(layer)

層是具有相同屬性特征的幾何對(duì)象的集合。例如:地理信息系統(tǒng)中,一層包括拓?fù)涮卣鳎硪粚用枋鏊娜丝诿芏?,第三層則描述路和橋的網(wǎng)絡(luò)結(jié)構(gòu),每一層對(duì)應(yīng)一個(gè)空間索引。

2.3 空間查詢(xún)模型

Oracle Spatial用兩層查詢(xún)模型來(lái)解決空間查詢(xún)和空間聯(lián)合查詢(xún)。這兩層模型是指主過(guò)濾和次過(guò)濾。主過(guò)濾主要從被選記錄中作快速選擇并傳給次過(guò)濾,它近似地比較幾何對(duì)象以減小復(fù)雜度計(jì)算,它是一種內(nèi)存、時(shí)間消耗的過(guò)濾;次過(guò)濾是對(duì)來(lái)自于主過(guò)濾的幾何對(duì)象結(jié)果集作精確的計(jì)算。

2.4 空間索引

通過(guò)Oracle Spatial把空間索引化能力導(dǎo)入數(shù)據(jù)庫(kù)引擎是空間產(chǎn)品的一個(gè)關(guān)鍵特征。一個(gè)空間索引就是以空間標(biāo)準(zhǔn)為基礎(chǔ)、限制表內(nèi)(或數(shù)據(jù)空間內(nèi))的搜索的機(jī)制。為了高效地執(zhí)行查詢(xún)過(guò)程,索引是必不可少的,比如在查詢(xún)區(qū)域的數(shù)據(jù)空間內(nèi)尋找對(duì)象,通過(guò)一個(gè)查詢(xún)多邊形(柵欄定位)。第二種查詢(xún)(空間聯(lián)合)類(lèi)型是在兩個(gè)存在空間關(guān)聯(lián)的數(shù)據(jù)空間內(nèi)尋找對(duì)象組。

2.5 空間關(guān)系與過(guò)濾

Oracle Spatial用次過(guò)濾來(lái)決定數(shù)據(jù)庫(kù)中的空間對(duì)象之間的空間關(guān)系??臻g關(guān)系是以幾何對(duì)象的位置為基礎(chǔ)的,最基本的空間關(guān)系是基于拓?fù)浜途嚯x。如:區(qū)域的邊界包含一系列把外部的空間分隔開(kāi)來(lái)的弧段,區(qū)域的內(nèi)部包含區(qū)域內(nèi)的所有不在邊界的點(diǎn)。為此我們說(shuō),擁有部分共同邊界而沒(méi)用共同內(nèi)部點(diǎn)的兩個(gè)區(qū)域的空間關(guān)系為臨近的。兩個(gè)空間幾何對(duì)象的距離定義為他們之間的任何兩點(diǎn)的最小距離。如果兩個(gè)幾何對(duì)象之間的距離小于給定的距離,則我們說(shuō)一個(gè)幾何對(duì)象在另一個(gè)對(duì)象的某一距離內(nèi)。

3 結(jié)論

面向?qū)ο蟮拈_(kāi)發(fā)方法是當(dāng)今的主流,但是同時(shí)不得不使關(guān)系型數(shù)據(jù)庫(kù),將兩者更好地結(jié)合起來(lái)將在很大程度上方便軟件的開(kāi)發(fā)。伴隨著關(guān)系數(shù)據(jù)庫(kù)日益增長(zhǎng)用和面向?qū)ο蟪绦蛟O(shè)計(jì)的普及,對(duì)對(duì)象/關(guān)系數(shù)據(jù)庫(kù)的關(guān)注越來(lái)越多。由于將目前最為流行的關(guān)系數(shù)據(jù)庫(kù)和面向?qū)ο蟪绦蛟O(shè)計(jì)很好的結(jié)合起來(lái),而且己經(jīng)有了比較穩(wěn)定的對(duì)象/關(guān)系數(shù)據(jù)庫(kù)的映射下具,因此對(duì)象/關(guān)系數(shù)據(jù)庫(kù)會(huì)有一定的應(yīng)用前景。本文正是利用對(duì)象關(guān)系數(shù)據(jù)庫(kù)管理地理時(shí)空數(shù)據(jù)所具備的優(yōu)越性,將其用于存取矢量時(shí)空數(shù)據(jù),為地理時(shí)空數(shù)據(jù)的存儲(chǔ)提供了一條有效途徑。

參考文獻(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.

第5篇

關(guān)鍵詞:公共信息模型CIM;SqlBulkCopy與OracleBulkCopy;Oracle;關(guān)系數(shù)據(jù)庫(kù)

中圖分類(lèi)號(hào): G250 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào):

0引言

目前,由于電力生產(chǎn)的迅猛發(fā)展,高科技的廣泛應(yīng)用,用電需求不斷增加,并且隨著我國(guó)經(jīng)濟(jì)的不斷發(fā)展,用電需求將持續(xù)增大,電網(wǎng)規(guī)模越來(lái)越龐大,也就直接造成了電網(wǎng)模型的膨脹性發(fā)展;電網(wǎng)具有調(diào)度、運(yùn)行、維護(hù)、檢修、改造等工作量大的特點(diǎn),需滿(mǎn)足調(diào)度工作“實(shí)時(shí)、可靠、靈活、協(xié)作”的原則,因此如何快速有效的將龐大的電網(wǎng)模型建模入庫(kù),使調(diào)度員能不間斷、高效完成調(diào)度工作成為首要解決的問(wèn)題。

1影響入庫(kù)性能因素分析

公共信息模型(Common Information Model , CIM模型)[ 1]是一個(gè)抽象模型,它包含了所有與電力生產(chǎn)有關(guān)的數(shù)據(jù),實(shí)際為一種XML格式數(shù)據(jù),可以作為一種數(shù)據(jù)庫(kù)直接使用。

煙臺(tái)供電公司是山東電力集團(tuán)公司直屬的國(guó)有大一型供電企業(yè),承擔(dān)著煙臺(tái)市14個(gè)縣市區(qū)的供用電工作。目前,煙臺(tái)電網(wǎng)以500千伏變電站為支撐,220千伏環(huán)網(wǎng)和110千伏輻射網(wǎng)為主網(wǎng)架,公司直轄35千伏及以上變電站54座,變電總?cè)萘?46萬(wàn)千伏安,35千伏及以上輸電線(xiàn)路143條,總長(zhǎng)2437千米。電網(wǎng)模型十分龐大,相對(duì)于的CIM模型巨大,并且隨著用電需求將持續(xù)增大,直接影響入庫(kù)速度。

CIM采取了面向?qū)ο蟮募夹g(shù)來(lái)抽象電力系統(tǒng)的實(shí)現(xiàn)。通過(guò)提供一種對(duì)象類(lèi)和屬性及他們之間的關(guān)系來(lái)表示電力系統(tǒng)資源的標(biāo)準(zhǔn)。但是,目前面向?qū)ο蟮臄?shù)據(jù)庫(kù)發(fā)展還不成熟,而使用最廣泛、技術(shù)最成熟的數(shù)據(jù)庫(kù)管理系統(tǒng)大都是關(guān)系型的。所以需要將面向?qū)ο蟮腃IM與關(guān)系型數(shù)據(jù)庫(kù)結(jié)合起來(lái)[ 2]。

通用信息模型之間的關(guān)系比較復(fù)雜,將所有關(guān)系全部映射成關(guān)系數(shù)據(jù)庫(kù)[3]的表,這些復(fù)雜的通用信息模型關(guān)系將會(huì)不可避免的生成很多關(guān)系表,使數(shù)據(jù)庫(kù)的表的數(shù)量增大。而且表之間的關(guān)系性也非常強(qiáng)。標(biāo)準(zhǔn)的意義在于將系統(tǒng)涉及的通用信息模型對(duì)象和關(guān)系全部映射成表,如果只是其中一部分,數(shù)據(jù)庫(kù)便不能完全的遵循通用信息模型。

關(guān)系型數(shù)據(jù)庫(kù)[4]是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫(kù),借助于集合代數(shù)等數(shù)學(xué)概念和方法來(lái)處理數(shù)據(jù)庫(kù)中的數(shù)據(jù)。

XML缺少關(guān)系型數(shù)據(jù)庫(kù)具備的特性[5]:高效的存儲(chǔ)、索引和數(shù)據(jù)修改機(jī)制、嚴(yán)格的數(shù)據(jù)安全訪(fǎng)問(wèn)控制、完整的事務(wù)和數(shù)據(jù)一致性控制、多用戶(hù)訪(fǎng)問(wèn)機(jī)制、觸發(fā)器、完善的并發(fā)控制等。因此,數(shù)據(jù)量大、數(shù)據(jù)集成度高以及性能要求高的數(shù)據(jù)環(huán)境中仍是使用關(guān)系型數(shù)據(jù)庫(kù)較好,在這里的比較中不考慮直接使用XML數(shù)據(jù)庫(kù)的情況。

2各種方法入庫(kù)的性能比較及應(yīng)用

將CIM對(duì)象模型寫(xiě)入關(guān)系數(shù)據(jù)庫(kù)的方法很多,可以用SQL語(yǔ)句或存儲(chǔ)過(guò)程,也可以用SqlBulkCopy或OracleBulkCopy方法[6],然而不同的方法在性能方面又有他們的不同。下面分別對(duì)各種方法寫(xiě)入數(shù)據(jù)庫(kù)進(jìn)行了分析。

2.1 SQL語(yǔ)句

優(yōu)點(diǎn):以煙臺(tái)電網(wǎng)CIM 模型118.2M的數(shù)據(jù)為例,采用SQL語(yǔ)句直接寫(xiě)入數(shù)據(jù)庫(kù)的方法只需執(zhí)行一次SQL的連接字符串,非常方便。

缺點(diǎn):在客戶(hù)端代碼中,使用拼接SQL語(yǔ)句方式實(shí)現(xiàn)數(shù)據(jù)寫(xiě)入時(shí),由于SQL語(yǔ)句是動(dòng)態(tài)執(zhí)行的,所以惡意用戶(hù)可以通過(guò)拼接SQL的方式實(shí)施SQL注入攻擊。

2.2 存儲(chǔ)過(guò)程

優(yōu)點(diǎn):與SQL語(yǔ)句相比,存儲(chǔ)過(guò)程存在很多優(yōu)勢(shì)。存儲(chǔ)過(guò)程允許標(biāo)準(zhǔn)組件式編程,能夠?qū)崿F(xiàn)較快的執(zhí)行速度,能夠減少網(wǎng)絡(luò)流量,而且可被作為一種安全機(jī)制來(lái)充分利用。

缺點(diǎn):由于其實(shí)現(xiàn)方式是利用數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)類(lèi)調(diào)用存儲(chǔ)過(guò)程,利用循環(huán)逐條插入,所以這種方式的效率不高。還有兩個(gè)方面是他的可移植性和可擴(kuò)展性,因?yàn)橐话愦笮偷腤eb應(yīng)用程序都是多Web服務(wù)器,然后用雙數(shù)據(jù)庫(kù)服務(wù)器做雙機(jī)熱備,其中一臺(tái)開(kāi)機(jī),但是是閑置的。這里只是解決單點(diǎn)故障的問(wèn)題,但形成了多Web應(yīng)用服務(wù)器,單數(shù)據(jù)庫(kù)服務(wù)器的情況。如果所有的運(yùn)算都用存儲(chǔ)過(guò)程實(shí)現(xiàn),那么會(huì)造成數(shù)據(jù)庫(kù)服務(wù)器負(fù)擔(dān)過(guò)重。而Web服務(wù)器負(fù)荷不足的情況,擴(kuò)展數(shù)據(jù)庫(kù)服務(wù)器的話(huà)就會(huì)非常的麻煩,而且投資較大,程序也需要改。

2.3 SqlBulkCopy

優(yōu)點(diǎn):SqlBulkCopy可以實(shí)現(xiàn)數(shù)據(jù)的批量寫(xiě)入操作,并且寫(xiě)入速度非???。可以使用其他源的數(shù)據(jù)有效批量加載SQL Server表。Microsoft SQL Server 提供一個(gè)命令提示符實(shí)用工具,用于將數(shù)據(jù)從一個(gè)表移動(dòng)到另一個(gè)表,表既可以在同一個(gè)服務(wù)器上,也可以在不同服務(wù)器上。SqlBulkCopy 類(lèi)允許編寫(xiě)提供類(lèi)似功能的托管代碼解決方案,還有其他將數(shù)據(jù)加載到 SQL Server 表的方法(例如 INSERT 語(yǔ)句),但相比之下 SqlBulkCopy 提供明顯的性能優(yōu)勢(shì)。

缺點(diǎn):使用 SqlBulkCopy 類(lèi)只能向 SQL Server 表寫(xiě)入數(shù)據(jù),數(shù)據(jù)源不限于 SQL Server,可以使用任何數(shù)據(jù)源,只要數(shù)據(jù)可加載到 DataTable instance 或可使用 DataReader 讀取數(shù)據(jù)。SqlBulkCopy的另一個(gè)缺點(diǎn)是寫(xiě)入前的數(shù)據(jù)判斷和過(guò)濾。

2.4 OracleBulkCopy

OracleBulkCopy是中的一個(gè)類(lèi),是才有的功能。

優(yōu)點(diǎn):調(diào)用WriteToServer方法,可以快速有效的實(shí)現(xiàn)大數(shù)據(jù)量導(dǎo)入數(shù)據(jù)庫(kù)。OracleBulkCopy支持超大文本的導(dǎo)入,支持從數(shù)據(jù)中的某一行開(kāi)始導(dǎo)入,可以決定是否保存數(shù)據(jù)行號(hào),列映射不區(qū)分大小寫(xiě),支持導(dǎo)入常量列,支持源列自動(dòng)檢測(cè),當(dāng)相同源列導(dǎo)入多目標(biāo)列時(shí),只分配一次內(nèi)存,更加節(jié)約內(nèi)存。

缺點(diǎn):OracleBulkCopy目前還不支持事務(wù)回滾。并且Oracle 11g及以上的版本才支持OracleBulkCopy。

2.5 入庫(kù)時(shí)間比較分析

下面以118.2M煙臺(tái)電網(wǎng)CIM模型數(shù)據(jù)作為實(shí)例寫(xiě)入數(shù)據(jù)庫(kù),應(yīng)用各種不同方法寫(xiě)入數(shù)據(jù)庫(kù)的時(shí)間比較如下表1。

表1各種寫(xiě)入數(shù)據(jù)庫(kù)方法時(shí)間比較

在上述比較過(guò)程中由于采用編碼技術(shù)及CIM模型數(shù)據(jù)關(guān)系的特殊性,寫(xiě)入時(shí)間有差距,僅供參考。

綜合以上對(duì)各種方法的分析以及不同方法寫(xiě)入數(shù)據(jù)庫(kù)的時(shí)間比較,在處理海量數(shù)據(jù)方面,OracleBulkCopy較其他方法有明顯的優(yōu)勢(shì)。并且考慮到CIM模型的巨大,因此,采用OracleBulkCopy的方式寫(xiě)入關(guān)系數(shù)據(jù)庫(kù)是最高效的。

3總結(jié)

本文分析了將龐大的電網(wǎng)模型建模入庫(kù)的影響因素,并對(duì)多種寫(xiě)入數(shù)據(jù)庫(kù)的各種方法的性能進(jìn)行了比較。最后通過(guò)煙臺(tái)電網(wǎng)實(shí)際CIM模型數(shù)據(jù)作為實(shí)例對(duì)各種方法入庫(kù)的時(shí)間進(jìn)行了比較。綜合各方面的分析表明:使用OracleBulkCopy方法寫(xiě)入Oracle數(shù)據(jù)庫(kù)是最快,最高效的。解決了煙臺(tái)供電公司基于綜合數(shù)據(jù)平臺(tái)的調(diào)度智能防誤系統(tǒng)中CIM模型快速入庫(kù)的問(wèn)題。

參考文獻(xiàn):

孟祥治.電力系統(tǒng)CIM模型及其數(shù)據(jù)庫(kù)設(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ù)庫(kù)模型探討[J].《太原理工大學(xué)學(xué)報(bào)》,2008,39(1).

第6篇

關(guān)鍵詞: 關(guān)系數(shù)據(jù)庫(kù); NoSQL; 海量數(shù)據(jù); 教學(xué)

中圖分類(lèi)號(hào):TP311.13 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):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ù)庫(kù)。隨著互聯(lián)網(wǎng)Web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)在應(yīng)付Web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的社交網(wǎng)絡(luò)類(lèi)型的Web2.0純動(dòng)態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露出了很多難以克服的問(wèn)題。例如:關(guān)系數(shù)據(jù)庫(kù)為了降低數(shù)據(jù)冗余,保證數(shù)據(jù)約束性,在數(shù)據(jù)查詢(xún)時(shí)不得不使用多個(gè)數(shù)據(jù)表之間的連接操作,這極大地降低了查詢(xún)效率,不能夠滿(mǎn)足當(dāng)前Internet的高實(shí)時(shí)性的要求。而非關(guān)系型數(shù)據(jù)庫(kù)對(duì)并發(fā)的大規(guī)模訪(fǎng)問(wèn)有著效率上的優(yōu)勢(shì),因此,非關(guān)系數(shù)據(jù)庫(kù)是在具體應(yīng)用背景下得到了迅速的發(fā)展。

其實(shí),NoSQL概念最早出現(xiàn)在1998年,當(dāng)時(shí)的含義是反SQL技術(shù)革命運(yùn)動(dòng),但并未引起太多的關(guān)注。直到2009年,NoSQL概念被來(lái)自Rackspace的Eric Evans再次提出,這時(shí)的NoSQL已經(jīng)不是單純的反SQL運(yùn)動(dòng),指的主要是非關(guān)系型的分布式數(shù)據(jù)庫(kù),并且不支持原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)的數(shù)據(jù)庫(kù)設(shè)計(jì)模式[1]。在亞特蘭大舉行的有關(guān)NoSQL的討論會(huì)上,學(xué)者給出了NoSQL較為普遍的解釋?zhuān)础胺顷P(guān)系型的”。并且指出Key-Value存儲(chǔ)和文檔數(shù)據(jù)庫(kù)是NoSQL的主要特點(diǎn),本文認(rèn)為NoSQL是一項(xiàng)新的與傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)有顯著區(qū)別的新技術(shù)。

1 NoSQL的主要特點(diǎn)

1.1 Key-Value存儲(chǔ)

Key-Value本身是一種數(shù)據(jù)結(jié)構(gòu)的模式,其基本思想為:一個(gè)主鍵下有相應(yīng)的值,在實(shí)現(xiàn)上可以通過(guò)哈希表或B樹(shù)等不同的數(shù)據(jù)結(jié)構(gòu)完成。Key-Value存儲(chǔ)是以鍵值對(duì)的數(shù)據(jù)模型存儲(chǔ)數(shù)據(jù),并能提供持久化分布式存儲(chǔ)系統(tǒng),查詢(xún)速度快、存放數(shù)據(jù)量大、支持高并發(fā),非常適合通過(guò)主鍵進(jìn)行查詢(xún)機(jī)制和數(shù)據(jù)同步等功能[2]。

現(xiàn)有非關(guān)系型數(shù)據(jù)庫(kù)采用不同的方式實(shí)現(xiàn)了Key-Value存儲(chǔ),并且擁有各自的優(yōu)缺點(diǎn)。然而,性能優(yōu)良的Key-Value存儲(chǔ)需要滿(mǎn)足下列條件:高可用性,即在Key-Value存儲(chǔ)模式下可以提供不間斷的服務(wù);可擴(kuò)展性,海量數(shù)據(jù)的處理要求存儲(chǔ)模式能夠具有可擴(kuò)展性;故障恢復(fù),要求該存儲(chǔ)模式下能夠?qū)收献詣?dòng)感知并能自動(dòng)恢復(fù)。

在具體的實(shí)現(xiàn)上,多數(shù)非關(guān)系數(shù)據(jù)庫(kù)采用單文件進(jìn)行存儲(chǔ),雖然單個(gè)文件操作具有一定的方便性,但在數(shù)據(jù)量不斷增大時(shí),會(huì)遇到存儲(chǔ)瓶頸。為了提高響應(yīng)速度,Key-Value存儲(chǔ)一般只支持?jǐn)?shù)據(jù)的添加操作,而不是支持?jǐn)?shù)據(jù)更新操作。為了實(shí)現(xiàn)故障可恢復(fù),需要對(duì)數(shù)據(jù)進(jìn)行備份,數(shù)據(jù)備份操作即從主端向從端的數(shù)據(jù)復(fù)制,應(yīng)用系統(tǒng)的性能在備份過(guò)程中會(huì)受到影響,備份策略決定了影響程度。然而,數(shù)據(jù)可靠性和性能是一對(duì)平衡關(guān)系,越是可靠性高的數(shù)據(jù)保障,其性能相對(duì)會(huì)下降。

1.2 最終一致性

一致性是關(guān)系數(shù)據(jù)庫(kù)中主要特點(diǎn)[3],關(guān)系數(shù)據(jù)庫(kù)為了保證一致性需要使用約束條件,從而影響了數(shù)據(jù)的讀寫(xiě)效率。而非關(guān)系數(shù)據(jù)庫(kù)只要求保證數(shù)據(jù)的最終一致性,基本思想是:在數(shù)據(jù)的讀寫(xiě)過(guò)程中,對(duì)一致性的要求是松散的,而最終完成操作后的結(jié)果是一致的。

假設(shè)A為對(duì)數(shù)據(jù)庫(kù)的寫(xiě)操作,而B(niǎo)和C都代表對(duì)數(shù)據(jù)庫(kù)的讀操作,且A,B和C之間是相互獨(dú)立的。當(dāng)執(zhí)行了A,即向數(shù)據(jù)庫(kù)中寫(xiě)入數(shù)據(jù),若數(shù)據(jù)庫(kù)系統(tǒng)能夠保證隨后B和C的讀操作都能夠讀到最新的數(shù)據(jù),則說(shuō)明該數(shù)據(jù)庫(kù)系統(tǒng)具有強(qiáng)一致性,關(guān)系數(shù)據(jù)庫(kù)能夠保證強(qiáng)一致性;當(dāng)執(zhí)行了A,B和C不能夠立即讀到最新的數(shù)據(jù),而是需要經(jīng)過(guò)一段時(shí)間才能獲取更新的數(shù)據(jù),則說(shuō)明該數(shù)據(jù)庫(kù)系統(tǒng)具備弱一致性,這段時(shí)間也叫做不一致性時(shí)間窗口;最終一致性屬于弱一致性的特例,當(dāng)執(zhí)行了A,在該數(shù)據(jù)沒(méi)有再被更新的條件下,B和C最終都讀取到最新的數(shù)據(jù),這就是最終一致性。

最終一致性是在高數(shù)據(jù)量(十幾億條記錄、數(shù)TB數(shù)據(jù))和高訪(fǎng)問(wèn)量(數(shù)千TPS、數(shù)萬(wàn)QPS)需求下的選擇,在缺乏種種約束的情況下,最終一致性在一致性要求不高的應(yīng)用場(chǎng)景下能夠極大提高數(shù)據(jù)訪(fǎng)問(wèn)效率。

1.3 可擴(kuò)展

這里的擴(kuò)展性主要指的是水平擴(kuò)展性,應(yīng)用無(wú)關(guān)和容錯(cuò)性。關(guān)系數(shù)據(jù)通常通過(guò)讀寫(xiě)分離,更換高性能的服務(wù)器來(lái)提高性能[4],而在海量數(shù)據(jù)的環(huán)境下,這些方法仍然無(wú)法滿(mǎn)足某些應(yīng)用需求。非關(guān)系數(shù)據(jù)庫(kù)具有水平擴(kuò)展性的特點(diǎn)。

盡管現(xiàn)有的非關(guān)系型數(shù)據(jù)庫(kù)采用不同的技術(shù)實(shí)現(xiàn)可擴(kuò)展性,但其基本的目標(biāo)是:在應(yīng)用不間斷的情況下,增加或刪除數(shù)據(jù)節(jié)點(diǎn),實(shí)現(xiàn)水平擴(kuò)展;利用分布式計(jì)算的技術(shù),通過(guò)節(jié)點(diǎn)之間的通訊,實(shí)現(xiàn)數(shù)據(jù)分布式處理,滿(mǎn)足海量數(shù)據(jù)的讀寫(xiě)性能要求。

2 NoSQL技術(shù)對(duì)數(shù)據(jù)庫(kù)教學(xué)的影響

長(zhǎng)期以來(lái),普通高校計(jì)算機(jī)專(zhuān)業(yè)的數(shù)據(jù)庫(kù)課程以關(guān)系數(shù)據(jù)庫(kù)為講授內(nèi)容。作為當(dāng)前數(shù)據(jù)庫(kù)領(lǐng)域不可忽視的力量,NoSQL技術(shù)已經(jīng)引起了許多高校的關(guān)注,它給傳統(tǒng)的數(shù)據(jù)庫(kù)教學(xué)帶來(lái)了以下幾個(gè)方面的挑戰(zhàn):

挑戰(zhàn)一,教師的認(rèn)知和講授能力。長(zhǎng)期以來(lái),在講授數(shù)據(jù)庫(kù)課程時(shí),往往認(rèn)為關(guān)系數(shù)據(jù)庫(kù)占主導(dǎo)和統(tǒng)治地位,忽略了對(duì)其他數(shù)據(jù)庫(kù)的研究。當(dāng)前高校與市場(chǎng)的聯(lián)系遠(yuǎn)遠(yuǎn)不如想象的那樣緊密,因此,當(dāng)前高校教師面對(duì)著對(duì)NoSQL技術(shù)的認(rèn)知能力,這里不僅包含對(duì)技術(shù)的掌握和熟悉,而更重要的是對(duì)該新興技術(shù)的認(rèn)可。

在授課的過(guò)程中,如何把握NoSQL技術(shù)和關(guān)系數(shù)據(jù)庫(kù)的之間的關(guān)系,巧妙地融合兩種技術(shù),使學(xué)生有個(gè)全面和清晰的認(rèn)識(shí)是數(shù)據(jù)庫(kù)課程教師的重要工作之一。

挑戰(zhàn)二,學(xué)生的接受水平。對(duì)于剛剛接觸專(zhuān)業(yè)課程的學(xué)生,同時(shí)掌握兩種具有對(duì)立性質(zhì)的技術(shù)也是學(xué)生學(xué)習(xí)過(guò)程中的一個(gè)難點(diǎn)。

挑戰(zhàn)三,學(xué)校的實(shí)驗(yàn)環(huán)境。實(shí)驗(yàn)一直是數(shù)據(jù)庫(kù)課程教學(xué)的重要環(huán)節(jié),現(xiàn)有大多數(shù)學(xué)校的實(shí)驗(yàn)條件和環(huán)境能夠基本滿(mǎn)足關(guān)系數(shù)據(jù)庫(kù)技術(shù)的教學(xué)需要,對(duì)于NoSQL技術(shù)所在大規(guī)模數(shù)據(jù)處理下的優(yōu)勢(shì),如何構(gòu)建實(shí)驗(yàn)環(huán)境也是教學(xué)的一個(gè)重要挑戰(zhàn)。

為了應(yīng)對(duì)這些挑戰(zhàn),我們至少需要弄清楚兩個(gè)方面的問(wèn)題:①為什么要使用NoSQL;②NoSQL技術(shù)和關(guān)系數(shù)據(jù)庫(kù)的聯(lián)系和區(qū)別。

2.1 為什么要使用NoSQL技術(shù)

NoSQL技術(shù)不是實(shí)驗(yàn)室的產(chǎn)物,而是以實(shí)際需求推動(dòng)的,這里的推動(dòng)主要指的是互聯(lián)網(wǎng)的發(fā)展在推動(dòng)。Web2.0時(shí)代,用戶(hù)每天使用網(wǎng)絡(luò)的同時(shí)也在制造網(wǎng)絡(luò)的內(nèi)容。例如:用戶(hù)在瀏覽微博網(wǎng)站的同時(shí)也會(huì)自己的信息。這種特點(diǎn)改變了對(duì)網(wǎng)站后臺(tái)數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)方式,從原先頻繁的讀操作變成了頻繁的讀寫(xiě)操作,這時(shí),往往要達(dá)到每秒上萬(wàn)次讀寫(xiě)請(qǐng)求,關(guān)系數(shù)據(jù)庫(kù)還能同時(shí)勉強(qiáng)應(yīng)付上萬(wàn)次的SQL查詢(xún),但是要同時(shí)應(yīng)付上萬(wàn)次的SQL寫(xiě)數(shù)據(jù)請(qǐng)求,關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)就已經(jīng)無(wú)法承受了,對(duì)數(shù)據(jù)讀寫(xiě)操作需求的變化推動(dòng)了新技術(shù)的發(fā)展。

社交網(wǎng)絡(luò)是Web2.0的一個(gè)重要產(chǎn)物,近年來(lái),社交網(wǎng)絡(luò)用戶(hù)的規(guī)模日漸增長(zhǎng),2011年8月,F(xiàn)acebook的活躍用戶(hù)已經(jīng)接近7億,用戶(hù)對(duì)Web的要求也逐步的提高,縮短用戶(hù)操作的響應(yīng)時(shí)間已成為提高網(wǎng)絡(luò)質(zhì)量的基本要求。關(guān)系數(shù)據(jù)庫(kù)在保證數(shù)據(jù)的一致性方面有優(yōu)勢(shì),而在大規(guī)模的用戶(hù)操作下,嚴(yán)格的一致性對(duì)現(xiàn)實(shí)的需求來(lái)說(shuō)并不是必須的,高效的數(shù)據(jù)響應(yīng)才是最重要的,NoSQL在保證最終一致性的情況下能夠?qū)崿F(xiàn)高效的數(shù)據(jù)訪(fǎng)問(wèn)。

對(duì)于一個(gè)Web應(yīng)用系統(tǒng),在用戶(hù)量和訪(fǎng)問(wèn)量不斷增加的時(shí)候,該應(yīng)用系統(tǒng)需要增加新的服務(wù)節(jié)點(diǎn)來(lái)提高性能和負(fù)載能力,在增加服務(wù)節(jié)點(diǎn)時(shí),可以通過(guò)增加硬件設(shè)施在滿(mǎn)足Web服務(wù)器和應(yīng)用服務(wù)器的需求,而對(duì)于數(shù)據(jù)服務(wù)器,關(guān)系數(shù)據(jù)庫(kù)模式下很難進(jìn)行類(lèi)似增加節(jié)點(diǎn)的水平擴(kuò)展。因此,在關(guān)系數(shù)據(jù)庫(kù)的模式下,進(jìn)行節(jié)點(diǎn)增加時(shí)需要停機(jī)維護(hù)和數(shù)據(jù)遷移,這對(duì)于很多需要提供24小時(shí)不間斷服務(wù)的網(wǎng)站來(lái)說(shuō)是不方便的??梢钥闯觯P(guān)系數(shù)據(jù)庫(kù)無(wú)法滿(mǎn)足應(yīng)用的可擴(kuò)展性和高可用性,而NoSQL技術(shù)具有水平擴(kuò)展性的特點(diǎn),可滿(mǎn)足需求。

從上述分析可知,在互聯(lián)網(wǎng)環(huán)境下處理海量數(shù)據(jù)時(shí),關(guān)系數(shù)據(jù)庫(kù)無(wú)法滿(mǎn)足實(shí)際需求。一方面,關(guān)系數(shù)據(jù)庫(kù)技術(shù)中的種種約束(事務(wù)管理、完整性約束等)對(duì)實(shí)際需求來(lái)說(shuō)是沒(méi)有必要的;另一方面,這種約束的保證影響了數(shù)據(jù)處理性能。在這種情況下,NoSQL技術(shù)就自然而然地成為了人們的選擇并取得了快速的發(fā)展。

2.2 NoSQL與關(guān)系數(shù)據(jù)庫(kù)的對(duì)比

通過(guò)上述分析可以看出,NoSQL數(shù)據(jù)庫(kù)和關(guān)系數(shù)據(jù)庫(kù)是根本不同的,兩種數(shù)據(jù)庫(kù)分別適應(yīng)不同的需求。

關(guān)系數(shù)據(jù)庫(kù)是以表來(lái)存儲(chǔ)數(shù)據(jù)的,表的組織形式嚴(yán)格,表中的每一行代表一條數(shù)據(jù)記錄,每一列代表特定方面的信息。在設(shè)計(jì)好表結(jié)構(gòu)(表的列信息)后,修改的代價(jià)巨大,數(shù)據(jù)庫(kù)表之間存在著聯(lián)系和某種約束關(guān)系。所設(shè)計(jì)的數(shù)據(jù)操作(查詢(xún),添加,修改,刪除)通常涉及對(duì)單張表和多個(gè)表,在對(duì)多個(gè)表的操作時(shí)需要使用到表之間定義的范式,消除數(shù)據(jù)冗余和保證數(shù)據(jù)一致性是關(guān)系數(shù)據(jù)庫(kù)的基本要求。長(zhǎng)期以來(lái),關(guān)系數(shù)據(jù)庫(kù)一直以簡(jiǎn)潔、規(guī)范和靈活占據(jù)著數(shù)據(jù)庫(kù)領(lǐng)域的統(tǒng)治地位,現(xiàn)有關(guān)系數(shù)據(jù)庫(kù)的產(chǎn)品主要有SQL Server,DB2,Oracle,MySqL等,這些產(chǎn)品都屬于關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),雖然功能有所不同,但基本思想都屬于關(guān)系數(shù)據(jù)庫(kù)的范疇。正是由于關(guān)系數(shù)據(jù)庫(kù)的主導(dǎo)地位,在高校計(jì)算機(jī)學(xué)科數(shù)據(jù)庫(kù)教學(xué)中,關(guān)系數(shù)據(jù)庫(kù)也一直是該課程講授的重點(diǎn)內(nèi)容。

NoSQL數(shù)據(jù)主要有三種主流的數(shù)據(jù)模型,除了上面介紹的Key-Value以外,還有列式和文檔兩種。列式也主要使用Table這樣的模型,但是它并不支持關(guān)系數(shù)據(jù)庫(kù)中的多表連接操作,其主要特點(diǎn)是在存儲(chǔ)數(shù)據(jù)時(shí),主要圍繞著“列”,而不是像關(guān)系型數(shù)據(jù)庫(kù)那樣根據(jù)“行”進(jìn)行存儲(chǔ);在結(jié)構(gòu)上,文檔模式與Key-Value模式想象,不同的是,這里的Value對(duì)應(yīng)的往往是一個(gè)文檔。在查詢(xún)時(shí),NoSQL數(shù)據(jù)庫(kù)往往只支持主鍵或者是單個(gè)列查詢(xún),不支持關(guān)系數(shù)據(jù)庫(kù)多表復(fù)雜查詢(xún)。在寫(xiě)操作時(shí),NoSQL數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)一致的要求并不是那么高。現(xiàn)有的NoSQL產(chǎn)品很多,主要有Cassandra,HBase,Memcached,Voldemort等。這些數(shù)據(jù)庫(kù)的側(cè)重點(diǎn)不同,雖然都具備N(xiāo)oSQL的特點(diǎn),但一些也兼具關(guān)系數(shù)據(jù)庫(kù)的功能。其中,許多產(chǎn)品是開(kāi)源的,開(kāi)源雖然能夠使更多用戶(hù)采用,但其可靠性和后期的維護(hù)也受到了用戶(hù)的質(zhì)疑。

關(guān)系數(shù)據(jù)庫(kù)是否能被NoSQL數(shù)據(jù)庫(kù)取代呢?答案是否定的。雖然關(guān)系數(shù)據(jù)庫(kù)在處理Web2.0數(shù)據(jù)時(shí)明顯遇到了瓶頸,但不代表它就能被NoSQL技術(shù)完全取代。不同的應(yīng)用背景可有不同的選擇,例如,在金融和電信領(lǐng)域,用戶(hù)無(wú)法接受數(shù)據(jù)的不一致,因此,關(guān)系數(shù)據(jù)庫(kù)的一致性對(duì)數(shù)據(jù)處理來(lái)說(shuō)就尤為重要。而對(duì)一些非核心數(shù)據(jù)的處理,日志的管理和外部數(shù)據(jù)的集成來(lái)說(shuō),NoSQL技術(shù)就更能勝任。因此,應(yīng)該根據(jù)實(shí)際的需求選擇NoSQL技術(shù)或者是關(guān)系數(shù)據(jù)庫(kù)。NoSQL技術(shù)是在新的需求下對(duì)關(guān)系數(shù)據(jù)庫(kù)的補(bǔ)充和擴(kuò)展。這就需要將NoSQL技術(shù)和關(guān)系數(shù)據(jù)庫(kù)進(jìn)行結(jié)合使用,各取所長(zhǎng),需要使用關(guān)系特性的時(shí)候使用關(guān)系數(shù)據(jù)庫(kù),需要使用NoSQL特性的時(shí)候使用NoSQL數(shù)據(jù)庫(kù)。

2.3 采用啟發(fā)式教學(xué)法

啟發(fā)式教學(xué)的基本思想是:教師在根據(jù)教學(xué)任務(wù)和學(xué)習(xí)的客觀規(guī)律,從實(shí)際出發(fā),以啟發(fā)學(xué)生的思維為核心,采用多種方式,調(diào)動(dòng)學(xué)生的學(xué)習(xí)主動(dòng)性和積極性,促使他們生動(dòng)活潑地學(xué)習(xí)的一種教學(xué)指導(dǎo)思想。

由于NoSQL技術(shù)是從實(shí)際應(yīng)用需求產(chǎn)生而來(lái)的,具備實(shí)際的推動(dòng)力。因此,教師在講授時(shí),可以首先介紹關(guān)系數(shù)據(jù)庫(kù)的基本知識(shí),在介紹關(guān)系數(shù)據(jù)庫(kù)的性能指標(biāo),例如:每秒讀寫(xiě)數(shù)據(jù)的次數(shù),數(shù)據(jù)處理能力的極限等概念時(shí),再描述現(xiàn)實(shí)需求。從現(xiàn)實(shí)中,學(xué)生可以發(fā)現(xiàn)關(guān)系數(shù)據(jù)庫(kù)的不足,當(dāng)它的某些優(yōu)點(diǎn)不是必須時(shí),就引出了NoSQL技術(shù)。啟發(fā)學(xué)生從需求出發(fā)研究技術(shù)的思想,真正做到學(xué)以致用。

3 結(jié)束語(yǔ)

NoSQL技術(shù)的應(yīng)用已經(jīng)給市場(chǎng)帶來(lái)了巨大的影響。本文總結(jié)了NoSQL的特點(diǎn),對(duì)比了NoSQL與關(guān)系數(shù)據(jù)之間的區(qū)別,提出了NoSQL技術(shù)給高校計(jì)算機(jī)教學(xué)帶來(lái)的挑戰(zhàn)。面對(duì)計(jì)算機(jī)技術(shù)高速發(fā)展的時(shí)代,高校計(jì)算機(jī)的教學(xué)模式是否能夠適應(yīng)當(dāng)前教育的需要,在數(shù)據(jù)庫(kù)教學(xué)方面,如果仍然按照固定的教學(xué)模式,將關(guān)系數(shù)據(jù)庫(kù)不可動(dòng)搖地位的思想傳遞給學(xué)生,顯然是不合理的。因此,我們需要在重視理論教育的同時(shí),研究技術(shù)發(fā)展的動(dòng)態(tài),以更客觀和合理的方法講授課程。T技術(shù)是一項(xiàng)發(fā)展迅速的技術(shù),在未來(lái)的教學(xué)工作中,知識(shí)的傳播已經(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.

第7篇

關(guān)鍵詞:遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng);要求;管理模式

中圖分類(lèi)號(hào):P23 文獻(xiàn)標(biāo)識(shí)碼:A

遙感技術(shù)的發(fā)展準(zhǔn)確來(lái)說(shuō)應(yīng)該開(kāi)始于人類(lèi)第一顆人造衛(wèi)星發(fā)射。經(jīng)過(guò)幾十年來(lái)的發(fā)展,遙感影像的應(yīng)用范圍越來(lái)越廣泛,涉及到了軍事、科學(xué)研究、氣象預(yù)報(bào)等等多個(gè)行業(yè)領(lǐng)域,也正是由于遙感影像的應(yīng)用越來(lái)越廣泛,遙感影像數(shù)據(jù)量越來(lái)越大。遙感影像數(shù)據(jù)量與日劇增以后,遙感影像的發(fā)展必然呈現(xiàn)出越來(lái)越繁榮的趨勢(shì),數(shù)據(jù)量也會(huì)越來(lái)越大,面對(duì)這樣的情況,對(duì)建設(shè)遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)提出了更高的標(biāo)準(zhǔn)。

1 遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)所具備的要求分析

遙感影像是記錄電磁波的膠片,與我們?nèi)粘5挠跋駭?shù)據(jù)存在很大的區(qū)別,從遙感影像數(shù)據(jù)特征來(lái)進(jìn)行分析,遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)需要具備以下幾點(diǎn)要求:

1.1 在實(shí)際當(dāng)中,遙感影像的來(lái)源有很多渠道,如航空影像、衛(wèi)星影像等等,因此,遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)的兼容性要強(qiáng)。

1.2 遙感影像具有一個(gè)很明顯的特點(diǎn)就是能夠表現(xiàn)立體空間,支持空間表達(dá)對(duì)于應(yīng)高影像來(lái)說(shuō)是至關(guān)重要的,所以遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)于空間數(shù)據(jù)索引和數(shù)據(jù)查詢(xún)具有一定的能力。

1.3 由于遙感影像數(shù)據(jù)庫(kù)來(lái)源于很多的渠道,影像數(shù)據(jù)也沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),所以對(duì)于遙感影像要滿(mǎn)足多尺度的特性。

1.4 遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)必須具備“無(wú)縫性”,主要表現(xiàn)在其一集合空間的無(wú)縫,遙感影像的存儲(chǔ)一般來(lái)說(shuō)具有固定的存儲(chǔ)模式,而無(wú)縫性的要求就是要打破這種模式,構(gòu)建一個(gè)無(wú)縫的區(qū)域,用戶(hù)在使用的時(shí)候圖幅是透明的。二是色彩空間的無(wú)縫性,遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)在一定區(qū)域和分辨率范圍內(nèi),影像色彩的變化應(yīng)當(dāng)是平滑的,不能出現(xiàn)明顯的差異。其三是尺度空間的無(wú)縫性,在操作遙感影像數(shù)據(jù)縮放的時(shí)候,應(yīng)該保持不同尺寸之間的遙感影像能夠平穩(wěn)的過(guò)渡。其四是影像數(shù)據(jù)和元數(shù)據(jù)的無(wú)縫性,該性質(zhì)是遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)建設(shè)當(dāng)中需要著重強(qiáng)調(diào)的。

1.5 遙感影像應(yīng)用較為廣泛,對(duì)于商業(yè)用途來(lái)說(shuō),系統(tǒng)的通用性、擴(kuò)展性以及維護(hù)性是非常重要的。

1.6 隨著社會(huì)經(jīng)濟(jì)的發(fā)展,遙感影像數(shù)據(jù)量急劇增加,遙感數(shù)據(jù)庫(kù)管理系統(tǒng)的儲(chǔ)存量也應(yīng)該是海量的,必須要達(dá)到TB級(jí)。

1.7 從數(shù)據(jù)可視化的角度上來(lái)說(shuō),遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)的建設(shè)應(yīng)該以零延遲為目標(biāo)。

2 遙感影像數(shù)據(jù)庫(kù)系統(tǒng)管理模式研究

從大體上來(lái)說(shuō),遙感數(shù)據(jù)庫(kù)系統(tǒng)管理的主要方式可以分為三大類(lèi),一個(gè)是基于文件的方式,其次是基于數(shù)據(jù)庫(kù)的方式,最后就是文件和數(shù)據(jù)庫(kù)混合的方式,下面文章對(duì)三種方法進(jìn)行簡(jiǎn)單的分析:

2.1 基于文件的方式

遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)基于文件方式進(jìn)行管理的主要優(yōu)點(diǎn)就是結(jié)構(gòu)不復(fù)雜,并且維護(hù)的費(fèi)用也不高,技術(shù)相對(duì)來(lái)說(shuō)較為成熟。同時(shí)也存在一定的缺點(diǎn),主要表現(xiàn)為安全性能不高,不能支持多用戶(hù)進(jìn)行并發(fā)操作,元數(shù)據(jù)管理效率較低等等。因此,對(duì)于這種管理方式來(lái)說(shuō)在多數(shù)據(jù)量的環(huán)境下性能表現(xiàn)力不從心,大多數(shù)情況下只能適用于遙感影像數(shù)據(jù)量較小的環(huán)境下。

2.2 文件和數(shù)據(jù)庫(kù)混合的方式

文件和數(shù)據(jù)庫(kù)混合的方式的主要原理是將遙感影像數(shù)據(jù)以文件的形式保存在服務(wù)器上,但是與之對(duì)應(yīng)的元數(shù)據(jù)卻分隔開(kāi)來(lái)保存在了數(shù)據(jù)庫(kù)當(dāng)中,這種管理方式的主要優(yōu)點(diǎn)是遙感影像數(shù)據(jù)存儲(chǔ)的效率高,但是相對(duì)難度也會(huì)增大很多,并且隨著時(shí)間的推移,遙感影像數(shù)據(jù)量會(huì)不斷增多,并且后期的維護(hù)難度也非常大。

2.3 基于數(shù)據(jù)庫(kù)的方式

基于數(shù)據(jù)庫(kù)的遙感影像管理模式主要以分布式對(duì)象對(duì)應(yīng)關(guān)系數(shù)據(jù)庫(kù)管理遙感影像數(shù)據(jù),該方式不僅可以給中央服務(wù)器減負(fù),還可以減少產(chǎn)生瓶頸的幾率,提高數(shù)據(jù)的傳送率、查詢(xún)以及更新效率,可以大大縮短相應(yīng)時(shí)間,并且能夠支持多用戶(hù)的并發(fā)訪(fǎng)問(wèn),這些都是其他管理模式無(wú)法比擬的。除此之外目前的數(shù)據(jù)庫(kù)都設(shè)置了安全訪(fǎng)問(wèn)控制機(jī)制,這樣的設(shè)置能夠?yàn)殚_(kāi)發(fā)人員省下了不少的麻煩,提高效率。

3 遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)建設(shè)對(duì)比分析

由于工作的需要,遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)的功能要求越來(lái)越高,為了更好的進(jìn)行分析研究,文章對(duì)比了傳統(tǒng)遙感影像數(shù)據(jù)庫(kù)系統(tǒng)來(lái)論述。

3.1 傳統(tǒng)遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)分析

3.1.1 關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)

傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)對(duì)于遙感影像數(shù)據(jù)的處理僅限于數(shù)值和字符串,并沒(méi)有豐富的數(shù)據(jù)類(lèi)型,這對(duì)于遙感影像的使用、研究來(lái)說(shuō)是極其不方便的,建立在對(duì)象層來(lái)挖掘面向?qū)ο髴?yīng)該是目前的主流,對(duì)于對(duì)象數(shù)據(jù)庫(kù)的存儲(chǔ)和訪(fǎng)問(wèn)不能優(yōu)化,其效率不高,而且技術(shù)上也存在嚴(yán)重的問(wèn)題。

3.1.2 對(duì)象數(shù)據(jù)庫(kù)系統(tǒng)

在上個(gè)世紀(jì)八十年代以來(lái),對(duì)了遙感影像數(shù)據(jù)的最好技術(shù)就是面對(duì)象技術(shù),這種技術(shù)的應(yīng)用能夠使得系統(tǒng)當(dāng)中的數(shù)據(jù)模型表現(xiàn)的更加直觀、并且性能更加的問(wèn)題,后期維護(hù)也較為方便,同時(shí)這種系統(tǒng)也存在致命的缺陷,對(duì)于SQL的支持很少,實(shí)際的工作當(dāng)中,許多軟件需要應(yīng)用到SQL接口。

3.2 對(duì)象一關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)

對(duì)象一關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)具備最大的優(yōu)勢(shì)就是具有面向?qū)ο蟮慕D芰?,?duì)于復(fù)雜的遙感影像數(shù)據(jù)都能進(jìn)行分析,用戶(hù)可以直接使用數(shù)據(jù)管理工具,將遙感影像應(yīng)用的具體范圍與系統(tǒng)實(shí)現(xiàn)無(wú)縫結(jié)合,極大的提高了工作效率。

在目前來(lái)說(shuō),對(duì)象一關(guān)系數(shù)據(jù)庫(kù)管理模式還處在研發(fā)階段,只能說(shuō)是一種新興的技術(shù),其應(yīng)用的行業(yè)領(lǐng)域也較窄,相比上文論述的遙關(guān)系數(shù)據(jù)庫(kù)管理來(lái)說(shuō)還尚不成熟,關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的所有操作只是按照既定的操作標(biāo)準(zhǔn)來(lái)執(zhí)行,相對(duì)來(lái)說(shuō)非常簡(jiǎn)單,但是其致命缺點(diǎn)有限的數(shù)據(jù)類(lèi)型以及程序設(shè)計(jì)中數(shù)據(jù)結(jié)構(gòu)是制約關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)發(fā)展的最大障礙。而遙感影像數(shù)據(jù)對(duì)象一關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)能夠?qū)⒚嫦驅(qū)ο蟮慕D芰完P(guān)系數(shù)據(jù)庫(kù)的功能實(shí)現(xiàn)了有機(jī)的結(jié)合,理論上來(lái)說(shuō)都優(yōu)于上述兩種遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng),還能將關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)缺點(diǎn)轉(zhuǎn)換成優(yōu)勢(shì),具有高度的擴(kuò)展性、管理復(fù)雜遙感影像數(shù)據(jù)的能力也大大提高,用戶(hù)通過(guò)自定義的功能和索引表達(dá),對(duì)于各種類(lèi)型的遙感影像數(shù)據(jù)實(shí)現(xiàn)訪(fǎng)問(wèn)、存儲(chǔ)以及恢復(fù)等功能。

遙感影像數(shù)據(jù)對(duì)象一關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)通過(guò)開(kāi)放SQL平臺(tái),可以最大限度的避免定義復(fù)雜對(duì)象的專(zhuān)有數(shù)據(jù)結(jié)構(gòu),使得遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)的應(yīng)用更加廣泛。

4 遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)建設(shè)的技術(shù)分析

隨著遙感技術(shù)的不斷發(fā)展,遙感影像數(shù)據(jù)量增長(zhǎng)速度越來(lái)越快,在這樣的背景下,必須要研發(fā)出一套高效的管理應(yīng)用系統(tǒng),將遙感影像的分發(fā)以及處理能力提升到新的高度,與此同時(shí)還需要很好的契合遙感影像數(shù)據(jù)制作影像海圖等各方面應(yīng)用需求。高效科學(xué)的遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)建設(shè)成為了業(yè)內(nèi)關(guān)注的焦點(diǎn)。鑒于此,文章對(duì)遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)建設(shè)的總體構(gòu)架以及相關(guān)的技術(shù)問(wèn)題提出了幾點(diǎn)愚見(jiàn)。

4.1 遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)建設(shè)的總體架構(gòu)

針對(duì)日常生產(chǎn)生活對(duì)遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)提出的功能和要求,總的來(lái)說(shuō),系統(tǒng)的總體框架可以分成四層: 基礎(chǔ)設(shè)施層、數(shù)據(jù)層、邏輯層和應(yīng)用層。在這四個(gè)層次當(dāng)中,基礎(chǔ)設(shè)施層是整個(gè)遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)運(yùn)行的基礎(chǔ),主要包含了系統(tǒng)的軟硬件運(yùn)行環(huán)境以及網(wǎng)絡(luò)運(yùn)行環(huán)境的建設(shè);第二層數(shù)據(jù)層對(duì)于整個(gè)遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)說(shuō),是非常關(guān)鍵的組成部分,也應(yīng)該是建設(shè)的重中之重,其主要的功能是對(duì)采集的原始遙感影像、影像元數(shù)據(jù)以及矢量數(shù)據(jù)等等進(jìn)行儲(chǔ)存;而對(duì)于邏輯層來(lái)說(shuō),主要的工作就是對(duì)客戶(hù)端訪(fǎng)問(wèn)遙感影像數(shù)據(jù)庫(kù)所需的功能部件進(jìn)行優(yōu)化升級(jí);最后的應(yīng)用層主要就是對(duì)遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)當(dāng)中的集成影像進(jìn)行日常的管理和維護(hù),同時(shí)提供查詢(xún)、分析以及分發(fā)等等功能。

4.2 遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)功的能設(shè)計(jì)

結(jié)合上文對(duì)遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)總體架構(gòu)分析,所提出的四層主要架構(gòu)需要實(shí)現(xiàn)的功能,可以將遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)分為五個(gè)子系統(tǒng)。

4.2.1 質(zhì)檢入庫(kù)子系統(tǒng)

遙感影像采集后需錄入到系統(tǒng)當(dāng)中,但是在此之前需要對(duì)遙感影像進(jìn)行質(zhì)檢,主要檢查的內(nèi)容包括了遙感影像的完整性、一致性等等,并且通過(guò)工程化方式對(duì)遙感影像、元數(shù)據(jù)等等實(shí)現(xiàn)快速入庫(kù),支持?jǐn)帱c(diǎn)續(xù)傳、后臺(tái)任務(wù)同時(shí)進(jìn)行。

4.2.2 組織管理子系統(tǒng)

該子系統(tǒng)是對(duì)遙感影像數(shù)據(jù)管理的核心部分,主要對(duì)數(shù)據(jù)庫(kù)當(dāng)中遙感影像的參數(shù)進(jìn)行配制、同時(shí)還包含了數(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)對(duì)數(shù)據(jù)庫(kù)中遙感影像的查詢(xún)、分發(fā)等功能,同時(shí)在改子系統(tǒng)當(dāng)中提供開(kāi)放的數(shù)據(jù)接口。

4.2.4 技術(shù)支援子系統(tǒng)

對(duì)入庫(kù)的遙感影像數(shù)據(jù)進(jìn)行規(guī)范化處理,包括了元數(shù)據(jù)的采集、快視圖提取、鑲嵌、配準(zhǔn)等。

4.2.5 配置維護(hù)子系統(tǒng)

主要的工作是支持和維護(hù)遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)的運(yùn)行,提供一系列的安全管理配套功能,如用戶(hù)管理、日志信息維護(hù)等。

結(jié)語(yǔ)

遙感技術(shù)隨著社會(huì)經(jīng)濟(jì)的發(fā)展,應(yīng)用越來(lái)越廣泛,面對(duì)與日俱增的遙感影像數(shù)據(jù),必須要建立一個(gè)強(qiáng)大的遙感影像數(shù)據(jù)庫(kù)管理,這也是遙感影像發(fā)展的必然趨勢(shì)。遙感影像信息系統(tǒng)核心技術(shù)設(shè)計(jì)的范圍較廣、難度較大,目前有很多的學(xué)者在進(jìn)行這方面的研究,本文對(duì)遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)的建設(shè)只是進(jìn)行了粗淺的探討,相信隨著研究的深入和科技的發(fā)展,遙感影像數(shù)據(jù)庫(kù)管理系統(tǒng)建設(shè)相關(guān)研究會(huì)更加的深入,遙感影像也會(huì)更加方便的應(yīng)用于我們的各項(xiàng)工作當(dāng)中。

參考文獻(xiàn)

[1]黃杰,劉仁義,劉南,沈林芳,王娜. 海量遙感影像管理與可視化系統(tǒng)的研究與實(shí)現(xiàn)[J]. 浙江大學(xué)學(xué)報(bào)(理學(xué)版). 2008(06).

第8篇

絡(luò)不法分子通過(guò)網(wǎng)絡(luò),局域網(wǎng)等途徑通過(guò)入侵電腦使系統(tǒng)無(wú)法正常啟動(dòng),或超負(fù)荷讓機(jī)子運(yùn)行大量算法,

并關(guān)閉CPU風(fēng)扇,使CPU過(guò)熱燒壞等破壞性活動(dòng);第二層是指系統(tǒng)信息安全,系統(tǒng)安全通常受到的威脅

如下,黑客對(duì)數(shù)據(jù)庫(kù)入侵,并盜取想要的資料。

關(guān)鍵字:數(shù)據(jù)庫(kù);管理;技術(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

中圖分類(lèi)號(hào):TP31 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2095-2104(2012)

數(shù)據(jù)庫(kù)系統(tǒng)在管理數(shù)據(jù)和數(shù)據(jù)傳輸中起著至關(guān)重要的作用,數(shù)據(jù)庫(kù)系統(tǒng)在實(shí)際應(yīng)用中存在來(lái)自各方面的安全風(fēng)險(xiǎn),由安全風(fēng)險(xiǎn)最終引起安全問(wèn)題。

一、數(shù)據(jù)庫(kù)安全的含義

數(shù)據(jù)庫(kù)安全包含兩層含義:第一層是指系統(tǒng)運(yùn)行安全,系統(tǒng)運(yùn)行安全通常受到的威脅如下,一些網(wǎng)絡(luò)不法分子通過(guò)網(wǎng)絡(luò),局域網(wǎng)等途徑通過(guò)入侵電腦使系統(tǒng)無(wú)法正常啟動(dòng),或超負(fù)荷讓機(jī)子運(yùn)行大量算法,并關(guān)閉cpu風(fēng)扇,使cpu過(guò)熱燒壞等破壞性活動(dòng);第二層是指系統(tǒng)信息安全,系統(tǒng)安全通常受到的威脅如下,黑客對(duì)數(shù)據(jù)庫(kù)入侵,并盜取想要的資料。

下面從晰面講述數(shù)據(jù)庫(kù)系統(tǒng)的安全風(fēng)險(xiǎn)。

二、數(shù)據(jù)庫(kù)安全的特征

數(shù)據(jù)庫(kù)系統(tǒng)的安全特性主要是針對(duì)數(shù)據(jù)而言的,包括數(shù)據(jù)獨(dú)立性、數(shù)據(jù)安全性、數(shù)據(jù)完整性、并發(fā)控制、故障恢復(fù)等幾個(gè)方面。下面分別對(duì)其進(jìn)行介紹

1、數(shù)據(jù)獨(dú)立性

數(shù)據(jù)獨(dú)立性包括物理獨(dú)立性和邏輯獨(dú)立性?xún)蓚€(gè)方面。物理獨(dú)立性是指用戶(hù)的應(yīng)用程序與存儲(chǔ)在磁盤(pán)上的數(shù)據(jù)庫(kù)中的數(shù)據(jù)是相互獨(dú)立的;邏輯獨(dú)立性是指用戶(hù)的應(yīng)用程序與數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)是相互獨(dú)立的。

2、數(shù)據(jù)安全性

操作系統(tǒng)中的對(duì)象一般情況下是文件,而數(shù)據(jù)庫(kù)支持的應(yīng)用要求更為精細(xì)。通常比較完整的數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)安全性采取以下措施:

(1)將數(shù)據(jù)庫(kù)中需要保護(hù)的部分與其他部分相隔。

(2)采用授權(quán)規(guī)則,如賬戶(hù)、口令和權(quán)限控制等訪(fǎng)問(wèn)控制方法。

(3)對(duì)數(shù)據(jù)進(jìn)行加密后存儲(chǔ)于數(shù)據(jù)庫(kù)。

3、數(shù)據(jù)完整性

數(shù)據(jù)完整性包括數(shù)據(jù)的正確性、有效性和一致性。正確性是指數(shù)據(jù)的輸入值與數(shù)據(jù)表對(duì)應(yīng)域的類(lèi)型一樣;有效性是指數(shù)據(jù)庫(kù)中的理論數(shù)值滿(mǎn)足現(xiàn)實(shí)應(yīng)用中對(duì)該數(shù)值段的約束;一致性是指不同用戶(hù)使用的同一數(shù)據(jù)應(yīng)該是一樣的。保證數(shù)據(jù)的完整性,需要防止合法用戶(hù)使用數(shù)據(jù)庫(kù)時(shí)向數(shù)據(jù)庫(kù)中加入不合語(yǔ)義的數(shù)據(jù)

4、并發(fā)控制

如果數(shù)據(jù)庫(kù)應(yīng)用要實(shí)現(xiàn)多用戶(hù)共享數(shù)據(jù),就可能在同一時(shí)刻多個(gè)用戶(hù)要存取數(shù)據(jù),這種事件叫做并發(fā)事件。當(dāng)一個(gè)用戶(hù)取出數(shù)據(jù)進(jìn)行修改,在修改存入數(shù)據(jù)庫(kù)之前如有其它用戶(hù)再取此數(shù)據(jù),那么讀出的數(shù)據(jù)就是不正確的。這時(shí)就需要對(duì)這種并發(fā)操作施行控制,排除和避免這種錯(cuò)誤的發(fā)生,保證數(shù)據(jù)的正確性。

5、故障恢復(fù)

由數(shù)據(jù)庫(kù)管理系統(tǒng)提供一套方法,可及時(shí)發(fā)現(xiàn)故障和修復(fù)故障,從而防止數(shù)據(jù)被破壞。數(shù)據(jù)庫(kù)系統(tǒng)能盡快恢復(fù)數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行時(shí)出現(xiàn)的故障,可能是物理上或是邏輯上的錯(cuò)誤。比如對(duì)系統(tǒng)的誤操作造成的數(shù)據(jù)錯(cuò)誤等。

三、計(jì)算機(jī)安全問(wèn)題的具體原因的分析

1、操作方面的問(wèn)題來(lái)自操作系統(tǒng)的風(fēng)險(xiǎn)主要集中在病毒、后門(mén)、數(shù)據(jù)庫(kù)系統(tǒng)和操作系統(tǒng)的關(guān)聯(lián)性方面。

首先在病毒方面,操作系統(tǒng)中可能存在的特洛伊木馬程序?qū)?shù)據(jù)庫(kù)系統(tǒng)構(gòu)成極大的威脅,數(shù)據(jù)庫(kù)管理員尤其需要注意木馬程序帶給系統(tǒng)人駐程序所帶來(lái)的威脅。一旦特洛伊木馬程序修改了人駐程序的密碼,并且當(dāng)更新密碼時(shí),入侵者能得到新的密碼。

其次在操作系統(tǒng)的后門(mén)方面,許多數(shù)據(jù)庫(kù)系統(tǒng)的特征參數(shù)盡管方便了數(shù)據(jù)庫(kù)管理員,但也為數(shù)據(jù)庫(kù)服務(wù)器主機(jī)操作系統(tǒng)留下了后門(mén),這使得黑客可以通過(guò)后門(mén)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)。最后數(shù)據(jù)庫(kù)系統(tǒng)和操作系統(tǒng)之間帶有很強(qiáng)的關(guān)聯(lián)性。操作系統(tǒng)具有文件管理功能,能夠利用存取控制矩陣,實(shí)現(xiàn)對(duì)各類(lèi)文件包括數(shù)據(jù)庫(kù)文件的授權(quán)進(jìn)行讀寫(xiě)和執(zhí)行等,而目操作系統(tǒng)的監(jiān)攔褂能進(jìn)行用戶(hù)登錄和口令鑒別的控制,因此數(shù)據(jù)庫(kù)系統(tǒng)的安全性最終要靠操作系統(tǒng)和硬件設(shè)備所提供的環(huán)境,如果操作系統(tǒng)允許用戶(hù)直接存取數(shù)據(jù)庫(kù)文件,則在數(shù)據(jù)庫(kù)系統(tǒng)中采取最可靠的安全措施也沒(méi)有用。

2、管理問(wèn)題用戶(hù)安全意識(shí)薄弱,對(duì)信息網(wǎng)絡(luò)安全重視不夠,安全管理措施不落實(shí),導(dǎo)致安全事件的發(fā)生,這些都是當(dāng)前安全管理工作存在的主要問(wèn)題。從已發(fā)生安全事件的原因中,占前兩位的分別是“未修補(bǔ)軟件安全漏洞”和“登錄密碼過(guò)于簡(jiǎn)單或未修改”,也表明了用戶(hù)缺乏相關(guān)的安全防范意識(shí)和基本的安全防范常識(shí)。比如數(shù)據(jù)庫(kù)系統(tǒng)可用的但并未正確使用的安全選項(xiàng)、危險(xiǎn)的默認(rèn)設(shè)置、給用戶(hù)更多的不適當(dāng)?shù)臋?quán)限,對(duì)系統(tǒng)配置的未經(jīng)授權(quán)的改動(dòng)等等。

3、數(shù)據(jù)庫(kù)系統(tǒng)自身問(wèn)題雖然絕大多數(shù)常用的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)已經(jīng)存在了十多年之久,并目具有強(qiáng)大的特性,產(chǎn)品非常成熟。但許多應(yīng)詼具有的特征,在操作系統(tǒng)和現(xiàn)在普遍使用的數(shù)據(jù)庫(kù)系統(tǒng)中,并沒(méi)有提供,特別是那些重要的安全特征,絕大多數(shù)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)并不夠成熟。

四、數(shù)據(jù)庫(kù)安全策略

1、對(duì)用戶(hù)安全管理

Web數(shù)據(jù)庫(kù)是個(gè)極為復(fù)雜的系統(tǒng),因此很難進(jìn)行正確的配置和安全維護(hù),當(dāng)然,必須首先要保證的就是數(shù)據(jù)庫(kù)用戶(hù)的權(quán)限的安全性。

當(dāng)用戶(hù)通過(guò)Web方式要對(duì)數(shù)據(jù)庫(kù)中的對(duì)象(表、視圖、觸發(fā)器、存儲(chǔ)過(guò)程等)進(jìn)行操作時(shí),必須通過(guò)數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)的身份認(rèn)證。多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)還有眾所周知的默認(rèn)賬號(hào)和密碼,可支持對(duì)數(shù)據(jù)庫(kù)資源的各級(jí)訪(fǎng)問(wèn)。因此,很多重要的數(shù)據(jù)庫(kù)系統(tǒng)很可能受到威協(xié)。

用戶(hù)存取權(quán)限是指不同的用戶(hù)對(duì)于不同的數(shù)據(jù)對(duì)象有不同的操作權(quán)限。存取權(quán)限由兩個(gè)要素組成:數(shù)據(jù)對(duì)象和操作類(lèi)型。定義一個(gè)用戶(hù)的存取權(quán)限就是要定義這個(gè)用戶(hù)可以在哪些數(shù)據(jù)對(duì)象上進(jìn)行哪些類(lèi)型的操作。

權(quán)限分系統(tǒng)權(quán)限和對(duì)象權(quán)限兩種。系統(tǒng)權(quán)限由DBA授予某些數(shù)據(jù)庫(kù)用戶(hù),只有得到系統(tǒng)權(quán)限,才能成為數(shù)據(jù)庫(kù)用戶(hù)。對(duì)象權(quán)限是授予數(shù)據(jù)庫(kù)用戶(hù)對(duì)某些數(shù)據(jù)對(duì)象進(jìn)行某些操作的權(quán)限,它既可由DBA授權(quán),也可由數(shù)據(jù)對(duì)象的創(chuàng)建者授予。

2、數(shù)據(jù)加密

數(shù)據(jù)安全隱患無(wú)處不在。一些機(jī)密數(shù)據(jù)庫(kù)、商業(yè)數(shù)據(jù)等必須防止它人非法訪(fǎng)問(wèn)、修改、、拷貝。如何保證數(shù)據(jù)安全?數(shù)據(jù)加密是應(yīng)用最廣、成本最低廉而相對(duì)最可靠的方法。數(shù)據(jù)加密是保護(hù)數(shù)據(jù)在存儲(chǔ)和傳遞過(guò)程中不被竊取或修改的有效手段。

數(shù)據(jù)加密系統(tǒng)包括對(duì)系統(tǒng)的不同部分要選擇何種加密算法、需要多高的安全級(jí)別、各算法之間如何協(xié)作等因素。在系統(tǒng)的不同部分要綜合考慮執(zhí)行效率與安全性之間的平衡。因?yàn)橐话銇?lái)講安全性總是以犧牲系統(tǒng)效率為代價(jià)的。

如果要在Internet上的兩個(gè)客戶(hù)端傳遞安全數(shù)據(jù),這就要求客戶(hù)端之間可以彼此判斷對(duì)方的身份,傳遞的數(shù)據(jù)必須加密,當(dāng)數(shù)據(jù)在傳輸中被更改時(shí)可以被發(fā)覺(jué)。

3、事務(wù)管理和故障恢復(fù)

事務(wù)管理和故障恢復(fù)主要是對(duì)付系統(tǒng)內(nèi)發(fā)生的自然因素故障,保證數(shù)據(jù)和事務(wù)的一致性和完整性。

故障恢復(fù)的主要措施是進(jìn)行日志記錄和數(shù)據(jù)復(fù)制。在網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)中,分布事務(wù)首先要分解為多個(gè)子事務(wù)到各個(gè)站點(diǎn)上去執(zhí)行,各個(gè)服務(wù)器之間還必須采取合理的算法進(jìn)行分布式并發(fā)控制和提交,以保證事務(wù)的完整性。

事務(wù)運(yùn)行的每一步結(jié)果都記錄在系統(tǒng)日志文件中,并且對(duì)重要數(shù)據(jù)進(jìn)行復(fù)制,發(fā)生故障時(shí)根據(jù)日志文件利用數(shù)據(jù)副本準(zhǔn)確地完成事務(wù)的恢復(fù)。

4、數(shù)據(jù)庫(kù)備份與恢復(fù)

計(jì)算機(jī)同其他設(shè)備一樣,都可能發(fā)生故障。計(jì)算機(jī)故障的原因多種多樣,包括磁盤(pán)故障、電源故障、軟件故障、災(zāi)害故障以及人為破壞等。一旦發(fā)生這種情況,就可能造成數(shù)據(jù)庫(kù)的數(shù)據(jù)丟失。

因此數(shù)據(jù)庫(kù)系統(tǒng)必須采取必要的措施,以保證發(fā)生故障時(shí),可以恢復(fù)數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)管理系統(tǒng)的備份和恢復(fù)機(jī)制就是保證在數(shù)據(jù)庫(kù)系統(tǒng)出故障時(shí),能夠?qū)?shù)據(jù)庫(kù)系統(tǒng)還原到正常狀態(tài)。

加強(qiáng)數(shù)據(jù)備份非常重要,數(shù)據(jù)庫(kù)擁有很多關(guān)鍵的數(shù)據(jù),這些數(shù)據(jù)一旦遭到破壞后果不堪設(shè)想,而這往往是入侵者真正關(guān)心的東西。不少管理員在這點(diǎn)上作得并不好,不是備份不完全,就是備份不及時(shí)。

數(shù)據(jù)備份需要仔細(xì)計(jì)劃,制定出一個(gè)策略測(cè)試后再去實(shí)施,備份計(jì)劃也需要不斷地調(diào)整。