Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

NoSQL Databases

No description
by

Radu Chilom

on 14 March 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of NoSQL Databases

Means : Not Only SQL NoSQL Databases Why NoSQL? NoSQL Databases NoSQL Atomicity
Consistency
Isolation
Durability In order to deliver scalability : Schema free Goal : not to reject SQL but, rather to compensate for the technical limitations Started as a solution to a modern problem : - unprecedented transaction volumes
- expectations of low-latency access to massive
datasets
- frequent schema changes SCALABILITY SQL Databases Scalability is given by "Bigger Servers" "Relax" or redefine ACID Consistency changed to something called
“eventual consistency". “CAP theorem ” In a distributed system you can’t continually maintain perfect consistency, availability, and partition tolerance simultaneously. You must make tradeoffs among them. The basics of any transaction : is Types : Key-Value Store Document Store : Graph - CouchDB(JSON), MongoDB(BSON) - Amazon DynamoDB - DEX, InfiniteGraph Column Family - Apache Casandra NoSQL Facts - No concept of tables or rows - Do not uses/allows JOINS - Cannot give full ACID guarantees - Schema free Simply add more commodity web servers behind a load balancer to support more users. - Uses Map Reduce framework - Provides API for most programming languages UnQL Unstructured Query Language standardized interface to this data,
an unstructured equivalent to SQL MongoDB Data Types Strings
Arrays
Embedded Documents
Dates
Regular Expressions
Booleans
Numbers Binary Data
MongoDB::OID
MongoDB::Code
MongoDB::MinKey
MongoDB::MaxKey
MongoDB::Timestamp Mongo DB - A top NoSQL Database - Provides very complete API for Java,C#,PHP,etc - Supports Map Reduce functions - Syntax easy to understand MongoDB Advices NoSQL solutions will work alongside SQL solutions. Each has its strengths and weaknesses Neither will entirely displace the other Conclusions NoSQL is good for : Elastic scaling Big data Flexible data models Economics -> Never decide on a solution without
having first put that product through
rigorous testing. -> Spend some time understanding particular
views on eventual consistency, durability, CAP,
and replication, and be certain you understand
how those tradeoffs will impact your design Bibliography http://static.usenix.org/publications/login/2011-10/openpdfs/Burd.pdf http://www.techrepublic.com/blog/10things/10-things-you-should-know-about-nosql-databases/1772 http://en.wikipedia.org/wiki/NoSQL Thank you for your time. Questions ? NoSQL Rigid Schema "Ideal" scalability Radu CHILOM Structure : - database - collections - document - value
- embedded document > db.ces.insert({"name" : "Radu" , "lastName" : "Chilom"});
> db.ces.insert({"name" : "George" , "lastName" : "Popescu"}); > db.ces.find(); { "_id" : ObjectId("5141c37474b88cf06950f00f"),
"name" : "Radu", "lastName" : "Chilom" }
{ "_id" : ObjectId("5141c38274b88cf06950f010"),
"name" : "George", "lastName" : "Popescu" } > db.ces.insert({"name" : "George" , "lastName" : "Popescu", "grade" : 8}); > db.ces.find(); { "_id" : ObjectId("5141c37474b88cf06950f00f"),
"name" : "Radu", "lastName" : "Chilom" }
{ "_id" : ObjectId("5141c38274b88cf06950f010"),
"name" : "George", "lastName" : "Popescu" }
{ "_id" : ObjectId("5141c3a774b88cf06950f011"),
"name" : "George", "lastName" : "Popescu", "grade" : 8 } > db.ces.find({}, {"grade" : true});
{ "_id" : ObjectId("5141c37474b88cf06950f00f") }
{ "_id" : ObjectId("5141c38274b88cf06950f010") }
{ "_id" : ObjectId("5141c3a774b88cf06950f011"), "grade" : 8 }
Full transcript