Top Banner
SQL vs. NoSQL Data in the world of social media Jon Limjap Microsoft MVP for C#
20

SQL vs NoSQL

Jan 20, 2015

Download

Documents

Jon Limjap

A short presentation describing the difference between SQL and NoSQL
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SQL vs NoSQL

SQL vs. NoSQLData in the world of social media

Jon LimjapMicrosoft MVP for C#

Page 2: SQL vs NoSQL

Who am I?

• I’m Jon – Blog: http://dotnet.kapenilattex.com– Twitter: @lattex

• Does anybody remember…• I’m a developer, not a DBA• I’ve worked on mainframe, desktop, web, and

mobile• I’m a member of MSDEV.PH / PHISSUG /

DevCon

Page 3: SQL vs NoSQL

Why not SQL?

Page 4: SQL vs NoSQL

Why not SQL?

• Internet scale• 100s of millions of concurrent users• Massive data collections – Terabytes to

Petabytes of data• 24/7 across the globe

Page 5: SQL vs NoSQL

Why not SQL?

Page 6: SQL vs NoSQL

NoSQL doesn’t mean no data :p

• It’s not Anti SQL or absolutely no SQL• N(ot) O(nly) SQL• Non-relational Databases

Page 7: SQL vs NoSQL

What is NoSQL good for?

• High Availability• High Performance• Horizontal Scalability

Page 8: SQL vs NoSQL

Types of NoSQL Data Stores

Column SetsDocument Oriented

(JSON)

Key-Value Store

XML Graph BLOBs

Object Etc…

Page 9: SQL vs NoSQL

Some NoSQL Data Stores

Page 10: SQL vs NoSQL

j = { name : "mongo" }k = { x : 3 }

db.things.insert( j )db.things.insert( k )

db.things.find()

{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" }{ "_id" : ObjectId("4c2209fef3924d31102bd84b"), "x" : 3 }

Page 11: SQL vs NoSQL

for (var i = 1; i <= 10; i++) db.things.insert( { x : 4 , j : i } )

db.things.find()

{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" }{ "_id" : ObjectId("4c2209fef3924d31102bd84b"), "x" : 3 }{ "_id" : ObjectId("4c220a42f3924d31102bd856"), "x" : 4, "j" : 1 }{ "_id" : ObjectId("4c220a42f3924d31102bd857"), "x" : 4, "j" : 2 }{ "_id" : ObjectId("4c220a42f3924d31102bd858"), "x" : 4, "j" : 3 }{ "_id" : ObjectId("4c220a42f3924d31102bd859"), "x" : 4, "j" : 4 }{ "_id" : ObjectId("4c220a42f3924d31102bd85a"), "x" : 4, "j" : 5 }{ "_id" : ObjectId("4c220a42f3924d31102bd85b"), "x" : 4, "j" : 6 }{ "_id" : ObjectId("4c220a42f3924d31102bd85c"), "x" : 4, "j" : 7 }{ "_id" : ObjectId("4c220a42f3924d31102bd85d"), "x" : 4, "j" : 8 }{ "_id" : ObjectId("4c220a42f3924d31102bd85e"), "x" : 4, "j" : 9 }{ "_id" : ObjectId("4c220a42f3924d31102bd85f"), "x" : 4, "j" : 10 }

Page 12: SQL vs NoSQL

db.things.find({name: "mongo"})

{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" }

Page 13: SQL vs NoSQL

What’s the big deal?

Page 14: SQL vs NoSQL

ACID vs. BASE

Page 15: SQL vs NoSQL

ACID vs. BASE

• ACID:– Atomic: Every transaction should succeed else

transaction is roled back– Consistent: Every transaction leaves database in a

valid (consistent) state– Isolation: Transactions don’t interfere with each

other– Durable: Completed transactions persist, even

when servers restart

Page 16: SQL vs NoSQL

ACID vs. BASE

• BASE– Basic Availability: The data store should be up all

of the time– Soft state: The data store can be cached

somewhere else if the data store is not available– Eventual consistency: The data store can have

conflicting transactions, but should eventually reach a valid state

Page 17: SQL vs NoSQL

Where shouldn’t I use NoSQL?

Page 18: SQL vs NoSQL

Conclusion

• SQL is great when you need ACID• NoSQL is great when you need BASE• Choose the right tool for the right job

Page 19: SQL vs NoSQL

Thank You!

• Internship/OJT? Email resume to: [email protected]

• Blog: http://dotnet.kapenilattex.com• Twitter: @lattex

Page 20: SQL vs NoSQL

References• John D. Cook – ACID versus BASE for database transactions

http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/

• Getting Started with MongoDB Development – http://docs.mongodb.org/manual/tutorial/getting-started/

• Michael Rys – SQL and NoSQL Are Two Sides of the Same Coin – http://www.slideshare.net/MichaelRys/sql-and-nosql-are-two-sides-of-the-same-coin-strata-2012

• Vamshi Krishna Reddy Vangapally – No sql databases -http://www.slideshare.net/vamshi4001/no-sql-databases

• Venu Anuganti – SQL, NoSQL, BigData in Data Architecture - http://www.slideshare.net/vanuganti/sql-nosql-bigdata-in-data-architecture