關(guān)系型和非關(guān)系型數(shù)據(jù)庫(kù)的區(qū)別_第1頁(yè)
關(guān)系型和非關(guān)系型數(shù)據(jù)庫(kù)的區(qū)別_第2頁(yè)
關(guān)系型和非關(guān)系型數(shù)據(jù)庫(kù)的區(qū)別_第3頁(yè)
關(guān)系型和非關(guān)系型數(shù)據(jù)庫(kù)的區(qū)別_第4頁(yè)
關(guān)系型和非關(guān)系型數(shù)據(jù)庫(kù)的區(qū)別_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、關(guān)系型和非關(guān)系型數(shù)據(jù)庫(kù)的區(qū)別當(dāng)前主流的關(guān)系型數(shù)據(jù)庫(kù)有Oracle、DB2、MicrosoftSQLServer、MicrosoftAccess、MySQL等。非關(guān)系型數(shù)據(jù)庫(kù)有NoSql、Cloudant。nosql和關(guān)系型數(shù)據(jù)庫(kù)比較??jī)?yōu)點(diǎn):1)成本:nosql數(shù)據(jù)庫(kù)簡(jiǎn)單易部署,基本都是開(kāi)源軟件,不需要像使用oracle那樣花費(fèi)大量成本購(gòu)買(mǎi)使用,相比關(guān)系型數(shù)據(jù)庫(kù)價(jià)格便宜。2)查詢(xún)速度:nosql數(shù)據(jù)庫(kù)將數(shù)據(jù)存儲(chǔ)于緩存之中,關(guān)系型數(shù)據(jù)庫(kù)將數(shù)據(jù)存儲(chǔ)在硬盤(pán)中,自然查詢(xún)速度遠(yuǎn)不及nosql數(shù)據(jù)庫(kù)。3)存儲(chǔ)數(shù)據(jù)的格式:nosql的存儲(chǔ)格式是key,value形式、文檔形式、圖片形式等等,所以可以存儲(chǔ)基礎(chǔ)類(lèi)

2、型以及對(duì)象或者是集合等各種格式,而數(shù)據(jù)庫(kù)則只支持基礎(chǔ)類(lèi)型。4)擴(kuò)展性:關(guān)系型數(shù)據(jù)庫(kù)有類(lèi)似join這樣的多表查詢(xún)機(jī)制的限制導(dǎo)致擴(kuò)展很艱難。缺點(diǎn):1)維護(hù)的工具和資料有限,因?yàn)閚osql是屬于新的技術(shù),不能和關(guān)系型數(shù)據(jù)庫(kù)10幾年的技術(shù)同日而語(yǔ)。2)不提供對(duì)sql的支持,如果不支持sql這樣的工業(yè)標(biāo)準(zhǔn),將產(chǎn)生一定用戶(hù)的學(xué)習(xí)和使用成本。3)不提供關(guān)系型數(shù)據(jù)庫(kù)對(duì)事物的處理。非關(guān)系型數(shù)據(jù)庫(kù)的優(yōu)勢(shì):1.性能NOSQL是基于鍵值對(duì)的,可以想象成表中的主鍵和值的對(duì)應(yīng)關(guān)系,而且不需要經(jīng)過(guò)SQL層的解析,所以性能非常高。2.可擴(kuò)展性同樣也是因?yàn)榛阪I值對(duì),數(shù)據(jù)之間沒(méi)有耦合性,所以非常容易水平擴(kuò)展。關(guān)系型數(shù)據(jù)庫(kù)的優(yōu)勢(shì)

3、:1.復(fù)雜查詢(xún)可以用SQL語(yǔ)句方便的在一個(gè)表以及多個(gè)表之間做非常復(fù)雜的數(shù)據(jù)查詢(xún)。2.事務(wù)支持使得對(duì)于安全性能很高的數(shù)據(jù)訪問(wèn)要求得以實(shí)現(xiàn)。對(duì)于這兩類(lèi)數(shù)據(jù)庫(kù),對(duì)方的優(yōu)勢(shì)就是自己的弱勢(shì),反之亦然。關(guān)系型數(shù)據(jù)庫(kù)把所有的數(shù)據(jù)都通過(guò)行和列的二元表現(xiàn)形式表示出來(lái)。關(guān)系型數(shù)據(jù)庫(kù)的優(yōu)勢(shì):1 .保持?jǐn)?shù)據(jù)的一致性(事務(wù)處理)2 .由于以標(biāo)準(zhǔn)化為前提,數(shù)據(jù)更新的開(kāi)銷(xiāo)很?。ㄏ嗤淖侄位旧隙贾挥幸惶帲? .可以進(jìn)行Join等復(fù)雜查詢(xún)其中能夠保持?jǐn)?shù)據(jù)的一致性是關(guān)系型數(shù)據(jù)庫(kù)的最大優(yōu)勢(shì)。關(guān)系型數(shù)據(jù)庫(kù)的不足:不擅長(zhǎng)的處理1 .大量數(shù)據(jù)的寫(xiě)入處理2 .為有數(shù)據(jù)更新的表做索引或表結(jié)構(gòu)(schema)變更3 .字段不固定時(shí)應(yīng)用4 .

