1. 程式人生 > 其它 >NoSQL 資料庫簡介

NoSQL 資料庫簡介

什麼是 NoSQL 資料庫

NoSQL(Not Only SQL,不僅僅是SQL)泛指非關係型的資料庫。它是為了解決大規模資料集合以及多種資料型別帶來的問題,尤其是大資料應用難題。NoSQL 資料庫並沒有一個統一的架構,各有所長。

關係型資料庫 VS NoSQL 資料庫

NoSQL 資料庫是一類資料庫的統稱(如鍵值儲存型,文件型,列儲存型等等)。

關係資料庫
  • 優勢:以完善的關係代數理論作為基礎,有嚴格的標準,支援事務 ACID 屬性,藉助索引機制可以實現高效的查詢,技術成熟,有專業公司的技術支援.
  • 劣勢:可擴充套件性較差,無法較好支援海量資料儲存,無法滿足資料高併發的需求
NoSQL 資料庫
  • 優勢:可以支援超大規模資料儲存,靈活的資料模型可以很好地支援 Web2.0 應用,具有強大的橫向擴充套件能力等.
  • 劣勢:缺乏數學理論基礎,複雜查詢效能不高,大都不能實現事務強一致性,很難實現資料完整性,技術尚不成熟,缺乏專業團隊的技術支援,維護較困難等
結論

關係資料庫和 NoSQL 資料庫各有優缺點,彼此無法取代

關係資料庫應用場景:電信、銀行等領域的關鍵業務系統,需要保證強事務一致性

NoSQL 資料庫應用場景:網際網路企業、傳統企業的非關鍵業務(比如資料分析)

八種常見的 NoSQL 資料庫
  • Redis
  • MongeDB
  • HBase
  • Membase
  • Neo4j
  • Cassandra
  • CouchDB
  • Riak
NoSQL 資料庫的四大分類
  • 鍵值(Key-Value)儲存資料庫
    • 應用場景:內容快取,主要用於處理大量資料的高訪問負載,也用於一些日誌系統等等。
    • 優點:查詢速度快。這一類資料庫主要會使用到一個雜湊表,這個表中有一個特定的鍵和一個指標指向特定的資料。Key/value模型對於IT系統來說的優勢在於簡單、易部署。如:Redis,Oracle BDB.
  • 列儲存資料庫
    • 應用場景:分散式的檔案系統,應對分散式儲存的海量資料。
    • 優點:查詢速度快,可擴充套件性強,更容易進行分散式擴充套件。鍵仍然存在,但是它們的特點是指向了多個列。這些列是由列家族來安排的。如: HBase, Riak, Cassandra,
  • 文件型資料庫
    • 應用場景:Web 應用(與Key-Value類似,Value是結構化的,不同的是資料庫能夠了解Value的內容)。
    • 優點:資料結構要求不嚴格,表結構可變,不需要像關係型資料庫一樣需要預先定義表結構。文件型資料庫可以看作是鍵值資料庫的升級版,而且比鍵值資料庫的查詢效率更高。如:MongoDB ,CouchDB,國內也有文件型資料庫 SequoiaDB,已經開源。
  • 圖形(Graph)資料庫
    • 應用場景:社交網路,推薦系統等。專注於構建關係圖譜。
    • 優點:利用圖結構相關演算法。比如最短路徑定址,N度關係查詢等。使用靈活的圖形模型,並且能夠擴充套件到多個伺服器上。