No SQL
No SQL
Contents
1History
2Types and examples of NoSQL databases
o 2.1Key-value store
o 2.2Document store
o 2.3Graph
o 2.4Object database
o 2.5Tabular
o 2.6Tuple store
o 2.7Triple/quad store (RDF) database
o 2.8Hosted
o 2.9Multivalue databases
o 2.10Multimodel database
3Performance
4Handling relational data
o 4.1Multiple queries
o 4.2Caching, replication and non-normalized data
o 4.3Nesting data
5ACID and join support
6See also
7References
8Further reading
9External links
History[edit]
The term NoSQL was used by Carlo Strozzi in 1998 to name his lightweight Strozzi NoSQL
open-source relational database that did not expose the standard Structured Query
Language (SQL) interface, but was still relational. [15] His NoSQL RDBMS is distinct from the
circa-2009 general concept of NoSQL databases. Strozzi suggests that, because the
current NoSQL movement "departs from the relational model altogether, it should therefore
have been called more appropriately 'NoREL', [16] referring to 'No Relational'.
Johan Oskarsson, then a developer at Last.fm, reintroduced the term NoSQL in early 2009
when he organized an event to discuss "open source distributed, non relational
databases".[17] The name attempted to label the emergence of an increasing number of non-
relational, distributed data stores, including open source clones of Google's
Bigtable/MapReduce and Amazon's Dynamo. Most of the early NoSQL systems did not
attempt to provide atomicity, consistency, isolation and durability guarantees, contrary to
the prevailing practice among relational database systems. [18]
Key-Value
ArangoDB, Aerospike
Store
Key-Value
Store
Oracle NoSQL Database, Dynamo, Riak, Voldemort
(Eventually-
Consistent)
Key-Value
Store FoundationDB, InfinityDB, LMDB, MemcacheDB
(Ordered)
Data-
Structures Redis
Server
Object
Objectivity/DB, Perst, ZopeDB
Database
Wide Column
Amazon DynamoDB, Bigtable, Cassandra, Druid, HBase, Hypertable
Store
Native Multi-
model ArangoDB, Cosmos DB, OrientDB, MarkLogic
Database
Collections
Tags
Non-visible metadata
Directory hierarchies
Compared to relational databases, for example, collections could be considered analogous
to tables and documents analogous to records. But they are different: every record in a
table has the same sequence of fields, while documents in a collection may have fields that
are completely different.
Graph[edit]
Main article: Graph database
This kind of database is designed for data whose relations are well represented as
a graph consisting of elements interconnected with a finite number of relations between
them. The type of data could be social relations, public transport links, road maps, network
topologies, etc.
Graph databases and their query language
Multi-model document
MarkLogic Java, JavaScript, SPARQL, XQuery
database and RDF triple store
OpenLink
C++, C#, Java, SPARQL Middleware and database engine hybrid
Virtuoso
Object database[edit]
Main article: Object database
db4o
GemStone/S
InterSystems Caché
JADE
ObjectDatabase++
ObjectDB
Objectivity/DB
ObjectStore
ODABA
Perst
OpenLink Virtuoso
Versant Object Database
ZODB
Tabular [edit]
Apache Accumulo
Bigtable
Apache Hbase
Hypertable
Mnesia
OpenLink Virtuoso
Tuple store[edit]
Apache River
GigaSpaces
Tarantool
TIBCO ActiveSpaces
OpenLink Virtuoso
Triple/quad store (RDF) database[edit]
Main articles: Triplestore and Named graph
AllegroGraph
Apache JENA (It is a framework, not a database)
MarkLogic
Ontotext-OWLIM
Oracle NoSQL database
Profium Sense
Virtuoso Universal Server
Hosted[edit]
Amazon DynamoDB
Amazon SimpleDB
Datastore on Google Appengine
Clusterpoint database
Cloudant Data Layer (CouchDB)
Freebase
Microsoft Azure Tables
Microsoft Azure DocumentDB
OpenLink Virtuoso
Multivalue databases[edit]
D3 Pick database
Extensible Storage Engine (ESE/NT)
InfinityDB
InterSystems Caché
jBASE Pick database
mvBase Rocket Software
mvEnterprise Rocket Software
Northgate Information Solutions Reality, the original Pick/MV Database
OpenQM
Revelation Software's OpenInsight
UniData Rocket U2
UniVerse Rocket U2
Multimodel database[edit]
Performance[edit]
Ben Scofield rated different categories of NoSQL databases as follows: [26]
Data
Performance Scalability Flexibility Complexity Functionality
model
Key–value
high high high none variable (none)
store
Column-
oriented high high moderate low minimal
store
Document-
variable
oriented high high low variable (low)
(high)
store
Graph
variable variable high high graph theory
database
Relational relational
variable variable low moderate
database algebra
Performance and scalability comparisons are sometimes done with the YCSB benchmark.
Aerospike Yes No
InfinityDB Yes No
LMDB Yes No
MarkLogic Yes Yes [nb 1]
1. ^ Joins do not necessarily apply to document databases, but MarkLogic can do joins using
semantics. [28]
2. ^ OrientDB can resolve 1:1 joins using links by storing direct links to foreign records. [29]