Not long ago, databases were analog, relying on paper or printed text media to store information. However, this quickly became obsolete, leading to the need to store information digitally and in a computerized manner.
The computer tools that made this possible are called Database Management Systems (DBMS), whose primary function is to facilitate the storage of data and its subsequent retrieval greatly.
Databases have many other functions that we can mention:
● Working with complex and non-predefined queries
● Offering flexibility and independence
● Avoiding redundancy
● Ensuring data integrity, user concurrency, and data security
There are many types of databases, primarily differentiated by how they work, the content they store, or the variability of the data they store.
In this article, we will briefly explore the classification and most common types of databases.
Types of Databases
Relational Databases (RDBMS)
A relational database organizes information into structured tables, where each table represents an entity or concept, and the rows of the table represent instances of that entity.
Each table is composed of columns that define the attributes of the entity. These tables are related through primary and foreign keys, establishing links and enabling queries between the data.
Its main advantage is the ability to efficiently and structurally manage large volumes of information. A Structured Query Language (SQL) can perform complex queries, yielding accurate and fast results.
Additionally, this approach ensures data integrity and consistency by applying rules and constraints through the established relationships between tables.
In these databases, information is organized in related tables, facilitating the management and querying of data. It provides a robust structure for storing information and allows for complex queries using a query language.
Furthermore, establishing relationships and applying constraints ensures data integrity and consistency.
Examples: MySQL, Oracle, y PostgreSQL.
Non-SQL Databases (NoSQL)
NoSQL databases, also known as "not only SQL," are database management systems designed to handle large volumes of unstructured or semi-structured data in a scalable and flexible manner.
Unlike relational databases, NoSQL databases don’t use the table and relationship model but instead adopt alternative data models such as documents, graphs, columns, or key-value pairs.
These databases are particularly well-suited for environments that require high-speed reading and writing, such as web and mobile applications, big data, the Internet of Things (IoT), and real-time analytics systems.
By avoiding the rigid structure of relational databases, NoSQL databases offer greater flexibility and horizontal scalability, meaning that new servers can be added to handle the workload instead of relying on a single powerful server.
However, NoSQL databases also have some limitations. As they do not utilize the relational model, they do not provide the same level of data consistency and integrity guarantees.
They may require more design and development effort to model and query the data effectively. Each type of NoSQL database has its characteristics and suitable use cases, so it is essential to carefully evaluate each project's specific requirements and features before choosing a NoSQL database.
Examples: MongoDB, Apache Cassandra, Neo4j, Redis.
In-Memory Databases (IMDB)
They store and manipulate data in the system's main memory rather than using traditional storage devices like hard drives. This means that data is stored temporarily and accessed directly from RAM, enabling much faster and more efficient data access.
In-memory databases are widely used in applications requiring high-speed reading and writing, such as real-time applications, analytics, and data caching systems.
By eliminating the need to access disks to retrieve data, in-memory databases offer fast response times and increased capacity to handle large volumes of data simultaneously.
Examples: Redis, SAP HANA.
As the name implies, these run in the cloud and allow for storing, managing, and accessing data remotely over the internet.
These databases eliminate the need for local physical infrastructure, as the data is stored and processed on remote servers managed by cloud service providers.
Cloud databases offer advantages such as scalability, flexibility, and high availability, as they allow for adjusting resources according to the storage and processing needs of the data and provide the ability to access data from anywhere at any time.
Cloud databases often include data security and backup features, providing a reliable and convenient solution for storing and managing enterprise data.
Examples: Google Cloud Spanner, Amazon RDS.
They rely on graph theory to store and relate data. They use a data model of nodes and relationships, where nodes represent entities and relationships represent connections between them.
Graph databases are designed to handle and query highly interconnected data, such as social networks, recommendations, network analysis, and recommendation systems.
They enable complex and efficient queries to discover patterns and relationships in the data, focusing on the structure and connections between nodes rather than using a tabular data model.
Graph databases are handy when deep analysis of relationships and efficient navigation through complex networks is required.
Examples: Neo4j, JanusGraph.
Object-oriented Databases (OODB)
They are based on the principles of object-oriented programming for storing and manipulating data. Instead of using the tabular data model of relational databases, object-oriented databases allow for the direct storage of complex objects, such as programming objects, in the database.
These objects have attributes and methods and can be related to each other through inheritance and composition.
OODBs provide greater flexibility in representing complex data and enable closer integration between applications and the database.
They are beneficial in environments where data is highly structured and complex object manipulation is required, such as in scientific applications, object-oriented software design, and development systems.
Examples: MongoDB, db4o.
Hierarchical databases are database management systems that organize information in a tree-like structure or hierarchy. In this model, data is collected into levels, where each group comprises records or segments containing related data. Each record or segment can have multiple children but can only have one parent.
This storage approach reflects a relationship of dependency or subordination between the data. Hierarchical databases are primarily used in applications that require fast and efficient access to data organized in a tree structure, such as file management systems and geographic information systems (GIS).
However, their usage has decreased over time due to the popularity of relational databases and other more flexible data models.
Example: IBM's Information Management System (IMS).
These support multiple data models within a single platform. Instead of being limited to a single data model, such as the relational or document model, multimodel databases combine different models like graphs, documents, key-value, or columns within a single system.
This provides flexibility to developers and enables them to choose the most appropriate model for each data type or use case.
Multimodel databases facilitate the integration of different data sources and offer the possibility to utilize specific models to structure and query data efficiently.
This makes them particularly useful in scenarios where data with other structures must be managed and agile and versatile information management is required.
Examples: OrientDB, ArangoDB.
Time-series Databases (TSDB)
They are specifically designed to store, manage, and analyze evolving data. These databases are optimized to handle large volumes of sequential data, such as sensor logs, financial data, performance metrics, and event records.
The data in a time series database is organized based on time and can be efficiently accessed and analyzed using queries that consider the data's temporal characteristics, such as intervals, time windows, and aggregations.
Time series databases offer features like data compression, optimized storage, and real-time metric and aggregation calculations, making them ideal for applications that require detailed analysis and tracking of evolving data.
InfluxDB is a database of this type, which w discuss in detail in this article. Another example can be TimescaleDB.
There are several types of databases, each with their characteristics and approaches. Each type of database has its place in different scenarios and applications, and it is essential to understand their strengths and weaknesses when choosing the best option to meet specific data storage and management needs.