8. Forcing Affecting Traditional
RDBMS
Agile Development
• Iterative
• Continuous
Data Volume,
Type & Use
• Trillions of records
• 100’s of millions of
queries per second
• Real-Time Analytics
• Unstructured / semi-
structured
New Hardware Architectures
• Commodity servers
• Cloud Computing
• Horizontal Scaling
Wednesday, 24 October 12
9. NoSQL Really Means...
non-relational, next-generation
operational datastores and databases
Wednesday, 24 October 12
10. NoSQL Really Means...
non-relational, next-generation
operational datastores and databases
... focus on the “non-relational” bit.
Wednesday, 24 October 12
14. Which one should I use for my use
case?
Wednesday, 24 October 12
15. • memcached
scalability & performance
•key/value
• RDBMS
depth of functionality
Wednesday, 24 October 12
16. Why use MongoDB?
• Easy to start
• Open source
• Drivers in every major language
• Easy to develop
• Schemaless document model
• Flexible query language
• Secondary indexes
• Easy to scale
• Built in sharding
• Asynchronous replication
Wednesday, 24 October 12
17. Terminology
RDBMS MongoDB
Table Collection
Row(s) JSON Document
Index Index
Join Embedding & Linking
Partition Shard
Partition Key Shard Key
Wednesday, 24 October 12
19. Application view of the data
{ _id : ObjectId("4c4ba5c0672c685e5e8aabf3"),
author : "Hergé",
date : "Sat Jul 24 2010 19:47:11 GMT-0700 (PDT)",
text : "Destination Moon",
tags : [ "comic", "adventure" ],
comments : [
{
author : "Kyle",
date : "Sat Jul 24 2010 20:51:03 GMT-0700 (PDT)",
text : "great book"
}
],
comments_count: 1
}
Wednesday, 24 October 12
20. Schemas in MongoDB
Design documents that simply map to
your application
post = {author: "Hergé",
date: new Date(),
text: "Destination Moon",
tags: ["comic", "adventure"]}
> db.posts.save(post)
Wednesday, 24 October 12