Learning DB Layer: NoSQL DBS OR SQL RDBMS ?
RDBMS (Relational Database Management System) is a more complex database management system that lets you organize, maintain, retrieve, and administer tabular databases , these
- MSSQL/Azure SQL
- Google CloudSQL
Different Types of NoSQL Databases
NoSQL also has several database types, giving you the flexibility to choose what’s the best fit for your data and objectives. The main types are:
- Key-value databases
Key-value databases are some of the least complex NoSQL databases, as all their data consists of an indexed key and a value. They use a hashing mechanism such that given a key, the database can quickly retrieve an associated value. Hashing mechanisms provide constant time access, which means they maintain high performance even at large scale. The keys can be any type of object, but are typically a string. The values are generally opaque blobs (i.e., a sequence of bytes that the database does not interpret). They make it easy to store large amounts of data and quickly perform lookup queries.
- Amazon DynamoDB
- Oracle NoSQL
Some tabular NoSQL databases, like Cassandra, can also service key-value needs.
2. Document databases
Document databases expand on the basic idea of key-value stores where “documents” are more complex, in that they contain data and each document is assigned a unique key, which is used to retrieve the document. These are designed for storing, retrieving, and managing document-oriented information, often stored as JSON. Each document can contain different types of data. Groups of documents are called collections. Each document in a collection can have a different structure.
Since the document database can inspect the document contents, the database can perform some additional retrieval processing. Unlike RDBMSs which require a static schema, Document databases have a flexible schema as defined by the document contents.
Note that some RDBMS and NoSQL databases outside of pure document stores are able to store and query JSON documents, including Cassandra.
3. Tabular databases
Tabular databases organize data in rows and columns, but with a twist from the traditional RDBMS. Also known as wide-column stores or partitioned row stores, they provide the option to organize related rows in partitions that are stored together on the same replicas to allow fast queries.
Unlike RDBMSs, the tabular format is not necessarily strict. For example, Apache Cassandra™ does not require all rows to contain values for all columns in the table. Like key-value and document databases, tabular databases use hashing to retrieve rows from the table.
- Google Bigtable
4. Graph databases
Graph databases store their data using a graph metaphor to exploit the relationships between data. Nodes in the graph represent data items, and edges represent the relationships between the data items. Graph databases are designed for highly complex and connected data, which outpaces the relationship and join capabilities of an RDBMS. Graph databases are often exceptionally good at finding commonalities and anomalies among large data sets.
- DataStax Graph
- Amazon Neptune
Multi-model databases are an emerging trend in both the NoSQL and RDBMS markets. They are designed to support multiple data models against a single, integrated backend. Most database management systems are organized around a single data model that determines how data can be organized, stored, and manipulated. By contrast, a multi-model database allows an enterprise to store parts of the system’s data in different data models, simplifying application development.
There are many different multi-model database types available on the market. The one distinguishable feature is the support for multiple models in one backed engine.
Some databases layer multiple models on the engine through components. However, these kinds of databases are not authentic multi-model databases.
Another critical difference between databases is the available modeling techniques. This aspect is essential for maximizing the usefulness of the available data.
MarkLogic Server is a multi-model NoSQL database that started as an XLM storage and developed further to store multiple data formats, such as:
ArangoDB is a multi-model native database system. The supported data formats are:
OrientDB is an open-source multi-model NoSQL database written in Java. The database supports the following models: