Mongo入門-1-原理&轉(zhuǎn)載自【螞蟻號】

數(shù)據(jù)庫的分類

在這里插入圖片描述

關(guān)系型數(shù)據(jù)庫遵循的ACID

  • A (Atomicity)原子性

  • C (Consisitency)一致性

  • I (Isolation)獨(dú)立性

  • D (Durability)持久性

為什么使用NoSql

not?only?sql1

現(xiàn)在個(gè)人信息爆炸
對爆炸的數(shù)據(jù)挖掘 傳統(tǒng)的SQL數(shù)據(jù)庫已經(jīng)不在適合
NoSql解決了大數(shù)據(jù)的處理和存儲問題

RDBMS NoSQL

RDBMS

  • 高度組織化結(jié)構(gòu)化數(shù)據(jù)

  • 結(jié)構(gòu)化查詢語言SQL

  • 數(shù)據(jù)和關(guān)系都存儲在單獨(dú)的表中

  • 數(shù)據(jù)操縱語言,數(shù)據(jù)定義語言

  • 嚴(yán)格的一致性

  • 基礎(chǔ)事務(wù)

NoSQl

  • not only sql

  • 沒有聲名性查詢語句

  • 沒有預(yù)定義的模型

鍵值對存儲,列存儲,文檔存儲,圖形數(shù)據(jù)庫1
  • 最終一致性,而非ACID屬性

  • 非結(jié)構(gòu)化和不可預(yù)支的數(shù)據(jù)

  • CAP定理

  • 高性能,高可用性和可伸縮性

CAP定理

對于一個(gè)分布式計(jì)算系統(tǒng)來說,不可能同時(shí)滿足一下三點(diǎn) 最多滿足兩個(gè)

  • 一致性(所有節(jié)點(diǎn)在同一時(shí)間具有相同的數(shù)據(jù))

  • 可用性(保證每個(gè)請求成功與否都有相應(yīng))

  • 分隔容忍(系統(tǒng)中任意信息的丟失或者失敗不會影響系統(tǒng)的繼續(xù)運(yùn)作)

因此根據(jù)CAP原理將NoSQL數(shù)據(jù)庫分成了滿足CA原則,滿足CP原則和滿足AP原則

  • CA-單點(diǎn)集群,滿足一致性,滿足性的系統(tǒng),通常在可擴(kuò)展性上不太強(qiáng)大

  • CP-滿足一致性,分區(qū)容忍性的系統(tǒng),通常性能不是特別高

  • AP-滿足可用性,分區(qū)容忍性的系統(tǒng),通扯∈牛可以對一致性要求低一些

在這里插入圖片描述

NoSQL的優(yōu)缺點(diǎn)

優(yōu)點(diǎn)

  • 高拓展性

  • 分布式計(jì)算

  • 低成本

  • 架構(gòu)的靈活

  • 半結(jié)構(gòu)化數(shù)據(jù)

  • 沒有復(fù)雜的關(guān)系

缺點(diǎn)

  • 沒有標(biāo)準(zhǔn)化

  • 有限的查詢功能(目前為止)

  • 最終一致是不直觀的程序

NoSQl分類

在這里插入圖片描述
# MongoDB簡介
C++編寫
分布式文件存儲的開源數(shù)據(jù)庫系統(tǒng)
可以橫向擴(kuò)展
將數(shù)據(jù)存儲為一個(gè)文檔,數(shù)據(jù)結(jié)構(gòu)為(KV)
文檔類似于JSON對象,字段值可以包含其他文檔
在這里插入圖片描述

主要特點(diǎn)

  • 面向文檔存儲的數(shù)據(jù)庫,操作起來比較簡單

  • 可以設(shè)置任何屬性的索引(FirstName = “Sameer”,Address=“8”)實(shí)現(xiàn)更快的排序

  • 通過本地或者網(wǎng)絡(luò)床架數(shù)據(jù)鏡像,使Mongo有更強(qiáng)的擴(kuò)展性

  • 分片:分布在計(jì)算機(jī)網(wǎng)絡(luò)的其他節(jié)點(diǎn)

  • Mongo支持豐富的查詢表達(dá)式.查詢指令JSON形式

  • update實(shí)現(xiàn)替換完成的文檔

  • MR對數(shù)據(jù)進(jìn)行批量處理和聚合操作

  • Map函數(shù)調(diào)用emit(key,value)遍歷集合中所有的記錄,kv傳給Reduce函數(shù)

  • Reduce函數(shù)是JavaScript編的,通過db.runCommand或mapreduce命令來執(zhí)行

  • GridFS是MongoDB中的一個(gè)內(nèi)置功能,可以用來存放大量小文件

  • 允許在服務(wù)端執(zhí)行腳本,可用javaScript編寫某個(gè)函數(shù),直接在服務(wù)端執(zhí)行,函數(shù)定義也可以存儲在服務(wù)端,下次直接調(diào)用即可

  • 支持各種編程語言:ruby Python java C php等

MongoDB解析

在這里插入圖片描述
在這里插入圖片描述

數(shù)據(jù)庫

一個(gè)MongoDB可以創(chuàng)建多個(gè)數(shù)據(jù)庫

