What is NoSQL?

What is NoSQL?

NoSQL, interpreted as “Not only SQL,” refers broadly to non-relational databases. In general, non-relational databases refer to all databases except relational databases.

Non-SQL and non-relational databases provide mechanisms for storing and retrieving data using consistency models that are less restrictive than traditional relational databases.

Classification by storage method

Examples of non-relational database data models are classified by storage method into documents, key-value, graphs, and others.

  • Document DB

    • Adopts a collection data model structure such as JSON or XML.
    • Originated from Lotus Notes.
    • MongoDB, BaseX, and CouchDB are examples.
  • Key-Value DB

    • The simplest type of solution where data is stored as key-value pairs.
    • Originated from the Amazon Dynamo Paper.
    • Redis and Memcached are examples.
  • Graph DB

    • Originated from Euler and graph theory.
    • Adopts Nodes, Relationship, and Key-Value data models.
    • Neo4J and OrientDB are examples.
  • Wide Columnar Store

    • Also called Big Table DB.
    • Originated from Google’s BigTable Paper.
    • Uses a Column Family data model developed from Key-Value.
    • HBase, Cassandra, and ScyllaDB are examples.

Difference between RDB and NoSQL

The characteristics of RDBs, or relational databases, and NoSQL, or non-relational databases, can be summarized as follows.

RDB and NoSQL differ not only in data structure, but also in the meaning of data integrity and scaling.

Category RDB NoSQL
Data structure Represents data structure in table form. It uses “tables” and “connections between tables” to represent data structure.
RDB
RDB
Represents data structure in methods other than table form.
Representation methods include documents (XML, JSON), key-value, and graphs.
Document
nosql-document
Key-Value
Key-Value
Graph
Graph
ACID characteristics Strict management is performed to prevent data inconsistency. Strict data integrity management, called eventual integrity, is not performed.
Speed is prioritized, and data is guaranteed to be consistent “eventually.”
Scaling Vertical scaling, meaning increasing server specifications, is easy to perform. Horizontal scaling, meaning increasing the number of servers, is a characteristic strength.

CAP theorem

  • Consistency
    • Also called concurrency or sameness.
    • Means guaranteeing that data queried by multiple clients at the same time is the same data.
  • Availability
    • Guarantees that all clients’ read and write requests can always receive a response.
    • Also called fault tolerance.
    • Fault-tolerant NoSQL can provide normal service even when some nodes in the cluster fail.
  • Partition tolerance
    • Means that in systems operating in regionally partitioned network environments, the systems in each region must continue operating normally even if the network between two regions is disconnected or network data is lost.

References