Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NoSQL & MongoDB
Search
Shuai Liu
June 20, 2014
Programming
190
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
NoSQL & MongoDB
Shuai Liu
June 20, 2014
More Decks by Shuai Liu
See All by Shuai Liu
Auto-Layout.pdf
liushuaikobe
2
140
Python-intro-2
liushuaikobe
0
85
Python-intro-1
liushuaikobe
0
83
GitRadar——毕业论文答辩
liushuaikobe
0
210
Other Decks in Programming
See All in Programming
The NotImplementedError Problem in Ruby
koic
1
790
A2UI という光を覗いてみる
satohjohn
1
140
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
170
CSC307 Lecture 17
javiergs
PRO
0
320
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
190
依存関係から依存物へ―Dependencyという言葉の歴史をひも解く
j_lee
0
120
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
140
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
680
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
2
680
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
8
4.9k
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
520
技術記事、 専門家としてのプログラマ、 言語化
mizchi
13
6k
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
187
22k
Typedesign – Prime Four
hannesfritz
42
3.1k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
So, you think you're a good person
axbom
PRO
2
2.1k
sira's awesome portfolio website redesign presentation
elsirapls
0
280
For a Future-Friendly Web
brad_frost
183
10k
Faster Mobile Websites
deanohume
310
31k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
190
Crafting Experiences
bethany
1
180
How GitHub (no longer) Works
holman
316
150k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
340
Transcript
No-SQL & mongoDB @liushuaikobe
What’s No-SQL?
Strozzi NoSQL (1998) RDBMS operator-stream paradigm(PIPE) a set of shell
routines that access normal files of the OS Carlo Strozzi
No-SQL == Not Have SQL
No-SQL == Not Have Structured Query Language SQL
…departs from the relational model altogether; it should therefore have
been called more appropriately 'NoREL'.
A meetup@San Francisco ——"open source, distributed, non relational databases” Organized
by Johan Oskarsson(Last.fm) Google's Bigtable & Amazon's Dynamo Eric Evans(then in RackSpace) reintroduced “No-SQL”
No-SQL == non-relational
Eric Evans My regret however isn't about what the name
says, it's about what it doesn't.
no:sql(east) conference@ Atlanta
> select fun, profit > from real_world > where relational=false;
No-SQL == Not Only SQL
CAP Theorem (Eric Brewer) Consistency Partition Tolerance Availability
BASE neutral A C I D PH S B E
A
asically vailable ventually Consistent oft-state S B E A
Why No-SQL? Traditional RDBMS —— CA Do We really need
Transaction? Horizontal-Scale
List Of NoSQL DBs Wide Column Store Document Store Key
Value / Tuple Store Graph Databases …
mongoDB
10gen established in 2007, @New York originally aimed to build
a Paas architecture released MongoDB, maintaining it
MongoDB Inc. (2013.08) established in 2007, @New York originally aimed
to build a Paas architecture released MongoDB, maintaining it
MongoDB document-oriented(BSON) Storage schema-free high-performance build for scale
Document
Data-Model Design References Embedded
Reference
Embedded
which way is better? No Define answer.
A Instance
{ "actor_attributes" : {
"name" : "Dan Tao", "company" : "Google", ... "email" : "
[email protected]
" }, "repository" : { "fork" : false, "watchers" : 0, "description" : "Oh, nothing, nothing", ... "id" : 13155632, "name" : "breakneck" }, "url" : "https://github.com/dtao/breakneck/compare/dccee09561...38984e5dce", "created_at" : "2013-‐09-‐28T18:00:06-‐07:00", "actor" : "dtao", "public" : true, "type" : "PushEvent", "payload" : { "shas" : [ [ ... ] ], "head" : "38984e5dce1a21b778d4c26bde493270b4625662", "ref" : "refs/heads/master", "size" : 1 } }
RDBMS——ERD Actor Repo Event 1..n 1..1 1..n 1..1
While in mongo… { "_id" : ObjectId("5287d3e947e36f2280584179") "actor_attributes"
: { "name" : "Dan Tao", "company" : "Google", ... "email" : "
[email protected]
" } } { "_id" : ObjectId("5287d3e947e36f22805844b3") "actor_attributes" : { "name" : "Dan Tao", "company" : "Google", ... "email" : "
[email protected]
" } } { "_id" : ObjectId("5287d3e947e36f22805844c9") "actor_attributes" : { "name" : "Dan Tao", "company" : "Google", ... "email" : "
[email protected]
" } } Actor
{ "_id" : ObjectId("5287d41647e36f2280586033"), “repository" : {
"fork" : false, ... "name" : "breakneck" }, "actor" : "Sam", … "payload" : { "shas" : [ [ ... ] ], "ref" : "refs/heads/master", "size" : 1 } } Event { "_id" : ObjectId("5287d41647e36f2280586035"), “repository" : { "fork" : false, ... "name" : "breakneck" }, "actor" : "Tom", … "payload" : { "shas" : [ [ ... ] ], "ref" : "refs/heads/master", "size" : 1 } } { "_id" : ObjectId("5287d41647e36f2280586537"), “repository" : { "fork" : false, ... "name" : "breakneck" }, "actor" : "Mike", … "payload" : { "shas" : [ [ ... ] ], "ref" : "refs/heads/master", "size" : 1 } }
Summary No-SQL => No? No! Why No-SQL? CAP & BASE
MongoDB (Inc.) Schema design
How to Choose? Depending on your needs…
Thanks @liushuaikobe
Q & A http:/ /www.girlsgonestrong.com/video-qa/