Nosql
Encyclopedia
In computing
, NoSQL (sometimes expanded to "not only SQL") is a broad class of database management system
s that differ from the classic model of the relational database management system
(RDBMS) in some significant ways. These data stores may not require fixed table schemas
, usually avoid join
operations, and typically scale horizontally. Academic researchers typically refer to these databases as structured storage, a term that includes classic relational databases as a subset.
that did not expose the standard SQL interface. (Strozzi suggests that, as the current NoSQL movement "departs from the relational model altogether; it should therefore have been called more appropriately 'NoREL', or something to that effect.")
Eric Evans, a Rackspace
employee, reintroduced the term NoSQL in early 2009 when Johan Oskarsson of Last.fm
wanted to organize an event to discuss open-source distributed databases. The name attempted to label the emergence of a growing number of non-relational, distributed data stores that often did not attempt to provide ACID
(atomicity, consistency, isolation, durability) guarantees, which are the key attributes of classic relational database systems such as IBM DB2
, MySQL
, Microsoft SQL Server, PostgreSQL
, Oracle RDBMS, Informix
, Oracle Rdb
, etc.
In 2011, work began on UnQL
(Unstructured Query Language), a specification for a query language for NoSQL databases. It is built to query collection
s (versus table
s) of documents (versus row
s) with loosely defined field
s (versus column
s). UnQL is a superset of SQL within which SQL is a very constrained type of UnQL for which the queries always return the same fields (same number, names and types). However, UnQL does not cover the data definition language
(DDL) SQL statements like
a large number of documents, serving pages
on high-traffic websites, and delivering streaming media
. Typical RDBMS implementations are tuned either for small but frequent read/write transactions or for large batch transactions with rare write accesses. NoSQL, on the other hand, can service heavy read/write workloads. Real-world NoSQL deployments include Digg
's 3 TB
for green badges (markers that indicate stories upvoted by others in a social network) and Facebook
's 50 TB for inbox search.
NoSQL architectures often provide weak consistency guarantees, such as eventual consistency
, or transactions
restricted to single data items. Some systems, however, provide full ACID guarantees in some instances by adding a supplementary middleware layer (e.g., AppScale
and CloudTPS).
Two systems have been developed that provide snapshot isolation
for column stores: Google's Percolator system based on BigTable
,
and a transactional system for HBase
developed at the University of Waterloo
. These systems, developed independently, use similar concepts to achieve multi-row distributed ACID transactions with snapshot isolation
guarantee for the underlying column store, without the extra overhead of data management, middleware system deployment, or maintenance introduced by the middleware layer.
Several NoSQL systems employ a distributed architecture, with the data held in a redundant manner on several servers, often using a distributed hash table
. In this way, the system can readily scale out by adding more servers, and failure of a server can be tolerated.
Some NoSQL advocates promote very simple interfaces such as associative array
s or key-value pairs. Other systems, such as native XML database
s, promote support of the XQuery
standard. Newer systems such as CloudTPS also support join queries
.
! Name !! Language !! Notes
|-
| BaseX
> Java
, XQuery
XML database
>-
| Clusterpoint
C++
Full text search
>-
| Apache CouchDB
Erlang
>-
| eXist
XQuery
XML database
>-
| Jackrabbit
Java
>-
| Lotus Notes
and IBM Lotus Domino
LotusScript
, Java
, IBM X Pages, others
MultiValue
>-
| MarkLogic Server
XQuery
XML database
>-
| MongoDB
C++
BSON
(Binary format JSON
)
>-
| OrientDB
Java
>-
| SimpleDB Erlang
>-
| Terrastore
Java
>-
| Recall
FORTRAN
! Name !! Language !! Notes
|-
| AllegroGraph
> SPARQL
RDF
GraphStore
>-
| DEX
Java
, C++
Graph Database
>-
InfiniteGraph
Java
Graph Database
>-
| Neo4j
Java
>-
| OrientDB
Java
>-
| FlockDB
Scala
>-
| Sones GraphDB
C#
Graph database with query language called GraphQL
| Pregel >
Computing
Computing is usually defined as the activity of using and improving computer hardware and software. It is the computer-specific part of information technology...
, NoSQL (sometimes expanded to "not only SQL") is a broad class of database management system
Database management system
A database management system is a software package with computer programs that control the creation, maintenance, and use of a database. It allows organizations to conveniently develop databases for various applications by database administrators and other specialists. A database is an integrated...
s that differ from the classic model of the relational database management system
Relational database management system
A relational database management system is a database management system that is based on the relational model as introduced by E. F. Codd. Most popular databases currently in use are based on the relational database model....
(RDBMS) in some significant ways. These data stores may not require fixed table schemas
Database schema
A database schema of a database system is its structure described in a formal language supported by the database management system and refers to the organization of data to create a blueprint of how a database will be constructed...
, usually avoid join
Join (SQL)
An SQL join clause combines records from two or more tables in a database. It creates a set that can be saved as a table or used as is. A JOIN is a means for combining fields from two tables by using values common to each. ANSI standard SQL specifies four types of JOINs: INNER, OUTER, LEFT, and RIGHT...
operations, and typically scale horizontally. Academic researchers typically refer to these databases as structured storage, a term that includes classic relational databases as a subset.
History
Carlo Strozzi used the term NoSQL in 1998 to name his lightweight, open-source relational databaseNoSQL (RDBMS)
NoSQL is a shell-based relational database management system that runs under Unix-like operating systems, or others with compatibility layers...
that did not expose the standard SQL interface. (Strozzi suggests that, as the current NoSQL movement "departs from the relational model altogether; it should therefore have been called more appropriately 'NoREL', or something to that effect.")
Eric Evans, a Rackspace
Rackspace
Rackspace US, Inc. is an IT hosting company based in San Antonio, Texas. The company also has offices in Australia, the United Kingdom, The Netherlands and Hong Kong, and data centers operating in Texas, Illinois, Virginia, the United Kingdom, and Hong Kong in late 2008...
employee, reintroduced the term NoSQL in early 2009 when Johan Oskarsson of Last.fm
Last.fm
Last.fm is a music website, founded in the United Kingdom in 2002. It has claimed 30 million active users in March 2009. On 30 May 2007, CBS Interactive acquired Last.fm for UK£140m ....
wanted to organize an event to discuss open-source distributed databases. The name attempted to label the emergence of a growing number of non-relational, distributed data stores that often did not attempt to provide ACID
ACID
In computer science, ACID is a set of properties that guarantee database transactions are processed reliably. In the context of databases, a single logical operation on the data is called a transaction...
(atomicity, consistency, isolation, durability) guarantees, which are the key attributes of classic relational database systems such as IBM DB2
IBM DB2
The IBM DB2 Enterprise Server Edition is a relational model database server developed by IBM. It primarily runs on Unix , Linux, IBM i , z/OS and Windows servers. DB2 also powers the different IBM InfoSphere Warehouse editions...
, MySQL
MySQL
MySQL officially, but also commonly "My Sequel") is a relational database management system that runs as a server providing multi-user access to a number of databases. It is named after developer Michael Widenius' daughter, My...
, Microsoft SQL Server, PostgreSQL
PostgreSQL
PostgreSQL, often simply Postgres, is an object-relational database management system available for many platforms including Linux, FreeBSD, Solaris, MS Windows and Mac OS X. It is released under the PostgreSQL License, which is an MIT-style license, and is thus free and open source software...
, Oracle RDBMS, Informix
Informix
IBM Informix is a family of relational database management system developed by IBM. It is positioned as IBM's flagship data server for online transaction processing as well as integrated solutions...
, Oracle Rdb
Oracle Rdb
Rdb/VMS is a relational database management system for the Hewlett-Packard OpenVMS operating system. It was originally created by Digital Equipment Corporation in 1984 as part of the VMS Information Architecture, intended to be used for data storage and retrieval by high-level languages and/or...
, etc.
In 2011, work began on UnQL
UnQL
UnQL is a specification for a query language for NoSQL databases, developed by the creators of SQLite and CouchDB database management systems, based on SQL used in relational databases with the elements of JSON. It is built to query collections of documents with loosely defined fields...
(Unstructured Query Language), a specification for a query language for NoSQL databases. It is built to query collection
Collection (computing)
In computer science, a collection is a grouping of some variable number of data items that have some shared significance to the problem being solved and need to be operated upon together in some controlled fashion. Generally, the data items will be of the same type or, in languages supporting...
s (versus table
Table (database)
In relational databases and flat file databases, a table is a set of data elements that is organized using a model of vertical columns and horizontal rows. A table has a specified number of columns, but can have any number of rows...
s) of documents (versus row
Row (database)
In the context of a relational database, a row—also called a record or tuple—represents a single, implicitly structured data item in a table. In simple terms, a database table can be thought of as consisting of rows and columns or fields...
s) with loosely defined field
Field (computer science)
In computer science, data that has several parts can be divided into fields. Relational databases arrange data as sets of database records, also called rows. Each record consists of several fields; the fields of all records form the columns....
s (versus column
Column (database)
In the context of a relational database table, a column is a set of data values of a particular simple type, one for each row of the table. The columns provide the structure according to which the rows are composed....
s). UnQL is a superset of SQL within which SQL is a very constrained type of UnQL for which the queries always return the same fields (same number, names and types). However, UnQL does not cover the data definition language
Data Definition Language
A data definition language or data description language is a syntax similar to a computer programming language for defining data structures, especially database schemas.-History:...
(DDL) SQL statements like
CREATE TABLE
or CREATE INDEX
.Architecture
Typical modern relational databases have shown poor performance on certain data-intensive applications, including indexingIndex (search engine)
Search engine indexing collects, parses, and stores data to facilitate fast and accurate information retrieval. Index design incorporates interdisciplinary concepts from linguistics, cognitive psychology, mathematics, informatics, physics, and computer science...
a large number of documents, serving pages
Web server
Web server can refer to either the hardware or the software that helps to deliver content that can be accessed through the Internet....
on high-traffic websites, and delivering streaming media
Streaming media
Streaming media is multimedia that is constantly received by and presented to an end-user while being delivered by a streaming provider.The term "presented" is used in this article in a general sense that includes audio or video playback. The name refers to the delivery method of the medium rather...
. Typical RDBMS implementations are tuned either for small but frequent read/write transactions or for large batch transactions with rare write accesses. NoSQL, on the other hand, can service heavy read/write workloads. Real-world NoSQL deployments include Digg
Digg
Digg is a social news website. Prior to Digg v4, its cornerstone function consisted of letting people vote stories up or down, called digging and burying, respectively. Digg's popularity prompted the creation of copycat social networking sites with story submission and voting systems...
's 3 TB
Terabyte
The terabyte is a multiple of the unit byte for digital information. The prefix tera means 1012 in the International System of Units , and therefore 1 terabyte is , or 1 trillion bytes, or 1000 gigabytes. 1 terabyte in binary prefixes is 0.9095 tebibytes, or 931.32 gibibytes...
for green badges (markers that indicate stories upvoted by others in a social network) and Facebook
Facebook
Facebook is a social networking service and website launched in February 2004, operated and privately owned by Facebook, Inc. , Facebook has more than 800 million active users. Users must register before using the site, after which they may create a personal profile, add other users as...
's 50 TB for inbox search.
NoSQL architectures often provide weak consistency guarantees, such as eventual consistency
Eventual consistency
Eventual consistency is one of the consistency models used in the domain of parallel programming, for example in distributed shared memory, distributed transactions, and optimistic replication, it means that given a sufficiently long period of time over which no changes are sent, all updates can be...
, or transactions
Database transaction
A transaction comprises a unit of work performed within a database management system against a database, and treated in a coherent and reliable way independent of other transactions...
restricted to single data items. Some systems, however, provide full ACID guarantees in some instances by adding a supplementary middleware layer (e.g., AppScale
AppScale
AppScale is an open-source framework for running Google App Engine applications. It is an implementation of a cloud computing platform , supporting Xen, KVM, Amazon EC2 and Eucalyptus. It has been developed and is maintained by the RACELab at UC Santa Barbara.AppScale allows users to upload...
and CloudTPS).
Two systems have been developed that provide snapshot isolation
Snapshot isolation
In databases, and transaction processing , snapshot isolation is a guarantee that all reads made in a transaction will see a consistent snapshot of the database , and the transaction itself will successfully commit only if no updates it has made conflict with any concurrent updates...
for column stores: Google's Percolator system based on BigTable
BigTable
BigTable is a compressed, high performance, and proprietary database system built on Google File System , Chubby Lock Service, SSTable and a few other Google technologies; it is currently not distributed nor is it used outside of Google, although Google offers access to it as part of their Google...
,
and a transactional system for HBase
HBase
HBase is an open source, non-relational, distributed database modeled after Google's BigTable and is written in Java. It is developed as part of Apache Software Foundation's Apache Hadoop project and runs on top of HDFS , providing BigTable-like capabilities for Hadoop...
developed at the University of Waterloo
University of Waterloo
The University of Waterloo is a comprehensive public university in the city of Waterloo, Ontario, Canada. The school was founded in 1957 by Drs. Gerry Hagey and Ira G. Needles, and has since grown to an institution of more than 30,000 students, faculty, and staff...
. These systems, developed independently, use similar concepts to achieve multi-row distributed ACID transactions with snapshot isolation
Snapshot isolation
In databases, and transaction processing , snapshot isolation is a guarantee that all reads made in a transaction will see a consistent snapshot of the database , and the transaction itself will successfully commit only if no updates it has made conflict with any concurrent updates...
guarantee for the underlying column store, without the extra overhead of data management, middleware system deployment, or maintenance introduced by the middleware layer.
Several NoSQL systems employ a distributed architecture, with the data held in a redundant manner on several servers, often using a distributed hash table
Distributed hash table
A distributed hash table is a class of a decentralized distributed system that provides a lookup service similar to a hash table; pairs are stored in a DHT, and any participating node can efficiently retrieve the value associated with a given key...
. In this way, the system can readily scale out by adding more servers, and failure of a server can be tolerated.
Some NoSQL advocates promote very simple interfaces such as associative array
Associative array
In computer science, an associative array is an abstract data type composed of a collection of pairs, such that each possible key appears at most once in the collection....
s or key-value pairs. Other systems, such as native XML database
XML database
An XML database is a data persistence software system that allows data to be stored in XML format. This data can then be queried, exported and serialized into the desired format.Two major classes of XML database exist:...
s, promote support of the XQuery
XQuery
- Features :XQuery provides the means to extract and manipulate data from XML documents or any data source that can be viewed as XML, such as relational databases or office documents....
standard. Newer systems such as CloudTPS also support join queries
Join (SQL)
An SQL join clause combines records from two or more tables in a database. It creates a set that can be saved as a table or used as is. A JOIN is a means for combining fields from two tables by using values common to each. ANSI standard SQL specifies four types of JOINs: INNER, OUTER, LEFT, and RIGHT...
.
Taxonomy
NoSQL implementations can be categorized by their manner of implementation:Document store
|-
| BaseX
BaseX
BaseX is a native and light-weight XML database management system, developed as a community project on GitHub. It is specialized in storing, querying, and visualizing large XML documents and collections...
>
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, XQuery
XQuery
- Features :XQuery provides the means to extract and manipulate data from XML documents or any data source that can be viewed as XML, such as relational databases or office documents....
XML database
An XML database is a data persistence software system that allows data to be stored in XML format. This data can then be queried, exported and serialized into the desired format.Two major classes of XML database exist:...
>-
| Clusterpoint
Clusterpoint
Clusterpoint is a high-performance, schema-free, document-oriented database server written in the C++ programming language. It manages collections of XML documents that are stored in native XML data format. It allows many applications to store data in a natural human-readable way that matches...
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
Full text search
In text retrieval, full text search refers to techniques for searching a single computer-stored document or a collection in a full text database...
>-
| Apache CouchDB
CouchDB
Apache CouchDB, commonly referred to as CouchDB, is an open source document-oriented database written mostly in the Erlang programming language. It is part of the NoSQL group of data stores and is designed for local replication and to scale horizontally across a wide range of devices...
| eXist
EXist
eXist is an open source database management system entirely built on XML technology, also called a native XML database. Unlike most relational database management systems, eXist uses XQuery, which is a , to manipulate its data.- eXist Benefits :...
XQuery
- Features :XQuery provides the means to extract and manipulate data from XML documents or any data source that can be viewed as XML, such as relational databases or office documents....
XML database
An XML database is a data persistence software system that allows data to be stored in XML format. This data can then be queried, exported and serialized into the desired format.Two major classes of XML database exist:...
>-
| Jackrabbit
Apache Jackrabbit
Apache Jackrabbit is an open source content repository for the Java platform. The Jackrabbit project was started on August 28, 2004, when Day Software licensed an initial implementation of the Java Content Repository API . Jackrabbit was also used as the reference implementation of JSR-170,...
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
| Lotus Notes
Lotus Notes
Lotus Notes is the client of a collaborative platform originally created by Lotus Development Corp. in 1989. In 1995 Lotus was acquired by IBM and became known as the Lotus Development division of IBM and is now part of the IBM Software Group...
and IBM Lotus Domino
IBM Lotus Domino
Lotus Domino is an IBM server product that provides enterprise-grade e-mail, collaboration capabilities, and a custom application platform. Domino began life as Lotus Notes Server, the server component of Lotus Development Corporation's client-server messaging technology. It can be used as an...
LotusScript
LotusScript is a dialect of the BASIC programming language used by Lotus Notes and other IBM Lotus Software products.LotusScript is very similar to Visual Basic. Code can often be copied without modification from one to the other, and programmers familiar with one can easily understand the syntax...
, Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, IBM X Pages, others
MultiValue
MultiValue is a type of multidimensional database, typically considered synonymous with PICK, a database originally developed as the Pick operating system....
>-
| MarkLogic Server
XQuery
- Features :XQuery provides the means to extract and manipulate data from XML documents or any data source that can be viewed as XML, such as relational databases or office documents....
XML database
An XML database is a data persistence software system that allows data to be stored in XML format. This data can then be queried, exported and serialized into the desired format.Two major classes of XML database exist:...
>-
| MongoDB
MongoDB
MongoDB is an open source, high-performance, schema-free, document-oriented database written in the C++ programming language...
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
BSON
BSON is a computer data interchange format used mainly as a data storage and network transfer format in the MongoDB database. It is a binary form for representing simple data structures and associative arrays...
(Binary format JSON
JSON
JSON , or JavaScript Object Notation, is a lightweight text-based open standard designed for human-readable data interchange. It is derived from the JavaScript scripting language for representing simple data structures and associative arrays, called objects...
)
>-
| OrientDB
OrientDB
OrientDB is an open source NoSQL database management system written in Java. Even if it is a document-based database, the relationships are managed as in graph databases with direct connections between records. It supports schema-less, schema-full and schema-mixed modes. It has a strong security...
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
| SimpleDB
| Terrastore
Terrastore
Terrastore is a distributed, scalable and consistent document store supporting single-cluster and multi-cluster deployments.It provides advanced scalability support and elasticity feature without loosening the consistency at data level...
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
| Recall
Recall database
Recall is a content repository for Well logging data. Recall was originally implemented by Z&S Consultants in the late 1980s, then acquired by Western Atlas, which was in turn acquired by Baker Hughes...
Fortran
Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...
Graph
|-
| AllegroGraph
AllegroGraph
AllegroGraph is a closed source Graph database, an emerging category of databases. In contrast with a Relational database, a graph database considers each stored item to have any number of relationships. These relationships can be viewed as links, which together form a network, or graph....
>
SPARQL
SPARQL is an RDF query language; its name is an acronym that stands for SPARQL Protocol and RDF Query Language. It was made a standard by the RDF Data Access Working Group of the World Wide Web Consortium, and considered as one of the key technologies of semantic web...
Resource Description Framework
The Resource Description Framework is a family of World Wide Web Consortium specifications originally designed as a metadata data model...
GraphStore
>-
| DEX
DEX (Graph database)
DEX is a high-performance and scalable graph database management system written in C++.Its development started on 2006 and its first version was available on Q3 - 2008. Fourth version is available since Q3-2010...
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
Graph database
A graph database uses graph structures with nodes, edges, and properties to represent and store data. By definition, a graph database is any storage system that provides index-free adjacency. General graph databases that can store any graph are distinct from specialized graph databases such as...
>-
InfiniteGraph
InfiniteGraph is a distributed graph database implemented in Java, and is from a class of NOSQL data technologies focused on graph data structures. Graph data typically consist of objects or things and various relationships that may connect two or more nodes...
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
Graph database
A graph database uses graph structures with nodes, edges, and properties to represent and store data. By definition, a graph database is any storage system that provides index-free adjacency. General graph databases that can store any graph are distinct from specialized graph databases such as...
>-
| Neo4j
Neo4j
Neo4j is an open-source graph database, implemented in Java. The developers describe Neo4j as "embedded, disk-based, fully transactional Java persistence engine that stores data structured in graphs rather than in tables". Neo4j version 1.0 was released in February, 2010. The community edition of...
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
| OrientDB
OrientDB
OrientDB is an open source NoSQL database management system written in Java. Even if it is a document-based database, the relationships are managed as in graph databases with direct connections between records. It supports schema-less, schema-full and schema-mixed modes. It has a strong security...
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
| FlockDB
FlockDB
FlockDB is an open source distributed, fault-tolerant graph database for managing data at webscale. It was initially used by Twitter to build its database of users and manage their relationships to one another...
| Sones GraphDB
Sones GraphDB
Sones GraphDB was developed by the company sones in Erfurt and Leipzig. GraphDB is a new type of database with its design based on weighted graphs. The open source edition has been available since July 2010...
Key-value store
Key-value stores allow the application to store its data in a schema-less way. The data could be stored in a datatype of a programming language or an object. Because of this, there is no need for a fixed data model. The following types exist:Eventually‐consistent key‐value store
- Apache Cassandra
- DynamoDynamo (storage system)Dynamo is a highly available, proprietary key-value structured storage system or a distributed data store. It has properties of both databases and distributed hash tables...
- HibariHibari (database)Hibari is a strongly consistent, highly available, distributed, key-value big data store. It was developed by Gemini Mobile Technologies to support its mobile messaging and email services and released as open source on July 27, 2010....
- Project Voldemort
- RiakRiakRiak is a NoSQL database implementing the principles from Amazon's Dynamo paper.Riak has a pluggable backend for its core shard-partitioned storage, with the default storage backend being Bitcask as of the 0.12 release...
Key-value cache in RAM
- Citrusleaf databaseCitrusleaf databaseThe Citrusleaf database is an ACID-compliant, post-relational NoSQL database produced and marketed by Citrusleaf, Inc. It was originally developed for managing the mission-critical data for applications on the Real-time web...
- memcachedMemcachedIn computing, memcached is a general-purpose distributed memory caching system that was originally developed by Danga Interactive for LiveJournal, but is now used by many other sites. It is often used to speed up dynamic database-driven websites by caching data and objects in RAM to reduce the...
- Oracle CoherenceOracle CoherenceIn computing, Oracle Coherence – a Java-based in-memory data-grid product – provides data caching, data replication and distributed computing services. It addresses issues with traditional database-centric applications, aiming to improve on reliability, scalability and performance. Coherence uses...
- RedisRedisRedis is used to refer to Romani people.Redis may also refer to:* Redis , an advanced key-value store...
- Tuple spaceTuple spaceA tuple space is an implementation of the associative memory paradigm for parallel/distributed computing. It provides a repository of tuples that can be accessed concurrently. As an illustrative example, consider that there are a group of processors that produce pieces of data and a group of...
- Velocity
Key-value stores on disk
- BigTableBigTableBigTable is a compressed, high performance, and proprietary database system built on Google File System , Chubby Lock Service, SSTable and a few other Google technologies; it is currently not distributed nor is it used outside of Google, although Google offers access to it as part of their Google...
- CDBCdb (software)cdb, short for "constant database", refers to both a library and data format created by Daniel J. Bernstein. cdb acts as an on-disk associative array, mapping keys to values, and allows multiple values to be stored for a single key. A constant database allows for only two operations: creation and...
- Citrusleaf databaseCitrusleaf databaseThe Citrusleaf database is an ACID-compliant, post-relational NoSQL database produced and marketed by Citrusleaf, Inc. It was originally developed for managing the mission-critical data for applications on the Real-time web...
- KeyspaceKeyspace (distributed data store)A key space in a NoSQL data store is an object that holds together all column families of a design. It is the outer most grouping of the data in the data store. It resembles to the schema concept in Relational database management systems. Generally, there is one keyspace per...
- LevelDBLevelDBLevelDB is an open source on-disk key-value store written by Google Fellows Jeffrey Dean and Sanjay Ghemawat, who built parts of Google's platform...
- membaseMembaseMembase is an Open Source distributed, key-value database management system optimized for storing data behind interactive web applications. These applications must service many concurrent users; creating, storing, retrieving, aggregating, manipulating and presenting data...
- MemcacheDBMemcachedbMemcacheDB is a persistence enabled variant of memcached, a general-purpose distributed memory caching system often used to speed up dynamic database-driven websites by caching data and objects in memory...
- TarantoolTarantoolTarantool is an open-source NoSQL database, developed by Mail.ru.Its key properties include:* licence: simplified BSD* all data is maintained in RAM* data persistence is implemented using Write Ahead Log and snapshotting...
- Tokyo Cabinet
- TreapDBTreapDBTreapDB is a kind of NoSQL data store, and it is based on Treap data structure. Treap is a randomized balanced search tree, which has O complexity to insert or find a key. TreapDB supports many operations besides "get" and "set". For example, "prefix foo" fetch all the pairs whose key startswith...
- Tuple spaceTuple spaceA tuple space is an implementation of the associative memory paradigm for parallel/distributed computing. It provides a repository of tuples that can be accessed concurrently. As an illustrative example, consider that there are a group of processors that produce pieces of data and a group of...
- MongoDBMongoDBMongoDB is an open source, high-performance, schema-free, document-oriented database written in the C++ programming language...
Ordered key-value stores
- Berkeley DBBerkeley DBBerkeley DB is a computer software library that provides a high-performance embedded database for key/value data. Berkeley DB is a programmatic software library written in C with API bindings for C++, PHP, Java, Perl, Python, Ruby, Tcl, Smalltalk, and most other programming languages...
- IBM Informix C-ISAM
- MemcacheDBMemcachedbMemcacheDB is a persistence enabled variant of memcached, a general-purpose distributed memory caching system often used to speed up dynamic database-driven websites by caching data and objects in memory...
- NDBMNdbmndbm is a Berkeley producedversion from 1986 of the AT&T dbm database.ndbm stores arbitrary data by use of a single key in fixed-size buckets.-Problems:The sum of the sizes of a key/content pair must not exceed the...
Multivalue databases
- Northgate Information SolutionsNorthgate Information Solutions-Early years:The company was founded as CMC, or Computer Machinery Company, in 1969. They were originally distributors and subsequently manufacturers of Key to Disk computer systems made by the US-based Computer Machinery Corporation. The CMC Key to Disk systems were used by major companies and...
Reality, the orginal Pick/MV Database - Extensible Storage EngineExtensible Storage EngineExtensible Storage Engine , also known as JET Blue, is an Indexed Sequential Access Method data storage technology from Microsoft. ESE is notably a core of Microsoft Exchange Server and Active Directory. Its purpose is to allow applications to store and retrieve data via indexed and sequential...
(ESE/NT) - OpenQMOpenQMOpenQM is a Multi-Value database run-time developed by Ladybridge Systems in the United Kingdom. The product architect is Martin Phillips.-OpenQM history:...
- Revelation Software's OpenInsightOpenInsightOpenInsight is a database application development tool from Revelation Software. It was first released in 1992; version 9.2 was released in 2010....
- Rocket U2
- D3 Pick database
- InterSystems Caché
Object database
- db4oDb4odb4o is an embeddable open source object database for Java and .NET developers. It is developed, commercially licensed and supported by Versant....
- GemStone/S
- InterSystems Caché
- JADE
- ObjectDBObjectDBObjectDB is an Object Database for Java. It can be used in client-server mode and in embedded mode.Unlike other object databases, ObjectDB does not provide its own proprietary API. Accordingly, working with ObjectDB requires using one of the two standard Java APIs - JPA or JDO...
- Objectivity/DBObjectivity/DBObjectivity/DB is a commercial object database produced by Objectivity, Inc. It allows applications to make standard C++, Java, Python or Smalltalk objects persistent without having to convert the data objects into the rows and columns used by a relational database management system ....
- ObjectStoreObjectStoreObjectStore is a commercial object database, which is a specialized type of database designed to handle data created by applications that use object-oriented programming techniques. It is inspired by the Statice database originally developed at Symbolics. ObjectStore is innovative in its use of...
- Versant Object DatabaseVersant Object DatabaseVersant Object Database is an enterprise grade object database supporting massive concurrency and large data sets provided by Versant Corporation...
- ZODB
Tabular
- BigTableBigTableBigTable is a compressed, high performance, and proprietary database system built on Google File System , Chubby Lock Service, SSTable and a few other Google technologies; it is currently not distributed nor is it used outside of Google, although Google offers access to it as part of their Google...
- Apache Hadoop
- Apache HbaseHBaseHBase is an open source, non-relational, distributed database modeled after Google's BigTable and is written in Java. It is developed as part of Apache Software Foundation's Apache Hadoop project and runs on top of HDFS , providing BigTable-like capabilities for Hadoop...
- HypertableHypertableHypertable is an open source database inspired by publications on the design of Google's BigTable. The project is based on experience of engineers who were solving large-scale data-intensive tasks for many years....
- MnesiaMnesiaMnesia is a distributed, soft real-time database management system written in the Erlang programming language.- Purpose of Mnesia :As with Erlang, Mnesia was developed by Ericsson for soft real-time distributed and high-availability computing work related to telecoms. It was not intended as a...
See also
- CAP theoremCAP theoremIn theoretical computer science the CAP theorem, also known as Brewer's theorem, states that it is impossible for a distributed computer system to simultaneously provide all three of the following guarantees:...
- Comparison of object database management systemsComparison of object database management systems- Features :Information about what fundamental ODBMS features are implemented natively....
- Comparison of structured storage software
- Faceted search
- List of object database management systems
- TriplestoreTriplestoreA triplestore is a purpose-built database for the storage and retrieval of Resource Description Framework metadata.Much like a relational database, one stores information in a triplestore and retrieves it via a query language...
External links
- http://www.odbms.org/downloads.aspx#nosql on [ODBMS.ORG: NoSQL Data Stores Section]
- NoSQLforums.ORG: NoSQL Knowledgebase - Live Message Board
- NoSQL User Group on LinkedInLinkedInLinkedIn is a business-related social networking site. Founded in December 2002 and launched in May 2003, it is mainly used for professional networking. , LinkedIn reports more than 120 million registered users in more than 200 countries and territories. The site is available in English, French,...
- nosql-discussion on Google GroupsGoogle GroupsGoogle Groups is a service from Google Inc. that supports discussion groups, including many Usenet newsgroups, based on common interests. The service was started in 1995 as Deja News, and was transitioned to Google Groups after a February 2001 buyout....
- nosqldatabases.com
- myNoSQL: news, articles and links about NoSQL
- nosql-databases.org
- computerworld.com : No to SQL? Anti-database movement gains steam
- Is Microsoft Feeling the "NoSQL" Heat?
- Information Week "The NoSQL Alternative"
- How RDF Databases Differ from Other NoSQL Solutions
- CouchOne
- NoSql Tapes
- http://www.christof-strauch.de/nosqldbs.pdfNoSQL Databases (Introduction and Overview)