默認(rèn)數(shù)據(jù)庫為db 該數(shù)據(jù)庫存儲在data目錄

單個(gè)實(shí)例可以容納多個(gè)獨(dú)立的數(shù)據(jù)庫,每一個(gè)都有自己的集合和權(quán)限,不同的數(shù)據(jù)庫放置在不同文件中

數(shù)據(jù)庫通過名字來標(biāo)識.數(shù)據(jù)庫名字可以是滿足以下任意utf-8字符串

不不能是空字符串串("")关带。
不不得含有'?'(空格)絮识、.、$宇攻、/叹哭、\和\0?(空字符)晰绎。
應(yīng)全部小小寫彼硫。
最多64字節(jié)。1234

有一些數(shù)據(jù)庫名是保留的,可以直接訪問這些有特殊作用的數(shù)據(jù)庫

  • admin root數(shù)據(jù)庫,將一個(gè)用戶添加到這個(gè)數(shù)據(jù)庫,這個(gè)用戶自動繼承所有數(shù)據(jù)庫的權(quán)限.特定的命令只能夠這個(gè)數(shù)據(jù)庫運(yùn)行(列出所有的數(shù)據(jù)庫或關(guān)閉服務(wù)器)

  • local 這個(gè)數(shù)據(jù)永遠(yuǎn)不會被復(fù)制,可以用來存儲限于本地單臺服務(wù)器的任意集合

  • config:當(dāng)Mongo用于分片設(shè)置時(shí),config在內(nèi)部使用,用于保存分片的相關(guān)信息

文檔

文檔是一組kv(BSON).Mongo的文檔不需要設(shè)置相同的字段,并且相同的字段不需要相同的數(shù)據(jù)類型,與關(guān)系型數(shù)據(jù)庫有很大差別,也是MongoDB的特點(diǎn)

{"site":"www.skedu.com",?"name":"山山科大大mongodb"}1

RDBMS與MongoDB對應(yīng)的術(shù)語:
在這里插入圖片描述
注意

  • kv是有順序的

  • 文檔中的值不僅可以是在雙引號里的字符串,還可以是其他幾種數(shù)據(jù)類型(甚至是整個(gè)嵌入式文檔)

  • 區(qū)分類型和大小寫

  • 文檔不能有重復(fù)的鍵

  • 鍵是字符串.除了少數(shù)例外,可以使用UTF-8
    文檔命名規(guī)范

  • 鍵不能含有\(zhòng)0(空字符).這個(gè)字符用來表示鍵的結(jié)尾

  • .和$有特殊意義

  • _開頭是有保留的(不是嚴(yán)格要求)

集合

集合就是 MongoDB 文文檔組,類似于 RDBMS (關(guān)系數(shù)據(jù)庫管理理系統(tǒng):Relational Database
Management System)中的表格
沒有固定的結(jié)構(gòu),意味著在對集合可以插入不同格式和類型的數(shù)據(jù)
但通常情況下插入集合的數(shù)據(jù)有一定的關(guān)聯(lián)性

{"site":"www.baidu.com"}
{"site":"www.google.com","name":"Google"}
{"site":"www.runoob.com","name":"菜?鳥教程","num":5}123

MongoDB數(shù)據(jù)類型

在這里插入圖片描述
轉(zhuǎn)載:https://blog.csdn.net/weixin_39381833/article/details/89191494

原文地址:https://www.v5ant.com/details/g8uoQFpiq.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末寝受,一起剝皮案震驚了整個(gè)濱河市坷牛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌很澄,老刑警劉巖京闰,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異甩苛,居然都是意外死亡蹂楣,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門讯蒲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來痊土,“玉大人,你說我怎么就攤上這事墨林×拊停” “怎么了犯祠?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長酌呆。 經(jīng)常有香客問我衡载,道長,這世上最難降的妖魔是什么隙袁? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任痰娱,我火速辦了婚禮,結(jié)果婚禮上菩收,老公的妹妹穿的比我還像新娘梨睁。我一直安慰自己,他們只是感情好娜饵,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布坡贺。 她就那樣靜靜地躺著,像睡著了一般划咐。 火紅的嫁衣襯著肌膚如雪拴念。 梳的紋絲不亂的頭發(fā)上钧萍,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天褐缠,我揣著相機(jī)與錄音,去河邊找鬼风瘦。 笑死队魏,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的万搔。 我是一名探鬼主播胡桨,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼瞬雹!你這毒婦竟也來了昧谊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤酗捌,失蹤者是張志新(化名)和其女友劉穎呢诬,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胖缤,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡尚镰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哪廓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狗唉。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖涡真,靈堂內(nèi)的尸體忽然破棺而出分俯,到底是詐尸還是另有隱情肾筐,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布缸剪,位于F島的核電站局齿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏橄登。R本人自食惡果不足惜抓歼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拢锹。 院中可真熱鬧谣妻,春花似錦、人聲如沸卒稳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽充坑。三九已至减江,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間捻爷,已是汗流浹背辈灼。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留也榄,地道東北人巡莹。 一個(gè)月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像甜紫,于是被迫代替她去往敵國和親降宅。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容