structured storagekey/value storenon-relational
ArangoDB. Couchbase. FoundationDB. MarkLogic. OrientDB. Cosmos DB. CAP theorem. Comparison of object database management systems. Comparison of structured storage software. Correlation database. Distributed cache. Faceted search. MultiValue database. Multi-model database. Triplestore. Schema-agnostic databases.

Multi-model database

multi-modelMulti-Model DBMS
ArangoDB – document (JSON), graph, key-value. Cosmos DB – document (JSON), key-value, SQL. Couchbase – document (JSON), key-value, N1QL. Datastax – key-value, tabular, graph. EnterpriseDB – document (XML and JSON), key-value. MarkLogic – document (XML and JSON), graph triplestore, binary, SQL. Oracle Database – relational, document (JSON and XML), graph triplestore, property graph, key-value, objects. OrientDB – document (JSON), graph, key-value, reactive, SQL. SAP HANA – relational, document (JSON), graph, streaming. Comparison of multi-model databases. ACID. NoSQL. Comparison of structured storage software. Database transaction. Distributed database. Distributed transaction.

Document-oriented database

document databasedocumentdocument-oriented
A document-oriented database, or document store, is a computer program designed for storing, retrieving and managing document-oriented information, also known as semi-structured data.


JavaScript Object Notation (JSON)JSON-likedictionary
In computing, JavaScript Object Notation (JSON) ( "jay-son", ) is an open-standard file format that uses human-readable text to transmit data objects consisting of attribute–value pairs and array data types (or any other serializable value). It is a very common data format used for asynchronous browser–server communication, including as a replacement for XML in some AJAX-style systems.

Comparison of multi-model databases

Comparison of multi-model databases (database management systems).

Gremlin (programming language)

Gremlin is a graph traversal language and virtual machine developed by Apache TinkerPop of the Apache Software Foundation. Gremlin works for both OLTP-based graph databases as well as OLAP-based graph processors. Gremlin's automata and functional language foundation enable Gremlin to naturally support imperative and declarative querying, host language agnosticism, user-defined domain specific languages, an extensible compiler/optimizer, single- and multi-machine execution models, hybrid depth- and breadth-first evaluation, as well as Turing Completeness.

Graph database

graph databasesgraphgraph data processing
Also in the 2010s, multi-model databases that supported graph models (and other models such as relational database or document-oriented database) became available, such as OrientDB, ArangoDB, and MarkLogic (starting with its 7.0 version). During this time, graph databases of various types have become especially popular with social network analysis with the advent of social media companies. The following is a list of notable graph databases: Nodes represent entities or instances such as people, businesses, accounts, or any other item to be tracked. They are roughly the equivalent of the record, relation or row in a relational database, or the document in a document-store database.

Key-value database

key-value storekey-valuekey/value
ArangoDB. Berkeley DB. FoundationDB. IBM Informix C-ISAM. InfinityDB. LMDB. MemcacheDB. Aerospike. Apache Ignite. Coherence. GridGain Systems. Hazelcast. memcached. OpenLink Virtuoso. Redis. XAP. Aerospike. Apache Ignite. ArangoDB. CDB. Clusterpoint Database Server. Couchbase Server. etcd. GridGain Systems. GT.M. Hibari. Keyspace. LevelDB. LMDB. MemcacheDB (using Berkeley DB or LMDB). NoSQLz. Coherence. Oracle NoSQL Database. RocksDB (fork of LevelDB). OpenLink Virtuoso. Tarantool. Tokyo Cabinet and Kyoto Cabinet. Tuple space.


Structured Query LanguageSQL DatabasesWikibook SQL
SQL ( S-Q-L, "sequel"; Structured Query Language) is a domain-specific language used in programming and designed for managing data held in a relational database management system (RDBMS), or for stream processing in a relational data stream management system (RDSMS). It is particularly useful in handling structured data where there are relations between different entities/variables of the data. SQL offers two main advantages over older read/write APIs like ISAM or VSAM: first, it introduced the concept of accessing many records with one single command; and second, it eliminates the need to specify how to reach a record, e.g. with or without an index.


database management systemdatabasesdatabase systems
A database is an organized collection of data, generally stored and accessed electronically from a computer system. Where databases are more complex they are often developed using formal design and modeling techniques.

ACID (computer science)

ACIDACID transactionsAtomicity, consistency, isolation, durability
In computer science, ACID (Atomicity, Consistency, Isolation, Durability) is a set of properties of database transactions intended to guarantee validity even in the event of errors, power failures, etc. In the context of databases, a sequence of database operations that satisfies the ACID properties (and these can be perceived as a single logical operation on the data) is called a transaction. For example, a transfer of funds from one bank account to another, even involving multiple changes such as debiting one account and crediting another, is a single transaction.

Representational state transfer

Representational State Transfer (REST) is a software architectural style that defines a set of constraints to be used for creating web services. Web services that conform to the REST architectural style, termed RESTful web services, provide interoperability between computer systems on the Internet. RESTful web services allow the requesting systems to access and manipulate textual representations of web resources by using a uniform and predefined set of stateless operations. Other kinds of web services, such as SOAP web services, expose their own arbitrary sets of operations.

Apache License

