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

ii_chengzi發表於2019-09-20

1.關係型資料庫透過外來鍵關聯來建立表與表之間的關係,2.非關係型資料庫通常指資料以物件的形式儲存在資料庫中,而物件之間的關係透過每個物件自身的屬性來決定

比如 有一個學生的資料:

姓名:張三,性別:男,學號:12345,班級:二年級一班

還有一個班級的資料:

班級:二年級一班,班主任:李四

關係型資料庫中,我們建立學生表和班級表來存這兩條資料,並且學生表中的班級儲存的是班級表中的主鍵。

非關係型資料庫中,我們建立兩個物件,一個是學生物件,一個是班級物件,用java來表示就是:

class Student {

String id;

String name;

String sex;

String number;

String classid;

}

class Grade {

String id;

String name;

String teacher;

}

透過設定Student類的classid等於Grade類的id來建立這種關係;

非關係型資料庫中,我們查詢一條資料,結果出來一個陣列,關係型資料庫中,查詢一條資料結果是一個物件。

資料庫

型別特性優點缺點

關係型資料庫

SQLite、Oracle、mysql1、關係型資料庫,是指採用了關係模型來組織

資料的資料庫;

2、關係型資料庫的最大特點就是事務的一致性;

3、簡單來說,關係模型指的就是二維表格模型,

而一個關係型資料庫就是由二維表及其之間的聯絡所組成的一個資料組織。1、容易理解:二維表結構是非常貼近邏輯世界一個概念,關係模型相對網狀、層次等其他模型來說更容易理解;

2、使用方便:通用的SQL語言使得操作關係型資料庫非常方便;

3、易於維護:豐富的完整性(實體完整性、參照完整性和使用者定義的完整性)大大減低了資料冗餘和資料不一致的機率;

4、支援SQL,可用於複雜的查詢。1、為了維護一致性所付出的巨大代價就是其讀寫效能比較差;

2、固定的表結構;

3、高併發讀寫需求;

4、海量資料的高效率讀寫;

非關係型資料庫

MongoDb、redis、HBase1、使用鍵值對儲存資料;

2、分散式;

3、一般不支援ACID特性;

4、非關係型資料庫嚴格上不是一種資料庫,應該是一種資料結構化儲存方法的集合。1、無需經過sql層的解析,讀寫效能很高;

2、基於鍵值對,資料沒有耦合性,容易擴充套件;

3、儲存資料的格式:nosql的儲存格式是key,value形式、文件形式、圖片形式等等,文件形式、圖片形式等等,而關係型資料庫則只支援基礎型別。1、不提供sql支援,學習和使用成本較高;

2、無事務處理,附加功能bi和報表等支援也不好;

注1:資料庫事務必須具備ACID特性,ACID是Atomic原子性,Consistency一致性,Isolation隔離性,Durability永續性。

注2:資料的持久儲存,尤其是海量資料的持久儲存,還是需要一種關聯式資料庫

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31543790/viewspace-2657684/,如需轉載,請註明出處,否則將追究法律責任。

相關文章