關係型資料庫與非關係型資料庫

2021-07-30 15:10:53 字數 1782 閱讀 9565

關係型資料庫與非關係型資料庫的區別

非關係型資料庫的優勢:

1. 效能

nosql是基於鍵值對的,可以想象成表中的主鍵和值的對應關係,而且不需要經過sql層的解析,所以效能非常高。

2. 可擴充套件性

同樣也是因為基於鍵值對,資料之間沒有耦合性,所以非常容易水平擴充套件。

關係型資料庫的優勢:

1. 複雜查詢

可以用sql語句方便的在乙個表以及多個表之間做非常複雜的資料查詢。

2. 事務支援

使得對於安全效能很高的資料訪問要求得以實現。

對於這兩類資料庫,對方的優勢就是自己的弱勢,反之亦然。

但是近年來這兩種資料庫都在向著另外乙個方向進化。例如:

nosql資料庫慢慢開始具備sql資料庫的一些複雜查詢功能的雛形,比如couchbase的index以及mongo的複雜查詢。對於事務的支援也可以用一些系統級的原子操作來實現例如樂觀鎖之類的方法來曲線救國。

sql資料庫也開始慢慢進化,比如handlersocker技術的實現,可以在mysql上實現對於sql層的穿透,用nosql的方式訪問資料庫,效能可以上可以達到甚至超越nosql資料庫。可擴充套件性上例如percona server,可以實現無中心化的集群。

雖然這兩極都因為各自的弱勢而開始進化出另一極的一些特性,但是這些特性的增加也會消弱其本來具備的優勢,比如couchbase上的index的增加會逐步降低資料庫的讀寫效能。所以怎樣構建系統的短期和長期儲存策略,用好他們各自的強項是架構師需要好好考慮的重要問題。

當前主流的關係型資料庫有oracle、db2、microsoft sql server、microsoft access、mysql等。

非關係型資料庫有 nosql、cloudant。

nosql和關係型資料庫比較

優點:1)成本:nosql資料庫簡單易部署,基本都是開源軟體,不需要像使用oracle那樣花費大量成本購買使用,相比關係型資料庫**便宜。

2)查詢速度:nosql資料庫將資料儲存於快取之中,關係型資料庫將資料儲存在硬碟中,自然查詢速度遠不及nosql資料庫。

3)儲存資料的格式:nosql的儲存格式是key,value形式、文件形式、形式等等,所以可以儲存基礎型別以及物件或者是集合等各種格式,而資料庫則只支援基礎型別。

4)擴充套件性:關係型資料庫有類似join這樣的多表查詢機制的限制導致擴充套件很艱難。

缺點:1)維護的工具和資料有限,因為nosql是屬於新的技術,不能和關係型資料庫10幾年的技術同日而語。

2)不提供對sql的支援,如果不支援sql這樣的工業標準,將產生一定使用者的學習和使用成本。

3)不提供關係型資料庫對事物的處理。

關係型資料庫的最大特點就是事務的一致性:傳統的關係型資料庫讀寫操作都是事務的,具有acid的特點,這個特性使得關係型資料庫可以用於幾乎所有對一致性有要求的系統中,如典型的銀行系統。

關係型資料庫為了維護一致性所付出的巨大代價就是其讀寫效能比較差,而像微博、facebook這類sns的應用,對併發讀寫能力要求極高,關係型資料庫已經無法應付(在讀方面,傳統上為了克服關係型資料庫缺陷,提高效能,都是增加一級memcache來靜態化網頁,而在sns中,變化太快,memchache已經無能為力了),因此,必須用新的一種資料結構儲存來代替關聯式資料庫。

關聯式資料庫的另乙個特點就是其具有固定的表結構,因此,其擴充套件性極差,而在sns中,系統的公升級,功能的增加,往往意味著資料結構巨大變動,這一點關係型資料庫也難以應付,需要新的結構化資料儲存。

於是,非關係型資料庫應運而生,由於不可能用一種資料結構化儲存應付所有的新的需求,因此,非關係型資料庫嚴格上不是一種資料庫,應該是一種資料結構化儲存方法的集合。

關係型資料庫與非關係型資料庫

關係型資料庫最典型的資料結構是表,由二維表及其之間的聯絡所組成的乙個資料組織 優點 1 易於維護 都是使用表結構,格式一致 2 使用方便 sql語言通用,可用於複雜查詢 3 複雜操作 支援sql,可用於乙個表以及多個表之間非常複雜的查詢。缺點 1 讀寫效能比較差,尤其是海量資料的高效率讀寫 2 固定...

關係型資料庫與非關係型資料庫

指採用了關係模型來組織資料的資料庫。關係模型指的就是二維 模型,而乙個關係型資料庫就是由二維表及其之間的聯絡所組成的乙個資料組織。關係 一張二維表,每個關係都具有乙個關係名,也就是表名 元組 二維表中的一行,在資料庫中被稱為記錄 屬性 二維表中的一列,在資料庫中被稱為字段 域 屬性的取值範圍,也就是...

關係型資料庫與非關係型資料庫

關係型資料庫最典型的資料結構是表,由二維表及其之間的聯絡所組成的乙個資料組織 優點 1 易於維護 都是使用表結構,格式一致 2 使用方便 sql語言通用,可用於複雜查詢 3 複雜操作 支援sql,可用於乙個表以及多個表之間非常複雜的查詢。缺點 1 讀寫效能比較差,尤其是海量資料的高效率讀寫 2 固定...