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