Apache 2.0ApacheApache License 2.0
The Apache License is a permissive free software license written by the Apache Software Foundation (ASF). The Apache License, Version 2.0 requires preservation of the copyright notice and disclaimer. Like other free software licenses, the license allows the user of the software the freedom to use the software for any purpose, to distribute it, to modify it, and to distribute modified versions of the software, under the terms of the license, without concern for royalties. This makes the Apache License a FRAND-RF license. The ASF and its projects release the software they produce under the Apache License. The license is also used by many non-ASF projects.

Microsoft Azure

AzureMicrosoft Azure Service BusWindows Azure
Cosmos DB is a NoSQL database service that implements a subset of the SQL SELECT statement on JSON documents. Redis Cache is a managed implementation of Redis. StorSimple manages storage tasks between on-premises devices and cloud storage. SQL Database, formerly known as SQL Azure Database, works to create, scale and extend applications into the cloud using Microsoft SQL Server technology. It also integrates with Active Directory and Microsoft System Center and Hadoop. SQL Data Warehouse is a data warehousing service designed to handle computational and data intensive queries on datasets exceeding 1TB.

List of geographic information systems software

GIS softwarefree, open-source GIS packagestypes of GIS software
ArangoDB – Builtin features available for Spatial data management, allowing geospatial queries. SpatiaLite – Spatial extensions for the open source SQLite database, allowing geospatial queries. TerraLib – Provides advanced functions for GIS analysis. OrientDB – Builtin features available for Spatial data management, allowing geospatial queries. GeoBase (Telogis GIS software) – Geospatial mapping software available as a software development kit, which performs various functions including address lookup, mapping, routing, reverse geocoding, and navigation. Suited for high transaction enterprise environments.

List of databases using MVCC

OrientDB. PostgreSQL. Postgres-XL. Rdb/ELN. RDM Embedded. REAL Server. Realm. RethinkDB. SAP HANA. SAP IQ. sones GraphDB. Splice Machine. Sybase SQL Anywhere. Tibero – all versions since Tibero 3. TokuMX. Actian Vector. Zope Object Database. JBoss Cache – v 3.0. Ehcache – v 1.6.0-beta4. Clojure – language software transactional memory. pojo-mvcc – a lightweight MVCC implementation written in Java. JVSTM – Software Transactional memory that implements the concept of Versioned Boxes. Apache Jackrabbit Oak.

Hybrid transactional/analytical processing (HTAP)

HTAPHTAP databases
HTAP functionality is offered by database companies, such as Alibaba DRDS, TiDB, Hubble, ArangoDB, Aerospike, Apache Ignite/GridGain In-Memory Data Fabric, IBM IBM_Db2 IDAA, InterSystems, Kdb+, Microsoft SQL Server, Neo4j, Oracle 12c In-Memory, SAP HANA]], MemSQL, MongoDB, VoltDB, NuoDB, OrientDB, DataStax, eXtremeDB, Splice Machine, EsgynDB, Cloud Spanner, HarperDB, Amazon Aurora (Parallel Query) and BlobCity.

Cloud database

Database as a ServiceCloudcloud data
A cloud database is a database that typically runs on a cloud computing platform, and access to the database is provided as-a-service.

AQL (ArangoDB Query Language)

AQL is the SQL-like query language used in the ArangoDB database management system. It supports CRUD operations for both documents (nodes) and edges, but it is not a data definition language (DDL). AQL does support geospatial queries. AQL is JSON-oriented as illustrated by the following query, which also illustrates the intuitive "dot" notation for accessing the values of keys: FOR x IN [{"a": {"A":1}}, {"a": {"A": 2}}] FILTER x.a.A < 2 RETURN x.a The following is a parameterized query for finding the number of descendants of a particular node in a graph named with nodes: FOR v IN 1 ..

Shard (database architecture)

OrientDB: allows sharding from version 1.7. Solr enterprise search server: provides sharding capabilities. Spanner: Google's global-scale distributed database, shards data across multiple Paxos state machines to scale to "millions of machines across hundreds of datacenters and trillions of database rows". SQLAlchemy ORM: a data-mapper for the Python programming language that provides sharding capabilities. The DWH of Teradata: a massive parallel database. Vault: A cryptocurrency that drastically reduces the data that users need to join the network and verify transactions. This translates to a much more scalable network. Designed by MIT researchers. Sharding is central to its functioning.


TLA + TLA+ specification language
Microsoft Azure used TLA + to design Cosmos DB, a globally-distributed database with five different consistency models. A key-value store with snapshot isolation A rule-based firewall A multi-car elevator system State - an assignment of values to variables. Behaviour - a sequence of states. Step - a pair of successive states in a behavior. Stuttering step - a step during which variables are unchanged. Next-state relation - a relation describing how variables can change in any step. State function - an expression containing variables and constants that is not a next-state relation.

Java (programming language)

JavaJava programming languageJava language
Java is a general-purpose computer-programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere" (WORA), meaning that compiled Java code can run on all platforms that support Java without the need for recompilation. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of computer architecture., Java is one of the most popular programming languages in use, particularly for client-server web applications, with a reported 9 million developers.

Object database

object-oriented databaseobject-oriented databasesobject-oriented
An object database is a database management system in which information is represented in the form of objects as used in object-oriented programming. Object databases are different from relational databases which are table-oriented. Object-relational databases are a hybrid of both approaches.