NoSQL(非關係型資料庫) 簡單來說,關聯式模式指的就是二維表格模型,而一個關係型資料庫就是由二維表及其之間的聯絡組成的一個資料群組織。 NoSQL最普遍的解釋是“非關係型的”,強調Key-Value Stores和文檔資料庫的優點,而不是單純的反對RDBMS。
非關係型資料庫特點
1.可以處理超大量的資料。
2.運行在便宜的PC伺服器叢集上。PC叢集擴充起來非常方便並且成本很低,避免了“sharding”操作的複雜性和成本。
3.擊碎了效能瓶頸。NoSQL的支援者稱,通過NoSQL架構可以省去將Web或Java應用和資料轉換成SQL友好格式的時間,執行速度變得更快。
4.沒有過多的操作。
5.支援者來源於社區。因為NoSQL項目都是開源的,因此它們缺乏供應商提供的正式支援。這一點它們與大多數開源項目一樣,不得不從社區中尋求支援。
MongoDB簡介 MongoDB是一個介於關聯式資料庫和非關聯式資料庫之間的產品,是非關聯式資料庫當中功能最豐富,最像關聯式資料庫的。他支援的資料結構非常鬆散,是類似json的bjson格式,因此可以儲存比較複雜的資料類型。Mongo最大的特點是他支援的查詢語言非常強大,其文法有點類似於物件導向的查詢語言,幾乎可以實作類別似關聯式資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引。它是一個面向集合的,模式自由的文檔型資料庫。
MongoDB特點 面向集合, 意思是資料被分組到若干集合,這些集合稱作聚集(collections). 在資料庫裡每個聚集有一個唯一的名字,可以包含無限個文檔. 聚集是RDBMS中表的同義字,區別是聚集不需要進行模式定義.
模式自由, 意思是資料庫並不需要知道你將存入到聚集中的文檔的任何結構資訊.實際上,你可以在同一個聚集中儲存不同結構的文檔.
文檔型, 意思是我們儲存的資料是鍵-值對的集合,鍵是字串,值可以是資料類型集合裡的任意類型,包括數組和文檔. 我們把這個資料格式稱作 "[BSON]"即 "Binary Serialized dOcument Notation."
面向文檔儲存:(類JSON資料模式簡單而強大)。
高效的傳統儲存方式:支援位元據及大型物件(如照片和視頻)。
複製及自動容錯移轉:Mongo資料庫支援伺服器之間的資料複製,支援主-從模式及伺服器之間的相互複製。
Auto-Sharding自動分區支援雲級擴充性(處於早期alpha階段):自動分區功能支援水平的資料庫叢集,可動態添加額外的機器。
動態查詢:它支援豐富的查詢運算式。查詢指令使用JSON形式的標記,可輕易查詢文檔中內嵌的對象及數組。
全索引支援:包括文檔內嵌對象及數組。Mongo的查詢最佳化工具會分析查詢運算式,並產生一個高效的查詢計劃。
支援RUBY,PYTHON,JAVA,C++,PHP等多種語言。
面向集合儲存,易儲存物件類型的資料:儲存在集合中的文檔,被儲存為鍵-值對的形式。鍵用於唯一標識一個文檔,為字串類型,而值則可以是各中複雜的檔案類型;
模式自由:儲存在mongodb資料庫中的檔案,我們不需要知道它的任何結構定義;
支援完全索引,包含內部對象。
支援複製和故障恢複。
自動處理片段: 自動分區功能支援水平的資料庫叢集,可動態添加額外的機器
查詢監視:Mongo包含一個監視工具用於分析資料庫操作的效能
MongoDB安裝與配置 步驟一:下載MongoDB
:http://downloads.mongodb.org
步驟二:設定MongoDB程式存放目錄
將下載的壓縮包解壓到D:\,重新命名為mongodb,路徑為d:\mongo
步驟三:設定資料檔案存放目錄
在d盤建一個檔案夾,路徑d:\mdb
步驟四:啟動MongoDB服務
進入cmd 提示符控制台,轉到d:\mongo\bin目錄下,輸入命令mongod --dbpath=d:\mdb
步驟五:將MongoDB作為Windows服務隨機啟動
先建立記錄檔:同樣轉到d:\mongo\bin,輸入命令mongod --dbpath=d:\mdb --logpath=d:\mdb\logs\mongodb.log --install
重新以管理員身份開啟控制台視窗,設定mongodb服務開機啟動:net start mongodb
步驟六:串連驗證
輸入d:\mongodb\bin\mongo,如果出現以下提示說明安裝成功
Mongodb應用場合
1.網站資料:MongoDB非常適合即時的插入,更新與查詢,並具備網站即時資料儲存所需的複製及高度伸縮性。
2.緩衝:由於效能很高,MongoDB也適合作為資訊基礎設施的緩衝層。在系統重啟後
,由MongoDB搭建的持久化緩衝層可以避免下層的資料來源過載。
3.大尺寸,低價值的資料:使用傳統的關係型資料庫儲存一些資料時可能會比較昂貴,在此之前,很多時候程式員往往會選擇傳統的檔案進行儲存。如在一些項目中大量用到音頻和圖片的儲存。
4.高伸縮性的情境:MongoDB非常適合由數十或數百台伺服器組成的資料庫。MongoDB的路線圖中已經包含對MapReduce引擎的內建支援
5.用於對象及JSON資料的儲存:MongoDB的BSON資料格式非常適合文檔化格式的儲存及查詢。