關系資料庫與非關系型資料庫
- 一、相關概念
- 關系型資料庫
- 非關系型資料庫
- 二、關系型資料庫和非關系型資料庫區別
- 資料存盤方式不同
- 擴展方式不同
- 對事務性的支持不同
- 三、非關系型資料庫產生背景
- 總結
一、相關概念
關系型資料庫
- 關系型資料庫是一個結構化的資料庫,創建在關系模型(二維表格模型)基礎上,一般面向于記錄,
- SQL陳述句(標準資料查詢語言)就是一種基于關系型資料庫的語言,用于執行對關系型資料庫中資料的檢索和操作
- 主流的關系型資料庫包括Oracle、MySQL、SQL Server、Microsoft Access、DB2等,
非關系型資料庫
- NoSQL (NoSQL = Not only sQL ),意思是"不僅僅是 SQL",是非關系型資料庫的總稱,
- 除了主流的關系型資料庫外的資料庫,都認為是非關系型,
- 主流的NoSQL資料庫有 Redis、MongBD、Hbase、Memcached等,
二、關系型資料庫和非關系型資料庫區別
資料存盤方式不同
- 關系型和非關系型資料庫的主要差異是資料存盤的方式,
- 關系型資料天然就是表格式的,因此存盤在資料表的行和列中,資料表可以彼此關聯協作存盤,也很容易提取資料,
- 與其相反,非關系型資料不適合存盤在資料表的行和列中,而是大塊組合在一起,
- 非關系型資料通常存盤在資料集中,就像檔案、鍵值對或者圖結構,你的資料及其特性是選擇資料存盤和提取方式的首要影響因素,
擴展方式不同
- SQL和NoSQL資料庫最大的差別可能是在擴展方式上,要支持日益增長的需求當然要擴展,
- 要支持更多并發量,SQL資料庫是縱向擴展,也就是說提高處理能力,使用速度更快速的計算機,這樣處理相同的資料集就更快了,因為資料存盤在關系表中,操作的性能瓶頸可能涉及很多個表,這都需要通過提高計算機性能來克服,雖然SQL資料庫有很大擴展空間,但最終肯定會達到縱向擴展的上限,
- 而NoSQL資料庫是橫向擴展的,因為非關系型資料存盤天然就是分布式的,NoSQL資料庫的擴展可以通過給資源池添加更多普通的資料庫服務器(節點)來分擔負載,
對事務性的支持不同
- 如果資料操作需要高事務性或者復雜資料查詢需要控制執行計劃,那么傳統的SQL資料庫從性能和穩定性方面考慮是你的最佳選擇
SQL資料庫支持對事務原子性細粒度控制,并且易于回滾事務,
雖然MoSQL資料庫也可以使用事務操作,但穩定性方面沒法和關系型資料庫比較,所以它們真正閃亮的價值是在操作的擴展性和大資料量處理方面,
三、非關系型資料庫產生背景
可用于應對web2.0 純動態網站型別的三高問題,
- High performance——對資料庫高并發讀寫需求
- Huge Storage——對海量資料高效存盤與訪問需求
- High Scalability && High Availability——對資料庫高可擴展性與高可用性需求
關系型資料庫和非關系型資料庫都有各自的特點與應用場景,兩者的緊密結合將會給web2.0的資料庫發展帶來新的思路,讓關系資料庫關注在關系上,非關系型資料庫關注在存盤上,例如,在讀寫分離的MySQL資料庫環境中,可以把經常訪問的資料存盤在非關系型資料庫中,提升訪問速度,
總結
關系型資料庫:
實體 >> 資料庫 >> 表(table) >> 記錄行(row)、資料欄位(column)
非關系型資料庫:
實體 >> 資料庫 >> 集合(collection) >> 鍵值對(key-value)
非關系型資料庫不需要手動建資料庫和集合(表),
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/262986.html
標籤:其他
