Direct naar content

NoSQL Consultancy and management

OptimaData provides consulting, training and database management services for NoSQL database platforms.

NoSQL database beheer door OptimaData

Types of NoSQL databases

The term NoSQL stands for Not Only SQL and is used for a new and increasingly popular type of database systems that differ in several ways from their classical relational counterparts. The concept of NoSQL is most easily explained using the CAP theorem. In this theorem, a database system can always have one of the following properties:

  • Consistency (consistency): all nodes in a cluster contain the same data at all times
  • Availability: every request is guaranteed to be fulfilled even if parts of the cluster are offline
  • Partition tolerance: a network failure between two or more nodes in a cluster or between clusters does not cause downtime for users. The other nodes or clusters remain online and are able to handle all requests.

CAP-theorema overview

Most NoSQL systems fit into the two categories Availability and Partition tolerance. The Consistency property is different: instead of consistency, NoSQL offers eventual consistency.

NoSQL uiteindelijke consistentie

Database-systemen die men beschouwt als consistent voldoen vaak aan het eerdergenoemde ACID-principe: Atomiciteit, Consistentie, Geïsoleerd, Duurzaamheid. Uiteindelijk consistente database-systemen zijn gebaseerd op het BASE-principe:

  • Basically Available: het systeem is 24/7 beschikbaar
  • Soft State: het is niet noodzakelijk dat het systeem voortdurend op ieder tijdstip consistent is: niet alle nodes in een cluster bevatten op ieder moment dezelfde data
  • Eventually Consistent (uiteindelijk consistent): ook al is het systeem of de cluster niet op ieder tijdstip consistent, er is de garantie dat het systeem of de cluster op een bepaald tijdstip consistent zal zijn ofwel dat alle nodes dezelfde data zullen bevatten.

NoSQL ultimate consistency

Database systems that are considered consistent often satisfy the aforementioned ACID principle: Atomicity, Consistency, Isolated, Durability. Ultimately consistent database systems are based on the BASE principle:

  • Basically Available: the system is available 24/7
  • Soft State: it is not necessary for the system to be continuously consistent at all times: not all nodes in a cluster contain the same data at all times
  • Eventually Consistent: even if the system or cluster is not consistent at every point in time, there is a guarantee that the system or cluster will be consistent at some point in time or that all nodes will contain the same data.

NoSQL database type selection

In software development, first of all, the expected performance requirements determine the choice of a datastore: the estimated load on the system, the maximum and average numbers of concurrent users, the probable data volumes, and the length of time the data should be available. A second step consists of an analysis of the nature and use of the data and the functionality of the application: do users only consult data or do they also report? Does it involve transactions? Is data being processed online?

  • The selection of a NoSQL database depends on several factors not necessarily related to scalability:
  • The ratio of read to write operations: some systems are better suited to more write operations, while others are better suited to more read operations
  • The complexity of the data model
  • The infrastructure requirements: some NoSQL systems require additional control servers to configure modes for high availability and replication.
  • The question of whether a temporary caching layer is sufficient or whether a full persistence layer is required
  • The question of what types of data are stored: documents, unstructured data, hierarchical data, data that can be modeled using graph theory elements or using XML

NoSQL products

The number of NoSQL products is growing rapidly. As a result, it can be difficult to base a choice solely on pre-formulated requirements. There are many similar solutions and the differences are sometimes subtle. All details deserve careful attention – from the API and the availability of support to the characteristics of the community. NoSQL data stores can be classified into the following categories:

Key/value stores

These NoSQL databases enable efficient data storage. Compared to more advanced databases, they are very limited because they provide access to the data (value) in only one way. Other ways require external management, such as through Lucene or through an index managed by the application.

Examples: Riak, Redis, Memcached

BigTable databases

These NoSQL databases are also known as record-oriented, tabular databases or wide-column stores. The term BigTable became popular because of Googles BigTable implementation. Like relational databases, a Big Table database consists of multiple tables, each containing a set of callable rows. Each row consists of a set of values that can be thought of as columns.

Examples: Azure Tables, HBase, Cassandra

Document databases

These NoSQL databases are also known as document-oriented databases. They are designed for optimal storage of and access to documents, as opposed to a structure of rows or records. Document databases are schema-free.

Examples: CouchDB, MongoDB, Terrastore

Graphical databases

In these NoSQL databases, data are stored in graph-like structures, rather than linear lists or key/value pairs. They are particularly suitable for social networks and provide a natural model for user relationships.

Examples: Neo4j, BrightstarDB, GraphBase

OptimaData can help determine which NoSQL variant or Hybrid solution will work best for your situation.

Interesting blogs

Database blog