天天看點

關系型和非關系型資料庫的差別  差別一:存儲方式  差別二:表和資料的關系    差別三:資料之間的關系   差別四:參照完整性 差別五:事務 差別六:應用場景 差別七:查詢語言   差別八:性能  差別九:授權方式

差別一:存儲方式

關系型資料庫以資料庫表形式存儲資料  結構比較規整固定 

非關系型以JSON文檔、哈希表或者其他方式 結構更加靈活和可擴充 

差別二:表和資料的關系

關系型資料庫中,必須定義好表和字段結構後才能添加資料,

非關系型資料庫中,資料可以在任何時候任何地方添加,不需要先定義表,資料庫會自動建立相應的集合

差別三:資料之間的關系

關系型資料庫中建立實體資料之間的聯系是通過加外鍵

非關系型資料庫中除了這種規範化做法以外,還能用一種非規範化方式:

                                    即把外部資料直接放到原資料集中,以提高查詢效率。缺點就是更新稽核人資料的時候将會比較麻煩。 

差別四:參照完整性

參照完整性:若A關系中的某個或者某些屬性參照B或其他幾個關系中的屬性,那麼在關系A中該屬性要麼為空,要麼必須出現B或者其他的關系的對應屬性中。 

舉個例子:

關系型和非關系型資料庫的差別  差別一:存儲方式  差別二:表和資料的關系    差別三:資料之間的關系   差別四:參照完整性 差別五:事務 差別六:應用場景 差別七:查詢語言   差別八:性能  差別九:授權方式

上表是稽核人員表 下表是借閱人員表 用外鍵關聯

關系型資料庫中不允許删除已經被使用的外部資料,例如稽核人表中的"熊三"已經被配置設定給了借閱人表熊大,那麼在稽核人表中将不允許删除熊三這條資料,以保證資料完整性。

非關系型資料庫中則沒有這種強耦合的概念,可以随時删除任何資料。 

差別五:事務

關系型資料庫 有事務的概念

非關系型資料庫沒對事務的支援較差

差別六:應用場景

 關系型資料庫适合存儲結構化資料,如使用者的帳号、位址

NoSQL适合存儲非結構化資料,如文章、評論。

前許多大型網際網路項目都會選用MySQL(或任何關系型資料庫) + NoSQL的組合方案。

差別七:查詢語言

關系型資料庫通過結構化查詢語言來操作資料庫 有統一标準

非關系型資料庫使用的是非結構化查詢語言(UnQl),它是沒有标準的。 

差別八:性能

關系型資料庫為了維護資料的一緻性 在面對高并發讀寫性能非常差,面對海量資料的時候讀寫效率非常低。

nosql存儲的格式是key-value類型的,并且存儲在記憶體中,對于資料一緻性弱要求,無需sql的解析,提高了讀寫性能。 

差別九:授權方式

大多數的關系型資料庫都是付費的并且價格昂貴,成本較大,

非關系型資料庫通常都是開源的。