关系型和非关系型数据库的区别
?
區別一:存儲方式
關系型數據庫以數據庫表形式存儲數據? 結構比較規整固定?
非關系型以JSON文檔、哈希表或者其他方式 結構更加靈活和可擴展?
?
區別二:表和數據的關系
?
關系型數據庫中,必須定義好表和字段結構后才能添加數據,
非關系型數據庫中,數據可以在任何時候任何地方添加,不需要先定義表,數據庫會自動創建相應的集合
?
?
區別三:數據之間的關系
?
關系型數據庫中建立實體數據之間的聯系是通過加外鍵
非關系型數據庫中除了這種規范化做法以外,還能用一種非規范化方式:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??即把外部數據直接放到原數據集中,以提高查詢效率。缺點就是更新審核人數據的時候將會比較麻煩。?
?
區別四:參照完整性
?
參照完整性:若A關系中的某個或者某些屬性參照B或其他幾個關系中的屬性,那么在關系A中該屬性要么為空,要么必須出現B或者其他的關系的對應屬性中。?
舉個例子:
上表是審核人員表 下表是借閱人員表 用外鍵關聯
關系型數據庫中不允許刪除已經被使用的外部數據,例如審核人表中的"熊三"已經被分配給了借閱人表熊大,那么在審核人表中將不允許刪除熊三這條數據,以保證數據完整性。
非關系型數據庫中則沒有這種強耦合的概念,可以隨時刪除任何數據。?
區別五:事務
關系型數據庫 有事務的概念
非關系型數據庫沒對事務的支持較差
區別六:應用場景
?關系型數據庫適合存儲結構化數據,如用戶的帳號、地址
NoSQL適合存儲非結構化數據,如文章、評論。
前許多大型互聯網項目都會選用MySQL(或任何關系型數據庫) + NoSQL的組合方案。
?
區別七:查詢語言
?
關系型數據庫通過結構化查詢語言來操作數據庫 有統一標準
非關系型數據庫使用的是非結構化查詢語言(UnQl),它是沒有標準的。?
區別八:性能
?
關系型數據庫為了維護數據的一致性 在面對高并發讀寫性能非常差,面對海量數據的時候讀寫效率非常低。
nosql存儲的格式是key-value類型的,并且存儲在內存中,對于數據一致性弱要求,無需sql的解析,提高了讀寫性能。?
?
區別九:授權方式
大多數的關系型數據庫都是付費的并且價格昂貴,成本較大,
非關系型數據庫通常都是開源的。
總結
以上是生活随笔為你收集整理的关系型和非关系型数据库的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快乐随心情
- 下一篇: 电子制造ERP管理系统在仓库管理中的应用