摘要:大數(shù)據(jù)的存儲(chǔ)與管理已經(jīng)不能夠使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,NoSQL應(yīng)運(yùn)而生,它針對(duì)關(guān)系型數(shù)據(jù)庫不能解決的問題,有效地管理大數(shù)據(jù),本文對(duì)NoSQL進(jìn)行了詳細(xì)的介紹,并對(duì)它的優(yōu)點(diǎn)和缺點(diǎn)進(jìn)行了詳盡的分析與闡述。
關(guān)鍵字:NoSQL 開源 大數(shù)據(jù) 數(shù)據(jù)庫
中圖分類號(hào): TP311.13 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2015)04(a)-0000-00
[Abstract] The storage and management of Big Data can not use relational database. NoSQL can manage bid data. This essay specifically introduces NoSQL and detailedly analyzes its positive aspects and negative aspects.
[Key Words] NoSQL,open source,big data,database
1 引言
隨著社會(huì)的發(fā)展,人們習(xí)慣于在網(wǎng)上分享和交流信息,包括社交、購物等等,目前非常有名的社交網(wǎng)站Facebook擁有龐大的用戶群,而且在不斷增長。這些用戶每天發(fā)出的日志以及分享的資料更是不計(jì)其數(shù)。中國最具影響力的購物網(wǎng)站淘寶網(wǎng)的用戶更是每年以指數(shù)級(jí)進(jìn)行增長,每天大約都有6000萬的用戶登錄。這些事實(shí)都在說明一個(gè)現(xiàn)象:傳統(tǒng)的關(guān)系型數(shù)據(jù)庫已經(jīng)不能夠滿足這些海量數(shù)據(jù)的存儲(chǔ)和管理。面對(duì)大數(shù)據(jù)的挑戰(zhàn),一些新的數(shù)據(jù)管理系統(tǒng)如并行數(shù)據(jù)庫、網(wǎng)絡(luò)數(shù)據(jù)庫、分布式數(shù)據(jù)庫、云平臺(tái)、可擴(kuò)展數(shù)據(jù)庫等孕育而生,它們?yōu)榻鉀Q海量數(shù)據(jù)提供了多種選擇。本文主要針對(duì)目前應(yīng)用范圍更為廣泛的NoSQL進(jìn)行詳細(xì)介紹,并針對(duì)其優(yōu)缺點(diǎn)進(jìn)行闡述。
2 NoSQL概述
NoSQL一詞最早源于1998年的Carlo Strozzi先生主導(dǎo)的開源關(guān)系型數(shù)據(jù)庫“Strozzi NoSQL”,其實(shí),Strozzi先生主要是突出他的數(shù)據(jù)庫不使用SQL為其查詢語言,與本文討論的內(nèi)容無關(guān)。本文討論的NoSQL是源于2009年6月由倫敦軟件開發(fā)者Johan Oskarsson先生組織的在舊金山舉行的一個(gè)技術(shù)聚會(huì),當(dāng)時(shí)NoSQL只是作為一個(gè)聚會(huì)的名字,用以表示“開源分布式的非關(guān)系型數(shù)據(jù)庫”,后來這個(gè)詞語就迅速流行起來,隨著發(fā)展,這個(gè)詞語更多的人理解為“Not Only SQL”,而不是單純地反對(duì)關(guān)系型數(shù)據(jù)庫,反而可以看作是對(duì)關(guān)系型數(shù)據(jù)庫系統(tǒng)的補(bǔ)充。
在眾多數(shù)據(jù)庫產(chǎn)品中能叫做“NoSQL”數(shù)據(jù)庫的都應(yīng)該具備以下特征:1)不使用SQL;2)通常都是開源項(xiàng)目;3)不滿足關(guān)系數(shù)據(jù)庫所使用的ACID四大特性;4)不使用“模式”(schema)。NoSQL系統(tǒng)普遍采用的技術(shù)有:1)簡單數(shù)據(jù)模型;2)元數(shù)據(jù)與應(yīng)用數(shù)據(jù)的分離;3)弱一致性。
3 NoSQL的優(yōu)缺點(diǎn)
關(guān)系數(shù)據(jù)庫的發(fā)展擁有較長的歷史,所以它已經(jīng)成為計(jì)算機(jī)文化的一部分,大家都能夠很自然地接受它,但是隨著集群環(huán)境、海量數(shù)據(jù)的出現(xiàn),關(guān)系數(shù)據(jù)庫的缺點(diǎn)也越來越突顯,NoSQL應(yīng)運(yùn)而生。與人無完人同理,NoSQL不是萬能的、完美的,也不是它的出現(xiàn)就會(huì)完全擺脫關(guān)系數(shù)據(jù)庫,不同的應(yīng)用環(huán)境還是要使用不同的數(shù)據(jù)存儲(chǔ)和管理方式的。下面就將針對(duì)NoSQL的優(yōu)缺點(diǎn)進(jìn)行分析。
3.1優(yōu)點(diǎn)
NoSQL只應(yīng)用在特定的領(lǐng)域,基本上不進(jìn)行復(fù)雜的處理,其優(yōu)點(diǎn)主要是針對(duì)關(guān)系型數(shù)據(jù)庫而言的,具體如下:
1)易于數(shù)據(jù)的分散。也可稱為NoSQL的易擴(kuò)展性。NoSQL數(shù)據(jù)庫對(duì)于數(shù)據(jù)之間的關(guān)系沒有要求,即數(shù)據(jù)之間無關(guān)系,這樣,無形之間在架構(gòu)的層面上帶來了可擴(kuò)展的能力。2)避免不必要的復(fù)雜性,提升性能和增大規(guī)模。NoSQL數(shù)據(jù)庫都具有非常高的讀寫性能,尤其在大數(shù)據(jù)量下,同樣表現(xiàn)優(yōu)秀。這得益于它的無關(guān)系性,數(shù)據(jù)庫的結(jié)構(gòu)簡單。3)靈活的數(shù)據(jù)模型“使大量數(shù)據(jù)的寫入處理更加容易”。NoSQL無需事先為要存儲(chǔ)的數(shù)據(jù)建立字段,隨時(shí)可以存儲(chǔ)自定義的數(shù)據(jù)格式,這樣就使得大量數(shù)據(jù)的寫入處理不會(huì)象在關(guān)系數(shù)據(jù)庫中那樣讓人痛苦。
3.2 缺點(diǎn)
NoSQL數(shù)據(jù)庫雖然有諸多優(yōu)點(diǎn),但是還是存在自己的缺點(diǎn),有它使用的局限性,具體為:
1)數(shù)據(jù)模型和查詢語言沒有經(jīng)過數(shù)學(xué)驗(yàn)證。從而導(dǎo)致NoSQL的現(xiàn)有產(chǎn)品大都不夠成熟,和關(guān)系型數(shù)據(jù)庫幾十年的完善不可同日而語。2)沒有統(tǒng)一的查詢模型。不同的NoSQL系統(tǒng)一般提供不同的查詢模型,這一定程度上增加了開發(fā)者的負(fù)擔(dān),也會(huì)對(duì)用戶產(chǎn)生一定的學(xué)習(xí)和應(yīng)用遷移成本,從而增加不必要的開銷。3)功能簡單。大多數(shù)NoSQL產(chǎn)品提供的功能都比較簡單、有限,且大多數(shù)NoSQL數(shù)據(jù)庫都不支持事務(wù),同時(shí)也不會(huì)提供一些關(guān)系數(shù)據(jù)庫所具備的附加功能,這就會(huì)增加應(yīng)用層的負(fù)擔(dān)。
4 總結(jié)
在關(guān)系數(shù)據(jù)庫長久占領(lǐng)市場(chǎng)后,NoSQL的出現(xiàn)讓業(yè)內(nèi)人士為之驚喜,很多業(yè)內(nèi)專家都認(rèn)為目前正在崛起的NoSQL數(shù)據(jù)庫不會(huì)只是曇花一現(xiàn)。大數(shù)據(jù)的存儲(chǔ)與管理注定會(huì)打破關(guān)系型數(shù)據(jù)庫的不變地位,在近十年的發(fā)展中,NoSQL雖然還有很多不足之處,但是它的優(yōu)勢(shì)也非常突出,它的前景還是讓人期待。
參考文獻(xiàn)
[1](日)佐佐木達(dá)也著,羅勇譯.NoSQL數(shù)據(jù)庫入門.人民郵電出版社.2012.5.
[2]陸嘉恒著.大數(shù)據(jù)挑戰(zhàn)與NoSQL數(shù)據(jù)庫技術(shù).電子工業(yè)出版社.2013.4 .
[3](美)Pramod J.Sadalage, Martin Fowler著,愛飛翔譯.NoSQL精粹.機(jī)械工業(yè)出版社.2013.9.