4、對(duì)簡(jiǎn)單查詢(xún)需要快速返回結(jié)果的處理-大量數(shù)據(jù)的寫(xiě)入處理讀寫(xiě)集中在一個(gè)數(shù)據(jù)庫(kù)上讓數(shù)據(jù)庫(kù)不堪重負(fù),大部分網(wǎng)站已使用主從復(fù)制技術(shù)實(shí)現(xiàn)讀寫(xiě)分離,以提高讀寫(xiě)性能和讀庫(kù)的可擴(kuò)展性。所以在進(jìn)行大量數(shù)據(jù)操作時(shí),會(huì)使用數(shù)據(jù)庫(kù)主從模式。數(shù)據(jù)的寫(xiě)入由主數(shù)據(jù)庫(kù)負(fù)責(zé),數(shù)據(jù)的讀入由從數(shù)據(jù)庫(kù)負(fù)責(zé),可以比較簡(jiǎn)單地通過(guò)增加從數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn)規(guī)?;?,但是數(shù)據(jù)的寫(xiě)入?yún)s完全沒(méi)有簡(jiǎn)單的方法來(lái)解決規(guī)模化問(wèn)題。第一,要想將數(shù)據(jù)的寫(xiě)入規(guī)?;?,可以考慮把主數(shù)據(jù)庫(kù)從一臺(tái)增加到兩臺(tái),作為互相關(guān)聯(lián)復(fù)制的二元主數(shù)據(jù)庫(kù)使用,確實(shí)這樣可以把每臺(tái)主數(shù)據(jù)庫(kù)的負(fù)荷減少一半,但是更新處理會(huì)發(fā)生沖突,可能會(huì)造成數(shù)據(jù)的不一致,為了避免這樣的問(wèn)題,需要把對(duì)每個(gè)表的請(qǐng)求分別分

5、配給合適的主數(shù)據(jù)庫(kù)來(lái)處理。相同的放握在兩臺(tái)I-.我燃AI.姓理的謫怒么辦呢?第二,可以考慮把數(shù)據(jù)庫(kù)分割開(kāi)來(lái),分別放在不同的數(shù)據(jù)庫(kù)服務(wù)器上,比如將不同的表放在不同的數(shù)據(jù)庫(kù)服務(wù)器上,數(shù)據(jù)庫(kù)分割可以減少每臺(tái)數(shù)據(jù)庫(kù)服務(wù)器上的數(shù)據(jù)量,以便減少硬盤(pán)IO的輸入、輸出處理,實(shí)現(xiàn)內(nèi)存上的高速處理。但是由于分別存儲(chǔ)字不同服務(wù)器上的表之間無(wú)法進(jìn)行Join處理,數(shù)據(jù)庫(kù)分割的時(shí)候就需要預(yù)先考慮這些問(wèn)題,數(shù)據(jù)庫(kù)分割之后,如果一定要進(jìn)行Join處理,就必須要在程序中進(jìn)行關(guān)聯(lián),這是非常困難的。環(huán)|卡A.C的寫(xiě)入處理花達(dá)臺(tái)上枇據(jù)昨上進(jìn)行WF點(diǎn)的寫(xiě)入處理在意臺(tái)上數(shù)州庠上進(jìn)行國(guó)二元主數(shù)據(jù)理間蝎的解決辦法用鼠科用介剖"蘇器

6、I也A去B以蘇器上_&C表D不魄進(jìn)行J3N處理-為有數(shù)據(jù)更新的表做索引或表結(jié)構(gòu)變更在使用關(guān)系型數(shù)據(jù)庫(kù)時(shí),為了加快查詢(xún)速度需要?jiǎng)?chuàng)建索引,為了增加必要的字段就一定要改變表結(jié)構(gòu),為了進(jìn)行這些處理,需要對(duì)表進(jìn)行共享鎖定,這期間數(shù)據(jù)變更、更新、插入、刪除等都是無(wú)法進(jìn)行的。如果需要進(jìn)行一些耗時(shí)操作,例如為數(shù)據(jù)量比較大的表創(chuàng)建索引或是變更其表結(jié)構(gòu),就需要特別注意,長(zhǎng)時(shí)間內(nèi)數(shù)據(jù)可能無(wú)法進(jìn)行更新。加的整筵期制名共享軾耳他娃搜田熱對(duì)數(shù)據(jù)遂行淀取但是不髓修改數(shù)提耳他隹接無(wú)棉時(shí)敦?fù)?jù)出行讀跑和修改攥作寫(xiě)紙-字段不固定時(shí)的應(yīng)用如果字段不固定,利用關(guān)系型數(shù)據(jù)庫(kù)也是比較困難的,有人會(huì)說(shuō),需要的時(shí)候加個(gè)字段就可以了,這

