開頭先來說說我自己對於MongoDB的一些概念
學習動機:
1. 近幾週搜尋職缺時常常看見MongoDB被列為必要或是加分條件
2. 自己目前只接觸過關聯式資料庫(Oracle、MySQL、PostgreSQL、MSSQL),想了解 document-oriented如何運作與應用
學習之前對於MongoDB的認識程度:
0% (看過名字而已)
這次的學習參考資料來源:
1. <30天之你好MongoDB 系列> by我是小馬克 大大; 網址: https://ithelp.ithome.com.tw/users/20089358/ironman/1064
2. [mongoDB]mongoDB和noSQL的簡介 by雷伊的工作心得; https://goo.gl/vHi6eH
|---------------------------------------------------------------------------------|
今日學習內容架構:
什麼是MongoDB
MongoDB的優缺與缺點
MongoDB的組成 Document
與Collection
|---------------------------------------------------------------------------------|
< 什麼是MongoDB >
文件導向式(document-oriented)資料庫
noSQL的一種
字源是humongous
沒有提供MySQL的join功能
使用BSON的格式來存取資料
關聯式資料庫是row的概念,而MongoDB是document的概念。
例如
data[
{ Name:"Mary",
Age:15
}
{ Name:"Amy",
Age:20
}
]
|---------------------------------------------------------------------------------|
< MongoDB的優缺與缺點 >
優點:
Schema-less ( 彈性的Schema ) 延伸學習:http://blog.xuite.net/flyingidea/blog/67641474
易於擴展 ( 橫向擴展 → 易於多台伺服器之間進行資料分割 )
性能佳 ( 預分配, 盡可能把多的內存用作cache )
缺點:
不支援事務操作 (不保證一致性→不適用於銀行、會計系統)
較占空間 (因 預分配&欄位占空間)
|---------------------------------------------------------------------------------|
< MongoDB的組成 >
- Document
MongoDB的核心,一個key對應一個value,key有區分大小寫且不能相同(重複)!
下面這個例子是兩種不同的Document!
{ name : "mark" }
{ Name : "mark" }
- Collection
概念似於關聯式資料庫的table(collection)有很多個row(document)
動態的! 一個collection裡的document可以是各種類型 => 關聯式資料庫的table被schema綁死死
collection與document之間的架構關係如下圖所示
|---------------------------------------------------------------------------------|
< 學習MongoDB第一天的感想 >
好神奇啊!!
關聯式資料庫用久了,從來都沒有想過table可以有這樣的架構XD
明天繼續學習!
留言列表