Difference between revisions of "NoSQL"

From TedYunWiki
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 ===
  
;Interface: extremely simple
+
* Data model: ''(key, value)'' pairs
;# Data model: ''(key, value)'' pairs
+
* Interface: extremely simple
;# Operations: '''Insert'''(key, value), '''Fetch'''(key), '''Update'''(key), '''Delete'''(key)
+
*# 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
+
*Implementation: efficiency, scalability, fault-tolerance
;* Records distributed to nodes based on key
+
** Records distributed to nodes based on key
;* Replication
+
** Replication
;* Single-record trasactions, "eventual consistency".
+
** 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
    1. Operations: Insert(key, value), Fetch(key), Update(key), Delete(key)
    2. Some allow (non-uniform) columns within value.
    3. 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