天天看點

MongoDB(一)NoSQL起源

為什麼出現NoSQL?

随着網際網路的發展,當我們把一台伺服器一台伺服器變成兩台伺服器,當我們開始建立資料備份,當我們需要加一個緩沖層,來調整所有的查詢,投入更多的硬體。

最後,需要将資料切分多個叢集上,并重構大量的應用邏輯以适應這種切分。不久之後,你就會發現被自己數月前的設計資料結構限制住了。

随着web2.0的興起,關系型資料庫本身無法克服的缺陷越來越明顯,主要表現為如下幾點。

1、對資料高并發讀寫的需求

2、對海量資料的高效率存儲和通路的需求。

3、對資料庫的高可擴充性和高可用性的需求。

4、資料庫事務一緻性需求。

5、資料庫寫實性和讀寫時性需求。

6、對複雜SQL的查詢,特别是對關聯查詢的需求。

NoSQL是Notonly SQL的縮寫,NoSQL不使用SQL作為查詢語言。其資料存儲可以不需要固定的表格模式,也經常避免使用SQL的join操作,一般有水準可擴充性的特征。

NoSQL曆史?

1、NoSQL一詞最早出現在1998年,是Carlo Strozzi開發的一個輕量、開源、不提供SQL功能的關系資料庫。

2、2009年,Last.fm的Johan Oskarsson發起了一次關于分布式開源資料庫的讨論,來自Rackspace的Eric Evans再次提出了NoSQL概念,這時的NoSQL主要是指非關系型、分布式、不提供資料庫設計模式。

3、2009年趨勢高漲,被定為“非關系型的”資料存儲,相對于關系型資料庫運用,這一概念無疑是一種全新思維的注入。

SQL和NoSql的差別?

     NoSQL具有如下幾點

     優點:

     1、高并發讀寫

     2、海量資料存儲

     3、高可擴充性

     4、高可用性

     缺點:

     5、缺乏事務一緻性

     6、缺乏讀寫實時性

     7、不支援複雜查詢

NoSQL資料庫類型

Key-value:key指Value的鍵值對,通常用hash table來實作

列式資料庫:同一列資料存在一起

文檔型資料庫:Key-Value對應的鍵值對,Value為結構化資料産品:MongoDB

圖結構資料庫:以“圖”為基本存儲模型,産品:Neo4j,InfoGrid,InfiniteGraph

NoSQL資料庫開源軟體

1、Membase軟體

2、Hypertable

3、ApacheCassandra

4、MongoDB

在這裡我們用的是MongoDB,下篇MongoDB簡介,以及執行個體操作。