Head of Database Migration Department, Ispirer Systems
There are a myriad of various databases and their number keeps growing. A unified classification has not yet been identified, since there are countless criteria for distinguishing different types. Besides, considering that the same database can be of different types, you can get completely lost.
In this article, we'll look at the most popular types of databases to provide a basic overview and help you determine which one is right.
Hierarchical databases
Hierarchical database, as the name suggests, is the type of database that stores data in the form of hierarchy. Most often such a database type is used in cases where the main focus of information gathering is based on a concrete hierarchy, such as several individual employees reporting to a single department at a company.
The schema of hierarchical databases reminds of a tree-like structure, in which there is typically a “root” parent directory of data stores connected to other subdirectory branches.
Characteristics of hierarchical database models include simplicity, but also lack of flexibility. Hierarchical structures, unlike relational databases, do not describe many-to-one relationships or many-to-many relationships due to the fact that child records can only have a single parent.
Note that due to such a structure, hierarchical databases are not easily sсalable, adding data elements requires a lengthy traversal through the database.
Examples: IBM Information Management System (IMS)
Network databases
A network database employs a network model for data organization. Within this framework, data is structured as a series of interconnected records. Each record signifies an entity, while the relationships among these entities are depicted as connections between the records.
In a network database, a single record can link to multiple parent and child records, forming an intricate web of data relationships. This design provides a more versatile and expressive data model compared to hierarchical databases, which are constrained by a more rigid one-to-many relationship structure between parent and child nodes.
Examples: Integrated Data Store (IDS), TurboIMAGE
Object-oriented databases
An object-oriented database uses the same concepts as object-oriented programming, where data and its properties are bundled together into objects. These databases are managed by systems called object-oriented database management systems. They work well with programming languages like C++ and Java. Just like relational databases, they follow ACID rules to ensure reliable transactions.
Examples: Wakanda, ObjectStore
Relational databases
This type of database is the most widely known among other database types. In this database, data is organized in tables and rows, where each data point is related to each other. Relational databases imply that the data is tabulated, which means that every row in a table is linked to another row using a primary key. Similarly, every table is linked to another table using a foreign key.
Structured Query Language is the predominant language used for creating, reading, updating, and erasing data. Relational databases are highly dependable and adhere to the ACID (Atomicity, Consistency, Isolation, Durability) principles, which are a standard set of characteristics for dependable database transactions. These databases are effective with structured data. Entities with a significant amount of unstructured or semi-structured data should not contemplate using a relational database.
Examples: MySQL, PostgreSQL, Oracle, DB2
NoSQL databases
A NoSQL database, meaning "non-SQL" or "non-relational," offers a way to store and retrieve data without using the tabular relations of relational databases.
NoSQL databases are designed for simplicity, easy horizontal scaling across clusters of machines, and better control over availability. They use different data structures than relational databases, which can make certain operations faster. The choice of a NoSQL database depends on the specific problem it needs to address. These data structures are often considered more flexible than the tables in relational databases.
There are different data models of NoSQL databases. Most popular are key-value, document, graph databases. Let’s review them in more detail below.
Key-value databases
Key value databases, also known as key value stores, store data in a "key-value" format. They are designed for efficient reading and writing of data. A unique key or a number of unique keys fetch the data to retrieve the associated value with each key. The values can be simple data types like strings and numbers or complex objects.
Examples: Amazon DynamoDB, Redis.
Document databases
Document databases, also known as document stores, employ JSON-like documents for data structuring rather than the conventional rows and columns. Document-oriented databases specifically handle document-oriented or semi-structured data. Their straightforwardness and ability to scale make them perfect for mobile applications that need quick development cycles.
Examples: MongoDB, Amazon DocumentDB, and Apache CouchDB.
Graph databases
Graph databases are a form of NoSQL database grounded in graph theory. Graph-oriented database management systems are specifically designed to recognize and manage the connections between various data points. Consequently, graph databases are frequently employed to analyze relationships among diverse data points, such as in fraud detection or for extracting customer insights from social media.
Examples: Datastax Enterprise Graph and Neo4J.
Cloud databases
A cloud database refers to any database that’s designed to run in the cloud. Similar to various cloud-based programs, cloud databases provide adaptability and scalability, coupled with high uptime. They are typically easy to maintain as many are provided through a SaaS framework.
Examples include: Microsoft Azure SQL Database, Amazon Relational Database Service, and Oracle Autonomous Database.
Open-source databases
An open-source database is a free resource that the public can utilize without any charges. In contrast to proprietary databases, open-source databases grant access to the source code and permit its modification. The term "open source" signifies that users have the liberty to inspect and modify the program's source code. Although open-source databases are typically more cost-effective than their commercial counterparts, they might lack some of the sophisticated features that commercial databases provide.
Examples: PostgreSQL, MySQL, MariaDB
Operational databases
An operational database management system is software that is designed to allow users to easily define, modify, retrieve, and manage data in real-time. While conventional databases rely on batch processing, operational database systems are oriented toward real-time, transactional operations. Operational databases, which can be based on SQL vs. NoSQL, are the source for data warehouses and are critical to business analytics operations. Popular operational database examples include Apache Cassandra and AWS DynamoDB.
Distributed databases
A distributed database is a system that disperses data storage across numerous locations instead of just one. Rather than storing all data on a single server or computer, it spreads the data across multiple servers or a group of computers, each known as a node. These nodes can be spread out geographically and could be made up of physical computers or virtual machines within a cloud-based setting.
Examples: Google Spanner, Amazon Aurora, Apache Cassandra.
Centralized databases
A centralized database is an organized assembly of data that is kept and handled in one specific place. This place is usually a robust server or a group of servers, acting as the main storage for all the data. In this framework, all tasks associated with the database, such as storage, extraction, and administration, are executed at this central spot.
Example: Microsoft SQL Server, Oracle, IBM DB2.
Serverless
A serverless database can change its size based on the application's needs and handle unexpected workloads. It does not require pre-planning for these workloads.
Serverless computing saves money by only charging for the resources you use. It can easily scale up or down based on demand. With serverless computing, you don't have to worry about managing servers. This can lead to a decrease in overall expenses.
If you use a non-serverless database in a serverless computing architecture, you lose these advantages. The major feature of a serverless database is its ability to adjust capacity based on its workload.
A serverless database works when and wherever it is needed. A service provider will manage the database for you, including the provisioning of instances or clusters.
Examples: Amazon DynamoDB, Amazon Aurora, MongoDB.
Online Transaction Processing (OLTP) vs. Online Analytical Processing (OLAP)
OLTP and OLAP are two different types of data processing systems used for different purposes: transactions and analysis. OLTP systems are designed to efficiently process many quick online transactions like adding, updating, and deleting data. These systems can handle lots of transactions quickly, keeping data accurate and responding fast to users. Typical applications of OLTP systems include banking transactions, order entry, and retail sales.
Online analytical processing (OLAP) systems are designed for complex querying and data analysis, rather than transactional operations, in contrast. OLAP systems are best for reading lots of data and analyzing it in different ways. This task involves summarizing, consolidating, and aggregating data, which typically enhances query performance by storing it in a denormalized format.
OLAP systems help with decision-making by analyzing past data to find trends, which is important for business intelligence. Common uses of OLAP include sales forecasting, financial reporting, and market research. OLTP focuses on the day-to-day operational data, while OLAP focuses on long-term strategic data analysis.
Choosing the right database
Choosing a database is a crucial step that can cost your organization a pretty penny if you make the wrong choice. That is why you need to approach the choice of a database by carefully weighing the pros and cons. You need to ask a few important questions to those who make decisions in the company:
- Do you need a database for research on real-time sales decisions?
- How much should a database cost?
- What type of database is most effective for the organization’s goals (NoSQL for broad research, SQL for day-to-day processes, graph databases for establishing relationships, etc.)?
- How quickly should data be processed?
Conclusion
Numerous database varieties exist, each with its own pros and cons. Prior to choosing the appropriate database for your needs, it's essential to gain a comprehensive grasp of how your data correlates with your application, and how you foresee your data and application processes developing.
If a system has been in use for many years, the originally selected database may no longer be ideal due to changes in volumes, loads, and use cases. In such cases, migrating to a new database can be an excellent solution. For instance, if you need to migrate Oracle database, you can automate the process with Ispirer Toolkit, allowing for seamless and continuous migration.
Ispirer Toolkit is a comprehensive solution for cross-platform database migrations. It supports a wide range of different databases, including SQL Server, PostgreSQL, MongoDB, IBM DB2, MySQL and others. Each direction is individual and each database is unique, in order to find out details about migrating your database, book a demo with the Ispirer experts.