什麼是NoSQL和關係型數據庫?
1. 非關係型的數據庫(NoSQL)
例如:
MongDB、 Redis、Memcache
非關係型的數據庫,區別於關係數據庫,它們不保證關係數據的ACID特性。
並且數據之間無關係,這樣就非常容易擴展。
在大數據量,高性能的情況,NoSQL數據庫都具有非常高的讀寫性能,尤其在大數據量下,同樣表現優秀。

2.關係數據庫管理系統(RDBMS)
例如:
Oracle DB(Oracle Corporation), SQL Server(微軟) ,MySQL
RDBMS強調relationship between tables. 即表與表之間是要有關係的。
當大量的數據需要保存和維護的時候就需要用到RDBMS。一個關係數據模型是需要包含indexes,PK,FK,table和table間的關係。
3.NoSQL和RDBMS的區別是什麼?
3.1RDBMS的特點:
組織化結構化數據
比如Mysql是分字段的,且每個字段還有類型,做查詢的時候都是針對字段的。
結構化查詢語言(SQL)
解釋:也就是SQL語句是有結構的查詢語,類似於:
SELECT 字段 FROM 表 WHERE 條件
UPDATE 表 SET 字段名=字段值 WHERE 篩選條件
DELETE FROM 表 WHERE 篩選條件
數據和關係都存儲在單獨的表中。
這就好理解了,比如一對一,一對多,和表中的數據所存在的關係。
ACID
分別為:
A (Atomicity) 原子性
C (Consistency) 一致性
___I (Isolation) 獨立性 ___
D (Durability) 持久性

3.1.1所謂RDBMS遵循的ACID是?
(Atomicity) 原子性:
也就是說事務裡的所有操作要麼全部做完,要麼都不做,事務成功的條件是事務裡的所有操作都成功,只要有一個操作失敗,整個事務就失敗,需要回滾。
比如銀行轉賬,從A賬戶轉100元至B賬戶,需要將A賬戶的錢減少100,B賬戶裡面的錢增加100。如果A賬戶的錢減少了100,此時,出現死機狀態,那麼事務將會回滾,A賬戶的錢變為原來的。
(Consistency) 一致性:
可以理解為在任意時刻,所有節點中的數據是一樣的。同一時間點,你在節點A中獲取到key1的值與在節點B中獲取到key1的值應該都是一樣的。
(Isolation) 獨立性:
指的是在併發環境中,當不同的事務同時操縱相同的數據時,只要另外一個事務未提交,它所訪問的數據就不受未提交事務的影響。
(Durability) 持久性:
持久性是指一旦事務提交後,它所做的修改將會永久的保存在數據庫上,即使出現宕機也不會丟失。
3.2 NoSQL的特點:
鍵 - 值對存儲,列存儲,文檔存儲,圖形數據庫
高性能,高可用性和可伸縮性
數據之間無關係,這樣就非常容易擴展.
非關係型的數據庫,區別於關係數據庫.
對比一下語句:
Redis的語句:
從這裡也可以看出來 鍵-值對存儲
Sql Server的語句
不保證關係數據的ACID特性。
CAP定理(Consistency(一致性),Availability(可用性),Partition tolerance(分區容錯性) )
3.2.1 CAP定理?
Consistency(一致性):
_數據一致更新,所有數據變動都是同步的。拿Redis來說,當進行修改或者保存、刪除之後,redis中的數據也應該進行相應變化。否則再次讀取,那麼讀取的就是髒數據。
Availability(可用性):
可以理解為系統在提供服務必須一直處於可用的狀態,對於操作請求總是能夠在有限的時間內返回結果。
就像你去店裡面買一杯奶茶,服務員必須要給你做一杯奶茶出來。
而不是你要了一杯奶茶,人家不管你。
Partition tolerance(分區容錯性):
指的是分佈式系統在遇到任何網絡分區故障的時候,仍然能夠正常運行,只是影響了機器的性能;並且保證可用性,和一致性。除非是整個網絡環境都發生了故障。
就像汽車少一個輪胎也可以慢慢的開,但是發動機壞了,就癱瘓了。
山東掌趣網絡科技有限公司,專業軟件開發。
如果有不正確的地方,請及時指出來,以便即使進行修改。
閱讀更多 掌趣科技 的文章