NoSQL
Jump to navigation
Jump to search
Key-Value Stores
- Data model: (key, value) pairs
- Interface: extremely simple
- Operations: Insert(key, value), Fetch(key), Update(key), Delete(key)
- Some allow (non-uniform) columns within value.
- Some allow Fetch on range of keys.
- Implementation: efficiency, scalability, fault-tolerance
- Records distributed to nodes based on key
- Replication
- Single-record transactions, "eventual consistency".
- Example Systems (as of Nov 2011)
- Google BigTable
- Amazon Dynamo,
- Cassandra
- Voldemort
- HBase
Document Stores
- Data model: (key, document) pairs
- document: JSON, XML, other semistructured formats.
- Interface
- Basic operations: Insert(key, value), Fetch(key), Update(key), Delete(key)
- Also Fetch based on document contents (very system-/format-specific as of Nov 2011)
- Example Systems (as of Nov 2011)
- CouchDB
- MongoDB
- SimpleDB
Graph Database Systems
- Data model: nodes and edges
- Nodes may have properties (including ID)
- Edges may have labels or roles
- Interface
- Interfaces and query languages vary
- Single-step vs "path expressions" vs full recursion
- Example Systems (as of Nov 2011)
- Neo4j
- FlockDB
- Pregel
- RDF "triple stores" can map to graph databasees