7、樣的方法也不是不可以,但在實(shí)際運(yùn)用中每次都進(jìn)行反復(fù)的表結(jié)構(gòu)變更是非常痛苦的。你也可以預(yù)先設(shè)定大量的預(yù)備字段,但這樣的話(huà),時(shí)間一長(zhǎng)很容易弄不清除字段和數(shù)據(jù)的對(duì)應(yīng)狀態(tài),即哪個(gè)字段保存有哪些數(shù)據(jù)。-對(duì)簡(jiǎn)單查詢(xún)需要快速返回結(jié)果的處理(這里的簡(jiǎn)單”指的是沒(méi)有復(fù)雜的查詢(xún)條件)這一點(diǎn)稱(chēng)不上是缺點(diǎn),但不管怎樣,關(guān)系型數(shù)據(jù)庫(kù)并不擅長(zhǎng)對(duì)簡(jiǎn)單的查詢(xún)快速返回結(jié)果,因?yàn)殛P(guān)系型數(shù)據(jù)庫(kù)是使用專(zhuān)門(mén)的sql語(yǔ)言進(jìn)行數(shù)據(jù)讀取的,它需要對(duì)sql與越南進(jìn)行解析,同時(shí)還有對(duì)表的鎖定和解鎖等這樣的額外開(kāi)銷(xiāo),這里并不是說(shuō)關(guān)系型數(shù)據(jù)庫(kù)的速度太慢,而只是想告訴大家若希望對(duì)簡(jiǎn)單查詢(xún)進(jìn)行高速處理,則沒(méi)有必要非使用關(guān)系型數(shù)據(jù)庫(kù)不可。NoSQL數(shù)據(jù)庫(kù)

8、關(guān)系型數(shù)據(jù)庫(kù)應(yīng)用廣泛,能進(jìn)行事務(wù)處理和表連接等復(fù)雜查詢(xún)。相對(duì)地,NoSQL數(shù)據(jù)庫(kù)只應(yīng)用在特定領(lǐng)域,基本上不進(jìn)行復(fù)雜的處理,但它恰恰彌補(bǔ)了之前所列舉的關(guān)系型數(shù)據(jù)庫(kù)的不足之處。優(yōu)點(diǎn):易于數(shù)據(jù)的分散各個(gè)數(shù)據(jù)之間存在關(guān)聯(lián)是關(guān)系型數(shù)據(jù)庫(kù)得名的主要原因,為了進(jìn)行join處理,關(guān)系型數(shù)據(jù)庫(kù)不得不把數(shù)據(jù)存儲(chǔ)在同一個(gè)服務(wù)器內(nèi),這不利于數(shù)據(jù)的分散,這也是關(guān)系型數(shù)據(jù)庫(kù)并不擅長(zhǎng)大數(shù)據(jù)量的寫(xiě)入處理的原因。相反NoSQL數(shù)據(jù)庫(kù)原本就不支持Join處理,各個(gè)數(shù)據(jù)都是獨(dú)立設(shè)計(jì)的,很容易把數(shù)據(jù)分散在多個(gè)服務(wù)器上,故減少了每個(gè)服務(wù)器上的數(shù)據(jù)量,即使要處理大量數(shù)據(jù)的寫(xiě)入,也變得更加容易,數(shù)據(jù)的讀入操作當(dāng)然也同樣容易。典型的NoSQ

9、L數(shù)據(jù)庫(kù)臨時(shí)性鍵值存儲(chǔ)(memcached、Redis)、永久性鍵值存儲(chǔ)(ROMA、Redis)、面向文檔的數(shù)據(jù)庫(kù)(MongoDB、CouchDB)、面向列的數(shù)據(jù)庫(kù)(Cassandra、HBase)一、鍵值存儲(chǔ)它的數(shù)據(jù)是以鍵值的形式存儲(chǔ)的,雖然它的速度非???,但基本上只能通過(guò)鍵的完全一致查詢(xún)獲取數(shù)據(jù),根據(jù)數(shù)據(jù)的保存方式可以分為臨時(shí)性、永久性和兩者兼具三種。(1)臨時(shí)性所謂臨時(shí)性就是數(shù)據(jù)有可能丟失,memcached把所有數(shù)據(jù)都保存在內(nèi)存中,這樣保存和讀取的速度非???,但是當(dāng)memcached停止時(shí),數(shù)據(jù)就不存在了。由于數(shù)據(jù)保存在內(nèi)存中,所以無(wú)法操作超出內(nèi)存容量的數(shù)據(jù),舊數(shù)據(jù)會(huì)丟失??偨Y(jié)來(lái)說(shuō):。

