SlideShare a Scribd company logo
SQL vs. NoSQL
Data in the world of social media
            Jon Limjap
          Microsoft MVP for C#
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
Why not SQL?
Why not SQL?
• Internet scale
• 100s of millions of concurrent users
• Massive data collections – Terabytes to
  Petabytes of data
• 24/7 across the globe
Why not SQL?
NoSQL doesn’t mean no data :p
• It’s not Anti SQL or absolutely no SQL
• N(ot) O(nly) SQL
• Non-relational Databases
What is NoSQL good for?
• High Availability
• High Performance
• Horizontal Scalability
Types of NoSQL Data Stores
                   Document
                                      Key-Value
Column Sets         Oriented
                                        Store
                     (JSON)


   XML              Graph              BLOBs



          Object               Etc…
Some NoSQL Data Stores
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 }
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 }
db.things.find({name: "mongo"})

{ "_id" :
ObjectId("4c2209f9f3924d31102bd84a"), "nam
e" : "mongo" }
What’s the big deal?
ACID vs. BASE
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
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
Where shouldn’t I use NoSQL?
Conclusion
• SQL is great when you need ACID
• NoSQL is great when you need BASE
• Choose the right tool for the right job
Thank You!



• Blog: http://dotnet.kapenilattex.com
• Twitter: @lattex
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
Ad

More Related Content

What's hot (20)

SDEC2011 NoSQL Data modelling
SDEC2011 NoSQL Data modellingSDEC2011 NoSQL Data modelling
SDEC2011 NoSQL Data modelling
Korea Sdec
 
Introduction to NoSQL Databases
Introduction to NoSQL DatabasesIntroduction to NoSQL Databases
Introduction to NoSQL Databases
Derek Stainer
 
Data Modeling for NoSQL
Data Modeling for NoSQLData Modeling for NoSQL
Data Modeling for NoSQL
Tony Tam
 
Azure DocumentDB 101
Azure DocumentDB 101Azure DocumentDB 101
Azure DocumentDB 101
Ike Ellis
 
My sql vs mongo
My sql vs mongoMy sql vs mongo
My sql vs mongo
krishnapriya Tadepalli
 
NoSql Data Management
NoSql Data ManagementNoSql Data Management
NoSql Data Management
sameerfaizan
 
NoSQL
NoSQLNoSQL
NoSQL
Radu Potop
 
NoSQL Databases
NoSQL DatabasesNoSQL Databases
NoSQL Databases
BADR
 
Nonrelational Databases
Nonrelational DatabasesNonrelational Databases
Nonrelational Databases
Udi Bauman
 
Non relational databases-no sql
Non relational databases-no sqlNon relational databases-no sql
Non relational databases-no sql
Ram kumar
 
What is NoSQL and CAP Theorem
What is NoSQL and CAP TheoremWhat is NoSQL and CAP Theorem
What is NoSQL and CAP Theorem
Rahul Jain
 
NoSQL
NoSQLNoSQL
NoSQL
Radu Vunvulea
 
Relational vs. Non-Relational
Relational vs. Non-RelationalRelational vs. Non-Relational
Relational vs. Non-Relational
PostgreSQL Experts, Inc.
 
Selecting best NoSQL
Selecting best NoSQL Selecting best NoSQL
Selecting best NoSQL
Mohammed Fazuluddin
 
Rdbms vs. no sql
Rdbms vs. no sqlRdbms vs. no sql
Rdbms vs. no sql
Amar Jagdale
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
Dimitar Danailov
 
Sql vs nosql
Sql vs nosqlSql vs nosql
Sql vs nosql
Nick Verschueren
 
No SQL- The Future Of Data Storage
No SQL- The Future Of Data StorageNo SQL- The Future Of Data Storage
No SQL- The Future Of Data Storage
Bethmi Gunasekara
 
RDBMS vs NoSQL
RDBMS vs NoSQLRDBMS vs NoSQL
RDBMS vs NoSQL
Murat Çakal
 
Nosql database presentation
Nosql database  presentationNosql database  presentation
Nosql database presentation
musaab fathi
 
SDEC2011 NoSQL Data modelling
SDEC2011 NoSQL Data modellingSDEC2011 NoSQL Data modelling
SDEC2011 NoSQL Data modelling
Korea Sdec
 
Introduction to NoSQL Databases
Introduction to NoSQL DatabasesIntroduction to NoSQL Databases
Introduction to NoSQL Databases
Derek Stainer
 
Data Modeling for NoSQL
Data Modeling for NoSQLData Modeling for NoSQL
Data Modeling for NoSQL
Tony Tam
 
Azure DocumentDB 101
Azure DocumentDB 101Azure DocumentDB 101
Azure DocumentDB 101
Ike Ellis
 
NoSql Data Management
NoSql Data ManagementNoSql Data Management
NoSql Data Management
sameerfaizan
 
NoSQL Databases
NoSQL DatabasesNoSQL Databases
NoSQL Databases
BADR
 
Nonrelational Databases
Nonrelational DatabasesNonrelational Databases
Nonrelational Databases
Udi Bauman
 
Non relational databases-no sql
Non relational databases-no sqlNon relational databases-no sql
Non relational databases-no sql
Ram kumar
 
What is NoSQL and CAP Theorem
What is NoSQL and CAP TheoremWhat is NoSQL and CAP Theorem
What is NoSQL and CAP Theorem
Rahul Jain
 
No SQL- The Future Of Data Storage
No SQL- The Future Of Data StorageNo SQL- The Future Of Data Storage
No SQL- The Future Of Data Storage
Bethmi Gunasekara
 
Nosql database presentation
Nosql database  presentationNosql database  presentation
Nosql database presentation
musaab fathi
 

Similar to SQL vs NoSQL (20)

Introduction to Graph databases and Neo4j (by Stefan Armbruster)
Introduction to Graph databases and Neo4j (by Stefan Armbruster)Introduction to Graph databases and Neo4j (by Stefan Armbruster)
Introduction to Graph databases and Neo4j (by Stefan Armbruster)
barcelonajug
 
Combine Spring Data Neo4j and Spring Boot to quickl
Combine Spring Data Neo4j and Spring Boot to quicklCombine Spring Data Neo4j and Spring Boot to quickl
Combine Spring Data Neo4j and Spring Boot to quickl
Neo4j
 
Blazing Fast Analytics with MongoDB & Spark
Blazing Fast Analytics with MongoDB & SparkBlazing Fast Analytics with MongoDB & Spark
Blazing Fast Analytics with MongoDB & Spark
MongoDB
 
Semi Formal Model for Document Oriented Databases
Semi Formal Model for Document Oriented DatabasesSemi Formal Model for Document Oriented Databases
Semi Formal Model for Document Oriented Databases
Daniel Coupal
 
MongoDB for Coder Training (Coding Serbia 2013)
MongoDB for Coder Training (Coding Serbia 2013)MongoDB for Coder Training (Coding Serbia 2013)
MongoDB for Coder Training (Coding Serbia 2013)
Uwe Printz
 
Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...
Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...
Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...
NoSQLmatters
 
Mongodb intro
Mongodb introMongodb intro
Mongodb intro
christkv
 
Data Modelling Zone 2019 - data modelling and JSON
Data Modelling Zone 2019 - data modelling and JSONData Modelling Zone 2019 - data modelling and JSON
Data Modelling Zone 2019 - data modelling and JSON
George McGeachie
 
Managing Social Content with MongoDB
Managing Social Content with MongoDBManaging Social Content with MongoDB
Managing Social Content with MongoDB
MongoDB
 
NoSQL store everyone ignored - Postgres Conf 2021
NoSQL store everyone ignored - Postgres Conf 2021NoSQL store everyone ignored - Postgres Conf 2021
NoSQL store everyone ignored - Postgres Conf 2021
Zohaib Hassan
 
Building Highly Flexible, High Performance Query Engines
Building Highly Flexible, High Performance Query EnginesBuilding Highly Flexible, High Performance Query Engines
Building Highly Flexible, High Performance Query Engines
MapR Technologies
 
Crafting Evolvable Api Responses
Crafting Evolvable Api ResponsesCrafting Evolvable Api Responses
Crafting Evolvable Api Responses
darrelmiller71
 
JSON-LD and SHACL for Knowledge Graphs
JSON-LD and SHACL for Knowledge GraphsJSON-LD and SHACL for Knowledge Graphs
JSON-LD and SHACL for Knowledge Graphs
Franz Inc. - AllegroGraph
 
Hands On Spring Data
Hands On Spring DataHands On Spring Data
Hands On Spring Data
Eric Bottard
 
MongoDB
MongoDBMongoDB
MongoDB
Anthony Slabinck
 
Big data visualization frameworks and applications at Kitware
Big data visualization frameworks and applications at KitwareBig data visualization frameworks and applications at Kitware
Big data visualization frameworks and applications at Kitware
bigdataviz_bay
 
Building Your First MongoDB Application
Building Your First MongoDB ApplicationBuilding Your First MongoDB Application
Building Your First MongoDB Application
Rick Copeland
 
OSCON 2011 CouchApps
OSCON 2011 CouchAppsOSCON 2011 CouchApps
OSCON 2011 CouchApps
Bradley Holt
 
A general introduction to Spring Data / Neo4J
A general introduction to Spring Data / Neo4JA general introduction to Spring Data / Neo4J
A general introduction to Spring Data / Neo4J
Florent Biville
 
YQL: Select * from Internet
YQL: Select * from InternetYQL: Select * from Internet
YQL: Select * from Internet
drgath
 
Introduction to Graph databases and Neo4j (by Stefan Armbruster)
Introduction to Graph databases and Neo4j (by Stefan Armbruster)Introduction to Graph databases and Neo4j (by Stefan Armbruster)
Introduction to Graph databases and Neo4j (by Stefan Armbruster)
barcelonajug
 
Combine Spring Data Neo4j and Spring Boot to quickl
Combine Spring Data Neo4j and Spring Boot to quicklCombine Spring Data Neo4j and Spring Boot to quickl
Combine Spring Data Neo4j and Spring Boot to quickl
Neo4j
 
Blazing Fast Analytics with MongoDB & Spark
Blazing Fast Analytics with MongoDB & SparkBlazing Fast Analytics with MongoDB & Spark
Blazing Fast Analytics with MongoDB & Spark
MongoDB
 
Semi Formal Model for Document Oriented Databases
Semi Formal Model for Document Oriented DatabasesSemi Formal Model for Document Oriented Databases
Semi Formal Model for Document Oriented Databases
Daniel Coupal
 
MongoDB for Coder Training (Coding Serbia 2013)
MongoDB for Coder Training (Coding Serbia 2013)MongoDB for Coder Training (Coding Serbia 2013)
MongoDB for Coder Training (Coding Serbia 2013)
Uwe Printz
 
Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...
Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...
Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...
NoSQLmatters
 
Mongodb intro
Mongodb introMongodb intro
Mongodb intro
christkv
 
Data Modelling Zone 2019 - data modelling and JSON
Data Modelling Zone 2019 - data modelling and JSONData Modelling Zone 2019 - data modelling and JSON
Data Modelling Zone 2019 - data modelling and JSON
George McGeachie
 
Managing Social Content with MongoDB
Managing Social Content with MongoDBManaging Social Content with MongoDB
Managing Social Content with MongoDB
MongoDB
 
NoSQL store everyone ignored - Postgres Conf 2021
NoSQL store everyone ignored - Postgres Conf 2021NoSQL store everyone ignored - Postgres Conf 2021
NoSQL store everyone ignored - Postgres Conf 2021
Zohaib Hassan
 
Building Highly Flexible, High Performance Query Engines
Building Highly Flexible, High Performance Query EnginesBuilding Highly Flexible, High Performance Query Engines
Building Highly Flexible, High Performance Query Engines
MapR Technologies
 
Crafting Evolvable Api Responses
Crafting Evolvable Api ResponsesCrafting Evolvable Api Responses
Crafting Evolvable Api Responses
darrelmiller71
 
Hands On Spring Data
Hands On Spring DataHands On Spring Data
Hands On Spring Data
Eric Bottard
 
Big data visualization frameworks and applications at Kitware
Big data visualization frameworks and applications at KitwareBig data visualization frameworks and applications at Kitware
Big data visualization frameworks and applications at Kitware
bigdataviz_bay
 
Building Your First MongoDB Application
Building Your First MongoDB ApplicationBuilding Your First MongoDB Application
Building Your First MongoDB Application
Rick Copeland
 
OSCON 2011 CouchApps
OSCON 2011 CouchAppsOSCON 2011 CouchApps
OSCON 2011 CouchApps
Bradley Holt
 
A general introduction to Spring Data / Neo4J
A general introduction to Spring Data / Neo4JA general introduction to Spring Data / Neo4J
A general introduction to Spring Data / Neo4J
Florent Biville
 
YQL: Select * from Internet
YQL: Select * from InternetYQL: Select * from Internet
YQL: Select * from Internet
drgath
 
Ad

More from Jacinto Limjap (11)

Maintainable UI Tests with Selenium and C#
Maintainable UI Tests with Selenium and C#Maintainable UI Tests with Selenium and C#
Maintainable UI Tests with Selenium and C#
Jacinto Limjap
 
Refactoring to Microservices
Refactoring to MicroservicesRefactoring to Microservices
Refactoring to Microservices
Jacinto Limjap
 
Donetconf2016: The Future of C#
Donetconf2016: The Future of C#Donetconf2016: The Future of C#
Donetconf2016: The Future of C#
Jacinto Limjap
 
C# and the Evolution of a Programming Language
C# and the Evolution of a Programming LanguageC# and the Evolution of a Programming Language
C# and the Evolution of a Programming Language
Jacinto Limjap
 
Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Jacinto Limjap
 
N-tier and oop - moving across technologies
N-tier and oop - moving across technologiesN-tier and oop - moving across technologies
N-tier and oop - moving across technologies
Jacinto Limjap
 
MSDN Ramp-Up Part 3: Business logic
MSDN Ramp-Up Part 3: Business logicMSDN Ramp-Up Part 3: Business logic
MSDN Ramp-Up Part 3: Business logic
Jacinto Limjap
 
Developing windows phone 7 applications
Developing windows phone 7 applicationsDeveloping windows phone 7 applications
Developing windows phone 7 applications
Jacinto Limjap
 
Automated Unit Testing in Silverlight for Windows Phone 7
Automated Unit Testing in Silverlight for Windows Phone 7Automated Unit Testing in Silverlight for Windows Phone 7
Automated Unit Testing in Silverlight for Windows Phone 7
Jacinto Limjap
 
Dynamics & Object Runtime Composition with C# 4.0
Dynamics & Object Runtime Composition with C# 4.0Dynamics & Object Runtime Composition with C# 4.0
Dynamics & Object Runtime Composition with C# 4.0
Jacinto Limjap
 
Three Developer Abilities They Dont Teach In College
Three Developer  Abilities They Dont Teach In CollegeThree Developer  Abilities They Dont Teach In College
Three Developer Abilities They Dont Teach In College
Jacinto Limjap
 
Maintainable UI Tests with Selenium and C#
Maintainable UI Tests with Selenium and C#Maintainable UI Tests with Selenium and C#
Maintainable UI Tests with Selenium and C#
Jacinto Limjap
 
Refactoring to Microservices
Refactoring to MicroservicesRefactoring to Microservices
Refactoring to Microservices
Jacinto Limjap
 
Donetconf2016: The Future of C#
Donetconf2016: The Future of C#Donetconf2016: The Future of C#
Donetconf2016: The Future of C#
Jacinto Limjap
 
C# and the Evolution of a Programming Language
C# and the Evolution of a Programming LanguageC# and the Evolution of a Programming Language
C# and the Evolution of a Programming Language
Jacinto Limjap
 
Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Jacinto Limjap
 
N-tier and oop - moving across technologies
N-tier and oop - moving across technologiesN-tier and oop - moving across technologies
N-tier and oop - moving across technologies
Jacinto Limjap
 
MSDN Ramp-Up Part 3: Business logic
MSDN Ramp-Up Part 3: Business logicMSDN Ramp-Up Part 3: Business logic
MSDN Ramp-Up Part 3: Business logic
Jacinto Limjap
 
Developing windows phone 7 applications
Developing windows phone 7 applicationsDeveloping windows phone 7 applications
Developing windows phone 7 applications
Jacinto Limjap
 
Automated Unit Testing in Silverlight for Windows Phone 7
Automated Unit Testing in Silverlight for Windows Phone 7Automated Unit Testing in Silverlight for Windows Phone 7
Automated Unit Testing in Silverlight for Windows Phone 7
Jacinto Limjap
 
Dynamics & Object Runtime Composition with C# 4.0
Dynamics & Object Runtime Composition with C# 4.0Dynamics & Object Runtime Composition with C# 4.0
Dynamics & Object Runtime Composition with C# 4.0
Jacinto Limjap
 
Three Developer Abilities They Dont Teach In College
Three Developer  Abilities They Dont Teach In CollegeThree Developer  Abilities They Dont Teach In College
Three Developer Abilities They Dont Teach In College
Jacinto Limjap
 
Ad

SQL vs NoSQL

  • 1. SQL vs. NoSQL Data in the world of social media Jon Limjap Microsoft MVP for C#
  • 2. 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
  • 4. Why not SQL? • Internet scale • 100s of millions of concurrent users • Massive data collections – Terabytes to Petabytes of data • 24/7 across the globe
  • 6. NoSQL doesn’t mean no data :p • It’s not Anti SQL or absolutely no SQL • N(ot) O(nly) SQL • Non-relational Databases
  • 7. What is NoSQL good for? • High Availability • High Performance • Horizontal Scalability
  • 8. Types of NoSQL Data Stores Document Key-Value Column Sets Oriented Store (JSON) XML Graph BLOBs Object Etc…
  • 10. 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 }
  • 11. 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 }
  • 12. db.things.find({name: "mongo"}) { "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "nam e" : "mongo" }
  • 15. 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
  • 16. 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
  • 17. Where shouldn’t I use NoSQL?
  • 18. Conclusion • SQL is great when you need ACID • NoSQL is great when you need BASE • Choose the right tool for the right job
  • 19. Thank You! • Blog: http://dotnet.kapenilattex.com • Twitter: @lattex
  • 20. 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