1. 程式人生 > >MongoDB入門(一)——數據庫概述

MongoDB入門(一)——數據庫概述

數據庫 非關系型數據庫 MongoDB

1.數據庫概述
1.1.引言
技術分享圖片

以上圖片是什麽?
答案:車庫

車庫用來做什麽?
答案:停放車輛,換句話說:存儲汽車。

數據庫用來做什麽?
答案:存儲數據。

思考1:老師讓你匯總下本周遲到人數,你如何記錄?
數據量比較小,用一個excel表格就存放遲到人的名單。

思考2:2017年四川高考成績如何存儲?
數據量大了,顯然excel不能滿足,就需要存儲在數據庫裏面。
不僅如此,很多企業都有自己的數據需要管理,都需要使用數據庫。
1.2.什麽是數據庫
數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,它產生於距今六十多年前,隨著信息技術和市場的發展,特別是二十世紀九十年代以後,數據庫技術得到了更加快速的發展,應用得更加廣泛。主要用它進行管理各種系統的數據,作為科學研究和決策的重要技術手段。

常見的數據庫有哪些:

下圖是2015年數據庫排行
技術分享圖片

關系型數據庫[什麽是關系型數據庫?
關系型數據庫 以行和列的形式存儲數據,以便於用戶理解。這一系列的行和列被稱為表,一組表組成了數據庫。表與表之間的數據記錄有關系。
]:Access mySql SqlServer oracle db2等。

非關系型數據庫: MongoDB,Redis,HBase,CouchDB等。

技術分享圖片

技術分享圖片

文檔型數據這個名字中,“文檔”兩個字很容易誤解。其實這個文檔就是 bson 。bson 是 json 的超集,比如 json 中沒法儲存二進制類型,而 bson 拓展了類型,提供了二進制支持。mongodb 中存儲的一條條記錄都可以用 bson 來表示。所以你也可以認為,mongodb 是個存 bson 數據的數據庫。

數據庫是一門學科,專門做數據庫運維的人叫Database Administrator,簡稱DBA,有的DBA指深入專研一種數據庫。

思考:在這兩天的學習過程中,對於我們web前端學科的同學來說,我們如何去學它,掌握到什麽程度?

我們對大家的要求:

?了解數據庫發展歷史。(面試用)
?會安裝MongoDB和配置環境變量。
?學會常用的命令。
?學會用後端語言進行MongoDB的CRUD操作。

1.3.NoSQL簡介
NoSQL,指的是非關系型的數據庫。NoSQL有時也稱作Not Only SQL的縮寫,是對不同於傳統的關系型數據庫的數據庫管理系統的統稱。

NoSQL用於超大規模數據的存儲。(例如谷歌或Facebook每天為他們的用戶收集萬億比特的數據)。這些類型的數據存儲不需要固定的模式,無需多余操作就可以橫向擴展。

1.4.MongoDB簡介
MongoDB 是一個基於分布式[物理上不在一起,是分開的。例如一個網頁裏面有html標簽,該頁面中加載了css樣式,圖片,還有視頻,這些資源中,html,js,css可能在服務器A上面,圖片可能在服務器B上面,視頻可能在服務器c上面。
]文件存儲的數據庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴展的高性能數據存儲解決方案。

MongoDB 是非關系型數據庫當中功能最豐富,最像關系型數據庫的。
隨著大數據的不斷發展,非關系型數據庫已經變得越來越重要,相關的產品也都得到了飛速發展。而其中MongoDB更是佼佼者,作為高性能開源文檔數據庫,MongoDB以敏捷、可擴展和對企業應用友好而著稱,因其操作簡單、完全免費、源碼公開等特點,受到了IT從業人員的青睞,並被廣泛部署於實際的生產環境中。

使用MongoDB的公司包括:BAT、360、Foursquare、Craiglist,、迪士尼、SAP、Intuit、EA等。

很多大公司在用,並且越來越多的公司也要用,我們以後就可能接觸到相關的項目,雖然數據庫是後端人員做的事情,但是做為高級前端,有必要對它有所了解,才更好的和後端開發人員合作,做到知己知彼,百戰不殆。

1.5.MongoDB優點
它的特點是高性能、易部署、易使用,存儲數據非常方便。主要功能特性有:
?面向集合存儲,易存儲對象類型的數據。
?模式自由。
?支持動態查詢。
?支持完全索引,包含內部對象。
?支持查詢。
?支持復制和故障恢復。
?使用高效的二進制數據存儲,包括大型對象(如視頻等)。
?自動處理碎片,以支持雲計算層次的擴展性
?支持RUBY,PYTHON,JAVA,C++,PHP等多種語言。
?文件存儲格式為BSON(一種JSON的擴展)
1.6.BSON
BSON是一種類似json的二進制形式的存儲格式,簡稱Binary JSON,它和JSON一樣,支持內嵌的文檔對象和數組對象,但是BSON有JSON沒有的一些數據類型,如Date和BinData類型。

BSON可以做為網絡數據交換的一種存儲形式,這個有點類似於Google的Protocol Buffer,但是BSON是一種schema-less的存儲形式,它的優點是靈活性高,但它的缺點是空間利用率不是很理想。

BSON有三個特點:輕量性、可遍歷性、高效性。

後面大家會看到我們存在數據庫裏面的全部都是bson格式的數據。
1.7.非關系型數據庫與關系型數據庫區別
非關系型數據庫的優勢:

  1. 性能
    NOSQL是基於鍵值對的,可以想象成表中的主鍵和值的對應關系,而且不需要經過SQL層的解析,所以性能非常高。

  2. 可擴展性
    同樣也是因為基於鍵值對,數據之間沒有耦合性,所以非常容易水平擴展。

關系型數據庫的優勢:

  1. 復雜查詢
    可以用SQL語句方便的在多個表之間做非常復雜的數據查詢。

  2. 事務支持
    使得對於安全性能很高的數據訪問要求得以實現。

總結:
?數據庫功能是用來存儲數據的。
?數據庫分為關系系數據庫和非關系型數據庫(nosql)
?關系型數據庫是由表和表之間的關系組成的,nosql是由集合組成的,集合下面是很多的文檔。
?非關系型數據庫文件存儲格式為BSON(一種JSON的擴展)。

MongoDB入門(一)——數據庫概述