NoSQL Intro
NoSQL Intro
NoSQL Intro
What is NoSQL?
Class of database management systems (DBMS)
"Not only SQL"
Database Scaling
RDBMS are "scaled up" by adding hardware
processing power
NoSQL is "scaled out" by spreading the load
Partitioning (sharding) / replication
Users
A-K
Users
L-O
App
App
Load
balancer
Load
balancer
Users
P-S
Users
T-Z
Users
A-Z
Users
A-Z
Users
A-Z
Users
A-Z
Relational DB Scaling
At certain point relational database won't scale
NoSQL DB Scaling
Scaling horizontally is possible with NoSQL
Scaling up / down is easy
Supports rapid
production-ready
prototyping
Better handling of
traffic spikes
History of NoSQL
http://blog.nahurst.com/visual-guide-to-nosql-systems
ACID vs BASE
Scalability and better performance of NoSQL is
achieved by sacrificing ACID compatibility.
Atomic, Consistent, Isolated, Durable
NoSQL is having BASE compatibility instead.
Basically Available, Soft state,
Eventual consistency
Key-Value Stores
Column Family Stores
Document Databases
Graph Databases
In addition: Object and RDF databases as
well as Tuple stores
Key-Value Stores
Dynamo, Voldemort, Rhino DHT ...
Chang et al. "Bigtable: A Distributed Storage System for Structured Data", 2006
Name
Gender
Phone
25
Jim
123456
Age
Name
Gender
Phone
22
Jill
654321
jim_87
jill_90
Cassandra example
Graph Databases
Neo4J, FlockDB, GraphBase, InfoGrip, ...
Graph Databases are built with nodes,
relationships between nodes (edges) and the
properties of nodes.
Nodes represent entities (e.g. "Bob" or "Alice").
Similar in nature to the objects as in object-oriented
programming.
Properties are pertinent information related to nodes (e.
g. age: 18).
Edges connect nodes to nodes or nodes to properties.
Represent the relationship between the two.
Hosted services
Freebase
OpenLink Virtuoso
Datastore on Google Appengine
Amazon DynamoDB
Cloudant Data Layer (CouchDB)
...
Technologies / misc
MapReduce
Fault tolerance
Taxonomy
Challenges / Limitations
Tools
Use Cases
Distributed databases
Parallel systems
...