NoSQL: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 26: Line 26:
* [[Neo4j]]
* [[Neo4j]]
==Distributed Key-Value Stores==
==Distributed Key-Value Stores==
A key-value store is a distributed [[HashTable|hash table]]
A key-value store is a distributed [[Hash Table|hash table]]


=Organizatorium=
=Organizatorium=

Revision as of 22:51, 7 November 2021

Internal

Overview

The NoSQL databases are grouped in four categories:

  1. document databases
  2. graph databases
  3. key-value stores
  4. column stores

NoSQL Databases

Document Databases

Google Bigtable introduced a data model allowing rows to be added with any set of columns. The columns do not need to be predefined. The lack of predefined schema makes these databases attractive for applications where the attributes of objects are not known in advance or change frequently.

Document databases are conceptually similar to Google Bigtable database. They have a related data model, where a Bigtable row with its arbitrary number of columns/attributes corresponds to a document. The document is a tree of objects containing attribute values and lists, often with a mapping to JSON or XML. Unlike dumping JSON in a relational database, the document databases can work with the structure of the documents, they can extract, index, aggregate and filter based on attribute values in these documents.

The problem with Bigtable and document databases is that they cannot perform joins or transactions spanning several rows or documents. This behavior is deliberate because it allows the database to do automate partitioning.

Graph Databases

Graph databases focus on the relationship between items, and are appropriate for highly interconnected data models. Standard SQL cannot query transitive relationships, i.e. variable-length chains of joins which continue until some condition is reached. Graph databases, on the other hand, are optimized precisely for this kind of data.

Distributed Key-Value Stores

A key-value store is a distributed hash table

Organizatorium