NoSQL數(shù)據(jù)庫綜逑論文
1引語
回顧數(shù)據(jù)庫的發(fā)展歷程,數(shù)據(jù)庫技術(shù)從上世紀(jì)60年代末開始,經(jīng)歷了層次數(shù)據(jù)庫、網(wǎng)狀數(shù)據(jù)庫和關(guān)系數(shù)據(jù)庫而進(jìn)入數(shù)據(jù)庫管理系統(tǒng)(DBMS)階段至今,數(shù)據(jù)庫技術(shù)的研究也不斷取得進(jìn)展。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫已在數(shù)據(jù)存儲(chǔ)方面占據(jù)了不可動(dòng)搖的地位。近年來,隨著互聯(lián)網(wǎng)Web2.0技術(shù)的發(fā)展,網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用出現(xiàn)了一些新的變化,對(duì)與此相關(guān)的數(shù)據(jù)模型、分布式架構(gòu)、數(shù)據(jù)存儲(chǔ)等數(shù)據(jù)庫相關(guān)的技術(shù)指標(biāo)也提出了新的要求。但由于關(guān)系型數(shù)據(jù)庫本身的一些不足,已經(jīng)越來越無法滿足互聯(lián)網(wǎng)對(duì)數(shù)據(jù)擴(kuò)展、讀寫速度、支撐容量以及建設(shè)和運(yùn)營成本的要求。NoSQL是在這種新變化、新要求之下產(chǎn)出的一種非關(guān)系型數(shù)據(jù)庫產(chǎn)品的總稱。
2NoSOL數(shù)據(jù)庫概述
NoSQL(NotOnlySQL的縮寫)數(shù)據(jù)庫是目前比較流行的,不同于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)庫管理系統(tǒng)的統(tǒng)稱。某網(wǎng)定義:NoSQL是一種打破了關(guān)系型數(shù)據(jù)庫長久以來占主導(dǎo)地位的,快速成長起來的非關(guān)系松散數(shù)據(jù)庫存儲(chǔ)類型,這種數(shù)據(jù)存儲(chǔ)不需要事先設(shè)計(jì)好的表結(jié)構(gòu),它也不會(huì)出現(xiàn)表之間的連接操作和水平分割,學(xué)術(shù)界稱這種數(shù)據(jù)庫為非結(jié)構(gòu)化存儲(chǔ)[2]。
作為新型的下一代數(shù)據(jù)庫,NoSQL數(shù)據(jù)庫系統(tǒng)主要解決以下要點(diǎn):非關(guān)系型,分布式的,開源代碼和水平可擴(kuò)展等。NoSQL數(shù)據(jù)庫往往具有無架構(gòu)、易于復(fù)制、簡單的API、最終一致、大數(shù)據(jù)量等特點(diǎn)。目前有25種以上的NoSQL數(shù)據(jù)庫,各有各自的特點(diǎn),是基于不同應(yīng)用場景而開發(fā)的,其中MongoDB和Redis最受歡迎。
3NoSOL數(shù)據(jù)庫優(yōu)勢
NoSQL數(shù)據(jù)庫相比其他模型的數(shù)據(jù)庫而言,具有以下優(yōu)點(diǎn):
(1)模式自由:目前NoSQL數(shù)據(jù)庫有列存儲(chǔ)、文檔存儲(chǔ)、鍵值對(duì)存儲(chǔ)、圖存儲(chǔ)、對(duì)象存儲(chǔ)、XML存儲(chǔ)等數(shù)據(jù)存儲(chǔ)模式,并且不需要事先為存儲(chǔ)的數(shù)據(jù)建立字段,不需要固定的表結(jié)構(gòu),可以隨時(shí)存儲(chǔ)自定義的數(shù)據(jù)格式。
(2)水平擴(kuò)展:傳統(tǒng)的關(guān)系型數(shù)據(jù)庫采用向上擴(kuò)展方式提高性能,而NoSQL數(shù)據(jù)庫則采用水平擴(kuò)展的方式提高性能,即負(fù)載平均地分配到各個(gè)主機(jī)上。
(3)低廉的成本:NoSQL數(shù)據(jù)庫可以運(yùn)行在廉價(jià)的PC服務(wù)器集群上。PC集群擴(kuò)充起來便宜且成本低;此外輕松地添加新的節(jié)點(diǎn)來擴(kuò)展集群。而且大部分NoSQL數(shù)據(jù)庫都是開源軟件,沒有昂貴的許可成本。
4NoSOL數(shù)據(jù)庫的缺陷
與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫相比,NoSQL數(shù)據(jù)庫雖然有很多優(yōu)勢,但也存在著一些缺陷,主要是:
(1)復(fù)雜性:因?yàn)樵贜oSQL數(shù)據(jù)庫中不使用SQL查詢語言,所以它需要用戶自主編寫程序來實(shí)現(xiàn)查詢功能,這種編程查詢的方式在完成簡單任務(wù)時(shí)會(huì)很快,但對(duì)使用者來說會(huì)耗費(fèi)大量的時(shí)間。此外,想要通過編寫程序來實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)庫查詢也是很困難的。
(2)可靠性:NoSQL數(shù)據(jù)庫本身是不支持ACID事務(wù),因此NoSQL數(shù)據(jù)庫也不具有ACID所提供的可靠性。如果用戶想要在NoSQL的`一個(gè)數(shù)據(jù)集里應(yīng)用ACID事務(wù),那么他們必須得通過額外的編程來實(shí)現(xiàn)。
(3)-致性:因?yàn)镹oSQL數(shù)據(jù)庫本身是不支持ACID事務(wù)的,除非通過額外的編程才能實(shí)現(xiàn),所以NoSQL的一致性可能會(huì)受到威脅。NoSQL不提供一致性,這讓它擁有更好的性能和可擴(kuò)展性,但這使某些應(yīng)用程序和交易系統(tǒng)存在隱患,比如銀行。
(1)成熟度低:大多數(shù)企業(yè)不熟悉NoSQL數(shù)據(jù)庫,因此沒有足夠的知識(shí)去做NoSQL是最好的數(shù)據(jù)庫的選擇。
5NoSOL數(shù)據(jù)庫應(yīng)用現(xiàn)狀
雖然NoSQL數(shù)據(jù)庫一詞早出現(xiàn)于1998年,其真正的發(fā)展是開始于2007年,先后出現(xiàn)了十多種NoSQL產(chǎn)品,例如:HBase、Cassandra、Hypertable、SimpleDB、MongoDB、CouchDB、DynamoDB、Redis、Neo4J等。從2009開始國內(nèi)也陸續(xù)有公司或團(tuán)隊(duì)進(jìn)行NoSQL數(shù)據(jù)庫的開發(fā),例如:豆瓣開源的BeansDB、新浪的MemcacheDB,淘寶網(wǎng)自主開發(fā)的Tair數(shù)據(jù)庫,人人網(wǎng)的Nucbar以及盛大創(chuàng)新院的TCDatabase紛紛發(fā)布。NoSQL數(shù)據(jù)庫在短短十幾年內(nèi)得到如此快的發(fā)展是因?yàn)閃eb2.0與云計(jì)算技術(shù)的廣泛應(yīng)用。
表1NoSQL數(shù)據(jù)庫之間的比較
2NoSOL數(shù)據(jù)庫產(chǎn)品
目前市場上出現(xiàn)的NoSQL有二十多種,而它們之間也有一定的關(guān)聯(lián)與繼承,同時(shí)每個(gè)NoSQL數(shù)據(jù)庫有它獨(dú)到之處。表1是NoSQL數(shù)據(jù)庫產(chǎn)品之間的比較。
7結(jié)束語
隨著現(xiàn)在網(wǎng)絡(luò)數(shù)據(jù)的爆炸式增長,NoSQL數(shù)據(jù)庫得到了廣泛的使用,它具有海量數(shù)據(jù)存儲(chǔ),高性價(jià)比,靈活的擴(kuò)展性等特點(diǎn),一定程度上是傳統(tǒng)數(shù)據(jù)庫的代替品。目前,在某些場景下,可以將NoSQL數(shù)據(jù)庫與關(guān)系型數(shù)據(jù)庫結(jié)合使用,互相彌補(bǔ)各自的缺陷,這種數(shù)據(jù)庫組合對(duì)解決Web2.0所遇到的性能、擴(kuò)展性等問題具有指導(dǎo)意義。
【NoSQL數(shù)據(jù)庫綜逑論文】相關(guān)文章:
nosql數(shù)據(jù)庫 tiger -電腦資料01-01
關(guān)系型數(shù)據(jù)庫管理系統(tǒng) NoSQL -電腦資料01-01
NoSQL反模式 文檔數(shù)據(jù)庫篇 -電腦資料01-01
Lua腳本中的一個(gè)NoSQL數(shù)據(jù)庫:Tarantool -電腦資料01-01
NoSQL架構(gòu)實(shí)踐 -電腦資料01-01
采用Google V8 JS 構(gòu)建的NoSQL 數(shù)據(jù)庫:Redisv8 -電腦資料01-01