關係型資料庫和非關係型資料庫區別 關係型資料庫 (1)關係型資料庫的特點: 一、關係型資料庫,是指採用了關係模型來組織數據的資料庫; 二、關係型資料庫的最大特點就是事務的一致性(innodb的功能) 1. 關係型資料庫支持事務 概念理解: 1)資料庫事務: 事務必須具備ACID特性,ACID是Ato ...
關係型資料庫和非關係型資料庫區別
關係型資料庫
(1)關係型資料庫的特點:
一、關係型資料庫,是指採用了關係模型來組織數據的資料庫;
二、關係型資料庫的最大特點就是事務的一致性(innodb的功能)
1. 關係型資料庫支持事務
概念理解:
1)資料庫事務:
事務必須具備ACID特性,ACID是Atomic原子性,Consistency一致性,Isolation隔離性,Durability持久性。
1. 原子性:事務作為一個整體被執行,包含在其中的對資料庫的操作要麼全部被執行,要麼都不執行。(註意與第一範式的原子性相區別,後者討論的是欄位書寫的規範性)
2. 一致性:事務應確保資料庫的狀態從一個一致狀態轉變為另一個一致狀態。一致狀態的含義是資料庫中的數據應滿足完整性約束。
3. 隔離性:SQL標準中定義了4個不同的級別,對資料庫查詢操作定義了不同的限制;
4. 持久性:數據永久性存儲,關係型資料庫數據被插入後不容易修改,必須通過sql語句去執行,而在修改數據時因為主鍵的存在,不會向資料庫中插入有相同主鍵的記錄;非關係型資料庫是具備這樣的性能的。
ACID特性可以專門寫好幾篇文章,這裡只是作簡要的介紹,後續我也會寫寫自己的理解
ACID的總結就是為了跟非關係型資料庫的對比
(2)關係型資料庫的優點:
一、容易理解:二維表結構是非常貼近邏輯世界一個概念,關係模型相對網狀、層次等其他模型來說更容易理解;
二、使用方便:通用的SQL語言使得操作關係型資料庫非常方便;
三、易於維護:豐富的完整性(實體完整性、參照完整性和用戶定義的完整性)大大減低了數據冗餘和數據不一致的概率
(3)關係型資料庫的缺點:
一、為了維護一致性所付出的巨大代價就是其讀寫性能比較差(而非關係型資料庫沒有鎖的概念,讀寫性是比較突出的)
二、固定的表結構;
三、高併發讀寫需求;
四、海量數據的高效率讀寫限制
非關係型資料庫
(1)非關係型數據的特點
一、使用鍵值對存儲數據;
二、分散式和較優秀的擴展性(關係型資料庫因為表之間鍵的關聯很難做擴展);
三、一般不支持ACID特性
從理解上:
非關係型資料庫嚴格上說不是一種資料庫,應該是一種數據結構化存儲方法的集合。
(2)非關係型數據的優點
一、存儲數據的格式:nosql的存儲格式是key,value形式、文檔形式、圖片形式等等,文檔形式、圖片形式等等,而關係型資料庫則只支持基礎類型。
二、無需經過sql層的解析,讀寫性能很高;
三、基於鍵值對,數據沒有耦合性,容易擴展;
(3)非關係型數據的優點
一、不提供sql支持,學習和使用成本較高;
二、無事務處理,附加功能bi和報表等支持也不好