Difference between revisions of "NoSQL"
Jump to navigation
Jump to search
(Created page with "=== Key-Value Stores === ;Interface: extremely simple ;# Data model: ''(key, value)'' pairs ;# Operations: '''Insert'''(key, value), '''Fetch'''(key), '''Update'''(key), '''D...") |
m (Tedyun moved page NoSQL Systems to NoSQL) |
||
(11 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
=== Key-Value Stores === | === 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''' <u>within value</u>. | ||
+ | *# 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, <u>document</u>) pairs | ||
+ | ** <u>document</u>: 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) | ||
+ | |||
+ | * 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 databases |
Latest revision as of 18:31, 17 November 2013
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)
- 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 databases