10、在內(nèi)存中保存數(shù)據(jù)??梢赃M(jìn)行非??焖俚谋4婧妥x取處理。數(shù)據(jù)有可能丟失(2)永久性所謂永久性就是數(shù)據(jù)不會(huì)丟失,這里的鍵值存儲(chǔ)是把數(shù)據(jù)保存在硬盤(pán)上,與臨時(shí)性比起來(lái),由于必然要發(fā)生對(duì)硬盤(pán)的IO操作,所以性能上還是有差距的,但數(shù)據(jù)不會(huì)丟失是它最大的優(yōu)勢(shì)??偨Y(jié)來(lái)說(shuō):。在硬盤(pán)上保存數(shù)據(jù)可以進(jìn)行非??焖俚谋4婧妥x取處理(但無(wú)法與memcached相比)。數(shù)據(jù)不會(huì)丟失(3)兩者兼?zhèn)銻edis屬于這種類(lèi)型。Redis有些特殊,臨時(shí)性和永久性兼具。Redis首先把數(shù)據(jù)保存在內(nèi)存中,在滿(mǎn)足特定條件(默認(rèn)是15分鐘一次以上,5分鐘內(nèi)10個(gè)以上,1分鐘內(nèi)10000個(gè)以上的鍵發(fā)生變更)的時(shí)候?qū)?shù)據(jù)寫(xiě)入到硬盤(pán)中,這樣既確保了

11、內(nèi)存中數(shù)據(jù)的處理速度,又可以通過(guò)寫(xiě)入硬盤(pán)來(lái)保證數(shù)據(jù)的永久性,這種類(lèi)型的數(shù)據(jù)庫(kù)特別適合處理數(shù)組類(lèi)型的數(shù)據(jù)??偨Y(jié)來(lái)說(shuō):。同時(shí)在內(nèi)存和硬盤(pán)上保存數(shù)據(jù)??梢赃M(jìn)行非??焖俚谋4婧妥x取處理。保存在硬盤(pán)上的數(shù)據(jù)不會(huì)消失(可以恢復(fù))。適合于處理數(shù)組類(lèi)型的數(shù)據(jù)二、面向文檔的數(shù)據(jù)庫(kù)MongoDB、CouchDB屬于這種類(lèi)型,它們屬于NoSQL數(shù)據(jù)庫(kù),但與鍵值存儲(chǔ)相異。(1)不定義表結(jié)構(gòu)即使不定義表結(jié)構(gòu),也可以像定義了表結(jié)構(gòu)一樣使用,還省去了變更表結(jié)構(gòu)的麻煩。(2)可以使用復(fù)雜的查詢(xún)條件跟鍵值存儲(chǔ)不同的是,面向文檔的數(shù)據(jù)庫(kù)可以通過(guò)復(fù)雜的查詢(xún)條件來(lái)獲取數(shù)據(jù),雖然不具備事務(wù)處理和Join這些關(guān)系型數(shù)據(jù)庫(kù)所具有的處理能力

12、,但初次以外的其他處理基本上都能實(shí)現(xiàn)。三、面向列的數(shù)據(jù)庫(kù)Cassandra>HBae、HyperTable屬于這種類(lèi)型,由于近年來(lái)數(shù)據(jù)量出現(xiàn)爆發(fā)性增長(zhǎng),這種類(lèi)型的NoSQL數(shù)據(jù)庫(kù)尤其引入注目。普通的關(guān)系型數(shù)據(jù)庫(kù)都是以行為單位來(lái)存儲(chǔ)數(shù)據(jù)的,擅長(zhǎng)以行為單位的讀入處理,比如特定條件數(shù)據(jù)的獲取。因此,關(guān)系型數(shù)據(jù)庫(kù)也被成為面向行的數(shù)據(jù)庫(kù)。相反,面向列的數(shù)據(jù)庫(kù)是以列為單位來(lái)存儲(chǔ)數(shù)據(jù)的,擅長(zhǎng)以列為單位讀入數(shù)據(jù)。裘卜3南向行的數(shù)梅事和畫(huà)前列的射拱庠比較3而向打的裝柒常球少打強(qiáng)行旗覽熱更新切向外的靠出率以到為單盤(pán)時(shí)大艮析步既砰而行試取.哲雷甫寸的特定利h同哨更新面向列的數(shù)據(jù)庫(kù)具有搞擴(kuò)展性,即使數(shù)據(jù)增加也不會(huì)降低相應(yīng)的處理速度(特別是寫(xiě)入

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論