1. 程式人生 > >7種常見資料庫

7種常見資料庫

關係型資料庫:SQLite、Oracle、Mysql

特性:1、關係型資料庫,是指採用了關係模型來組織資料的資料庫;
     2、關係型資料庫的最大特點就是事務的一致性;
     3、簡單來說,關係模型指的就是二維表格模型,而一個關係型資料庫就是由二維表及其之間的聯絡所組成的一個數據組織。
優點:1、容易理解:二維表結構是非常貼近邏輯世界一個概念,關係模型相對網狀、層次等其他模型來說更容易理解;
     2、使用方便:通用的SQL語言使得操作關係型資料庫非常方便;
     3、易於維護:豐富的完整性(實體完整性、參照完整性和使用者定義的完整性)大 大減低了資料冗餘和資料不一致的概率;
     4、支援SQL,可用於複雜的查詢。
缺點:1、為了維護一致性所付出的巨大代價就是其讀寫效能比較差;
     2、固定的表結構;
     3、高併發讀寫需求;
     4、海量資料的高效率讀寫;

非關係型資料庫:MongoDb、redis、HBase

特性:1、使用鍵值對儲存資料;
     2、分散式;
     3、一般不支援ACID特性;
     4、非關係型資料庫嚴格上不是一種資料庫,應該是一種資料結構化儲存方法的集合。
優點:1、無需經過sql層的解析,讀寫效能很高;
     2、基於鍵值對,資料沒有耦合性,容易擴充套件;
     3、儲存資料的格式:nosql的儲存格式是key,value形式、文件形式、圖片形式等等,文件形式、圖片形式等等,而關係型資料庫則只支援基礎型別。
缺點:1、不提供sql支援,學習和使用成本較高;
     2、無事務處理,附加功能bi和報表等支援也不好;

資料庫的ACID

  • 原子性(atomicity)
    一個事務必須被視為一個不可分割的最小工作單元,整個事務中的所有操作要麼全部提交成功,要麼全部失敗回滾,對於一個事務來說,不可能只執行其中的一部分操作,這就是事務的原子性
  • 一致性(consistency)
    資料庫總是從一個一致性的狀態轉換到另一個一致性的狀態
  • 隔離性(isolation)
    通常來說,一個事務所做的修改在最終提交以前,對其他事務是不可見的
  • 永續性(durability)
    一旦事務提交,則其所做的修改會永久儲存到資料庫。(此時即使系統崩潰,修改的資料也不會丟失。)