An
Introduction
to NoSQL
Alternative ways to think about databases
Created by @JoelMcCracken
Goals
- What is NoSQL?
- Why should we care about it?
What's in a name?
"Anything not SQL or a Relational Database"
(It is a terrible name)
SQL Success
Incredibly powerful and successful
De facto standard for databases
The Relational Model
Organize all the data into tables
Data references other data with keys
Weaknesses
Speed/Scalability
A table may be unnatural
Single point of authority
Key/Value
- Values cannot be queried against
- Very simple and fast
- (not popular, but one of the oldest)
Document
- Data stored in documents
- Data have a format that the database uses to answer
questions
- Supports queries that are similar to SQL
- Fewer guarantees means less work
Document Database: Example
A web application that aggregates all messages its users receive:
- Messages of different types: Texts, Emails, Facebook, Twitter.
- Massive amounts of data.
Data Structure
Data storage with specific guarantees
Types:
- Lists
- Sets
- Sorted Sets
- Hashes
Choice appropriate for individual data
Data Structure Database: Example
A platform for analyzing the visitors to your website:
- List: every visit to site
- Set: every address to have visited your site
- Sorted Set: Same as above, but sorted by time visited
- Hash: the full history of every visitor to your site,
organized by visitor address
Graph Databases
Data represented as:
- Nodes: Discrete points of data
- Edges: The connections between nodes
Data may be kept about both nodes and edges
Ideal for data where the relationships between
Ideal for data where the relationships between data are just as
important as the data points themselves
Graph Databases: Examples
- Facebook & social data
- Recommendation engines
- Mapping software