NOSQl與SQL的區(qū)別

Num01-->定義:

SQL是:關(guān)系型數(shù)據(jù)庫,以O(shè)racle、MySql為代表的數(shù)據(jù)庫

NOSQL就是Not Only SQL,是:非關(guān)系型數(shù)據(jù)庫,以MongoDB、Redis為代表的數(shù)據(jù)庫。

Num02-->關(guān)系型數(shù)據(jù)庫

Test01-->關(guān)系型數(shù)據(jù)庫遵循ACID規(guī)則

1、A (Atomicity) 原子性
原子性很容易理解,也就是說事務(wù)里的所有操作要么全部做完,要么都不做,事務(wù)成功的條件是事務(wù)里的所有操作都成功,只要有一個操作失敗,整個事務(wù)就失敗,需要回滾。
比如銀行轉(zhuǎn)賬,從A賬戶轉(zhuǎn)100元至B賬戶,分為兩個步驟:1)從A賬戶取100元;2)存入100元至B賬戶。這兩步要么一起完成,要么一起不完成,如果只完成第一步,第二步失敗,錢會莫名其妙少了100元。

2、C (Consistency) 一致性
一致性也比較容易理解,也就是說數(shù)據(jù)庫要一直處于一致的狀態(tài),事務(wù)的運行不會改變數(shù)據(jù)庫原本的一致性約束。
例如現(xiàn)有完整性約束a+b=10,如果一個事務(wù)改變了a,那么必須得改變b,使得事務(wù)結(jié)束后依然滿足a+b=10,否則事務(wù)失敗。

3、I (Isolation) 獨立性
所謂的獨立性是指并發(fā)的事務(wù)之間不會互相影響,如果一個事務(wù)要訪問的數(shù)據(jù)正在被另外一個事務(wù)修改,只要另外一個事務(wù)未提交,它所訪問的數(shù)據(jù)就不受未提交事務(wù)的影響。
比如現(xiàn)有有個交易是從A賬戶轉(zhuǎn)100元至B賬戶,在這個交易還未完成的情況下,如果此時B查詢自己的賬戶,是看不到新增加的100元的。

4、D (Durability) 持久性
持久性是指一旦事務(wù)提交后,它所做的修改將會永久的保存在數(shù)據(jù)庫上,即使出現(xiàn)宕機也不會丟失。

Test02-->關(guān)系型數(shù)據(jù)庫的特征

1、關(guān)系型數(shù)據(jù)庫,是指采用了關(guān)系模型來組織數(shù)據(jù)的數(shù)據(jù)庫;

2、關(guān)系型數(shù)據(jù)庫的最大特點就是事務(wù)的一致性;

3、簡單來說,關(guān)系模型指的就是二維表格模型,而一個關(guān)系型數(shù)據(jù)庫就是由二維表及其之間的聯(lián)系所組成的一個數(shù)據(jù)組織。

關(guān)系模型中常用的概念:

關(guān)系:可以理解為一張二維表,每個關(guān)系都具有一個關(guān)系名,就是通常說的表名

元組:可以理解為二維表中的一行,在數(shù)據(jù)庫中經(jīng)常被稱為記錄

屬性:可以理解為二維表中的一列,在數(shù)據(jù)庫中經(jīng)常被稱為字段

域:屬性的取值范圍,也就是數(shù)據(jù)庫中某一列的取值限制

關(guān)鍵字:一組可以唯一標(biāo)識元組的屬性,數(shù)據(jù)庫中常稱為主鍵,由一個或多個列組成

關(guān)系模式:指對關(guān)系的描述。其格式為:關(guān)系名(屬性1,屬性2, ... ... ,屬性N),在數(shù)據(jù)庫中成為表結(jié)構(gòu)

Test03-->關(guān)系型數(shù)據(jù)庫的優(yōu)點

1、容易理解:二維表結(jié)構(gòu)是非常貼近邏輯世界一個概念,關(guān)系模型相對網(wǎng)狀、層次等其他模型來說更容易理解;

2、使用方便:通用的SQL語言使得操作關(guān)系型數(shù)據(jù)庫非常方便;

3、易于維護:豐富的完整性(實體完整性、參照完整性和用戶定義的完整性)大大減低了數(shù)據(jù)冗余和數(shù)據(jù)不一致的概率;

4、支持SQL,可用于復(fù)雜的查詢。

Test04-->關(guān)系型數(shù)據(jù)庫的缺點

1、為了維護一致性所付出的巨大代價就是其讀寫性能比較差的問題;

2、固定的表結(jié)構(gòu)問題;

3、高并發(fā)讀寫的問題;

4、海量數(shù)據(jù)的高效率讀寫的問題;

Num03-->非關(guān)系型數(shù)據(jù)庫

Test01-->非關(guān)系型數(shù)據(jù)庫遵循BASE規(guī)則

BASE:Basically Available, Soft-state, Eventually Consistent。 由 Eric Brewer 定義。

BASE是NoSQL數(shù)據(jù)庫通常對可用性及一致性的弱要求原則:

1、Basically Availble --基本可用

2、Soft-state --軟狀態(tài)/柔性事務(wù)。 "Soft state" 可以理解為"無連接"的, 而 "Hard state" 是"面向連接"的

3、Eventual Consistency --最終一致性, 也是ACID的最終目地。

Test02-->非關(guān)系型數(shù)據(jù)庫的特征

1、使用鍵值對存儲數(shù)據(jù);

2、分布式;

3、一般不支持ACID特性;

4、非關(guān)系型數(shù)據(jù)庫嚴格上不是一種數(shù)據(jù)庫,應(yīng)該是一種數(shù)據(jù)結(jié)構(gòu)化存儲方法的集合。

Test03-->非關(guān)系型數(shù)據(jù)庫的優(yōu)點

1、無需經(jīng)過sql層的解析,讀寫性能很高;

2、基于鍵值對,數(shù)據(jù)沒有耦合性,容易擴展;

3、存儲數(shù)據(jù)的格式:nosql的存儲格式是key,value形式、文檔形式、圖片形式等等,而關(guān)系型數(shù)據(jù)庫則只支持基礎(chǔ)類型。

Test04-->非關(guān)系型數(shù)據(jù)庫的缺點

1、不提供sql支持,學(xué)習(xí)和使用成本較高;

2、無事務(wù)處理。

3、在復(fù)雜查詢、文本挖掘、分析建模方面

Num04-->小總結(jié)

數(shù)據(jù)庫的使用沒有最好,只有選擇合適的數(shù)據(jù)庫。

非關(guān)系型數(shù)據(jù)庫的最大優(yōu)勢:
1. 性能NOSQL是基于鍵值對的,可以想象成表中的主鍵和值的對應(yīng)關(guān)系,而且不需要經(jīng)過SQL層的解析,所以性能非常高。
2. 可擴展性同樣也是因為基于鍵值對,數(shù)據(jù)之間沒有耦合性,所以非常容易水平擴展。

關(guān)系型數(shù)據(jù)庫的最大優(yōu)勢:
1. 復(fù)雜查詢可以用SQL語句方便的在一個表以及多個表之間做非常復(fù)雜的數(shù)據(jù)查詢。
2. 事務(wù)支持使得對于安全性能很高的數(shù)據(jù)訪問要求得以實現(xiàn)。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容