SQL與NoSQL數據庫入門基礎知識詳解

 

這幾年的大數據熱潮帶動了一激活了一大批hadoop學習愛好者。有自學hadoop的,有報名培訓班學習的。全部接觸過hadoop的人都知道,單獨搭建hadoop裏每一個組建都須要運行環境、修改配置文件測試等過程。對於咱們這些入門級新手來講簡直每一個都是坑。國內的發行版hadoop那麼多,彷佛都沒有來填這樣的坑?不知道是無法解決,仍是沒有想到?數據庫

安裝運行環境這樣的坑,那些作國產大數據底層開發的,若是不能解決這個問題的話,我以爲不是一個合格的大數據底層開發機構。不過比較幸運的是,三月的時候申請拿到了一個DKHadoop的三節點發行版,大快開源的發行版hadoop。這個國產發行版就把各類經常使用的組建好比:HDFS,Hbase,Storm,Flume,Kafka,Mahout,Es等集成到了一塊兒,終於不須要絞盡腦汁去折騰底層平臺的搭建與配置了,簡單的完成安裝便可。這對於hadoop初學者來講,可謂是福音了。網絡

扯的稍微多了點,後面在給家分享DKHadoop的安裝以及使用,今天想給你們分享的是大數據基礎內容中的數據庫:SQL與NOSQL。理解這兩種數據,只須要搞清楚兩者的概念以及有何不一樣便可。oop

兩者概念:性能

一、SQL數據庫,指關係型數據庫。主要表明:SQL Server,Oracle,MySQL(開源),PostgreSQL(開源)。學習

二、NoSQL泛指非關係型數據庫。主要表明:MongoDB,Redis,CouchDB。測試

兩者區別:大數據

SQL數據與NOSQL數據的區別其實仍是比較大的,總結起來基本能夠從如下幾個方面進行對比分析:設計

  1. 使用場景:SQL 是數字,它最適合明確的定義,精確規範的獨立項目。典型的使用案例是在線商城和銀行系統; NoSQL 是模擬,它最適合無固定要求的組織數據。典型的使用案例是社交網絡,客戶管理和網絡分析系統。
  2. 存儲方式:SQL數據存在特定結構的表中,SQL一般以數據庫表形式存儲數據。舉個例子,存個學生借書數據:

NoSQL存儲方式比較靈活,存儲方式能夠是JSON文檔、哈希表或者其餘方式。好比使用類JSON文件存儲上表中熊大的借閱數據:3d

(3)SQL中若是須要增長外部關聯數據的話,規範化作法是在原表中增長一個外鍵關聯外部數據表。例如須要在借閱表中增長審覈人信息,先創建一個審覈人表:orm

     再在原來的借閱人表中增長審覈人外鍵,這樣若是咱們須要更新審覈人我的信息的時候只須要更新審覈人表而不須要對借閱人表作更新。

而在NoSQL中除了這種規範化的外部數據表作法之外,咱們還能用以下的非規範化方式把外部數據直接放到原數據集中,以提升查詢效率。缺點也比較明顯,更新審覈人數據的時候將會比較麻煩。

(4)數據耦合性 :SQL中不容許刪除已經被使用的外部數據,例如審覈人表中的"熊三"已經被分配給了借閱人熊大,那麼在審覈人表中將不容許刪除熊三這條數據,以保證數據完整性;而NoSQL中則沒有這種強耦合的概念,能夠隨時刪除任何數據。 

(5)查詢性能:在相同水平的系統設計的前提下,由於NoSQL中省略了JOIN查詢的消耗,故理論上性能上是優於SQL的。

相關文章
相關標籤/搜索