3. The Relation Model
•
•
•
•
•
•
•
•
•
Simplicity and Elegance
Well Understood
Very Powerful Abstraction
Solve Many Storage Problem (Persistent Data)
Concurrency
Integration
A Mostly Standard Model
…
But It also has its Limitation…
20. Common Features of NoSQL Databases
•
Designing Aggregations
•
•
Materializing Summary Data
•
•
Sharding
Improving Consistency
•
•
Clusters
Improving Scalability and Reducing Network Latency
•
•
Map/Reduce
Implementing High Availability
•
•
An aggregate in a NoSQL database is similar to a row in a table in a
relational database
Data Versioning
Schemas and Non-Uniformity
23. LiveJournal’s Memcache
•
Driver
•
•
Need to increase performance of database queries.
Finding
•
By using hashing and caching, data in RAM can be shared.
This cuts down the number of read requests sent to the
database, increasing performance.
26. Google’s MapReduce
•
Driver
•
Need to index billions of web pages for search using low-cost
hardware.
• Finding
• By using parallel processing, indexing billions of web pages
can be done quickly with a large number of commodity
processors.
27. Google BigTable
•
Driver
•
Need to flexibly store tabular data in a distributed system.
• Finding
• By using a sparse matrix approach, users can think of all
data as being stored in a single table with billions of rows
and millions of columns without the need for up-front data
modeling.
29. Amazon’s Dynamo
•
Driver
•
Need to accept a web order 24 hours a day, 7 days a week.
• Finding
•
A key-value store with a simple interface can be replicated
even when there are large volumes of data to be processed.
31. Key Points
•
•
•
•
Relational databases have been a successful technology for twenty
years, providing persistence, concurrency control, and an integration
mechanism.
Application developers have been frustrated with the impedance
mismatch between the relational model and the in-memory data
structures.
There is a movement away from using databases as integration points
towards encapsulating databases within applications and integrating
through services.
The most important result of the rise of NoSQL is Polyglot Persistence.
32. Key Points
•
•
•
The vital factor for a change in data storage was the need to support
large volumes of data by running on clusters. Relational databases are
not designed to run efficiently on clusters.
NoSQL is an accidental neologism. There is no prescriptive
definition—all you can make is an observation of common
characteristics.
The common characteristics of NoSQL databases are
•
•
•
•
•
Not using the relational model
Running well on clusters
Open Source
Built for the 21st century web estates
Schemaless