A database allows multiple users to maintain, update, and edit stored information quickly, securely, and efficiently. That makes a database useful for a host of real-life cases such as keeping track of corporate accounting records, storing huge amounts of data from a network of IoT devices, tracking your company's inventory systems, or building a web application. There are different types of modern databases available, each with a distinct set of advantages and disadvantages. This article gives you a bird's eye view of the most popular types of modern databases.
Table of Contents
TRUSTED BY COMPANIES WORLDWIDE
Enjoying This Article?
Receive great content weekly with the Xplenty Newsletter!
SQL-based vs NoSQL-based
Before diving into the most popular modern database options, it's important to understand the difference between a relational database management system (RDBMS, i.e. SQL databases) and a non-relational database management system (NoSQL databases).
Related Reading: SQL vs NoSQL - How Are They Different?
For most of the last 40 years, businesses relied on relational database management systems (RDBMSs)—that used the programming language SQL. And SQL-based model continues to dominate. As of 2019, 60.5% of databases were SQL-based relational database management systems.
* Image source scalegrid.io.
Still, each year, NoSQL-based non-relational database management systems are becoming more popular—particularly because data scientists want to expose their machine learning business analytics tools to more unstructured data. Let's look at how these database styles differ.
Relational Database Management Systems (SQL-Based)
Relational database management systems (RDBMSs) use SQL, a database management language that offers a highly organized and structured approach to information management. Similar to the way a phone book has different categories of information (name, number, address, etc.) for each line of data, relational databases apply strict, categorical parameters that allow database users to easily organize, access, and maintain information within those parameters.
The primary reasons why SQL-based RDBMSs continue to dominate are: (1) they are highly stable and reliable; (2) they adhere to a standard that integrates seamlessly with popular software stacks like LAMP; and (3) we've been using them for more than 40 years.
- ACID compliance: If a database system is "ACID compliant," it satisfies a set of priorities that measure the atomicity, consistency, isolation, and durability of database systems. The more ACID-compliant a database is, the more it serves to guarantee the validity of database transactions, reduce anomalies, safeguard data integrity, and create stable database systems. Generally, SQL-based RDBMSs achieve a high level of ACID compliance, but NoSQL databases give up this distinction to gain speed and flexibility when dealing with unstructured data.
- Ideal for consistent data systems: With a SQL-based RDBMS, your information will remain in the structure you originally create. If you don't need a dynamic information system for massive amounts of data—and you're not dealing with numerous data types—an RDBMS offers great speed and stability.
- Better support options: Because RDBMS databases have been around for over 40 years, it's easier to get support, add-on products, and integrate data from other systems.
- Scalability challenges and difficulties with sharding: RDBMSs have a more difficult time scaling up in response to massive growth compared to NoSQL databases. These databases also present challenges when it comes to sharding. Sharding is the process of dividing a large database into smaller parts for easier management. If you're dealing with a conservative database that you don't expect to change a lot in the years ahead, the sharding and scaling challenges related to RDBMS solutions may never apply to you. On the other hand, if you plan to scale up and grow in the years ahead, a non-relational database system (NoSQL-based) could be a better match for your needs.
- Less efficient with NoSQL formats: Most RDBMSs are now compatible with NoSQL data formats, but they don't work with them as efficiently as non-relational databases.
Three of the most popular RDBMS/SQL database engines (which we'll talk about in more detail below) are:
Non-Relational Database Systems (NoSQL-based)
Imagine you're tasked with managing large amounts of unstructured data, such as text from emails and customer surveys, data collected by a network of mobile apps, or random social media information. The information is unorganized. There isn't a clearly-defined schema like you would find in an RDBMS. You can't store such information in an RDBMS. But you can store it with a non-relational (or NoSQL) database system.
Non-relational databases let you organize information in a looser fashion—kind of like dropping the information in different file folders. This is important for two reasons: (1) you can store unstructured information and expose it to powerful business intelligence systems that will analyze it with AI algorithms; and (2) you can store unstructured data that you plan to structure later.
Non-relational databases also work with NoSQL formats like JSON, which has become essential for web-based applications that let websites update "live" without needing to refresh the page.
Non-relational DBMS advantages:
- Excellent for handling "big data" analytics: The main reason why NoSQL databases are becoming more popular is that they remove the bottleneck of needing to categorize and apply strict structures to massive amounts of information. NoSQL databases like HBase, Cassandra, and CouchDB support the speed and efficiency of server operations while offering the capacity to work with large amounts of data.
- No limits on types of data you can store: NoSQL databases give you unlimited freedom to store diverse types of data in the same place. This offers the flexibility to add new and different types of data to your database at any time.
- Easier to scale: NoSQL databases are easier to scale. They're designed to be fragmented across multiple data centers without much difficulty.
- No data preparation required: When there isn't time to design a complex model, and you need to get a database running fast, non-relational databases save a lot of time.
Non-relational DBMS disadvantages:
- More difficult to find support: Because the NoSQL community doesn't have 40 years of history and development behind it, it could be more difficult to find experienced users when you need to troubleshoot.
- Lack of tools: Since the system is relatively new compared to SQL-based RDBMS solutions, there aren't as many tools to assist with performance testing and analysis.
- Compatibility and standardization challenges: Newer NoSQL database systems also lack the high degree of compatibility and standardization offered by SQL-based alternatives. You may find that the data in your non-relational database management system doesn't readily integrate with other products and services.
Different Types of Non-Relational Databases
Broadly speaking, non-relational databases can be broken down into four different types:
1. Graph stores
These types of databases make data visualization easier. They are great at storing relationships between diverse data points with the help of nodes. Graph stores may not be the most scalable databases. However, they are efficient at use cases such as fraud prevention. Common examples of graph databases are Neo4j and JanusGraph.
2. Column stores
There are schema-agnostic databases that can handle querying of non-sequential data in real-time. Common use-cases for these types of databases are web analytics and analyzing data from sensors. Apache Cassandra and HBase are two of the most commonly used column stores.
3. Key-value stores
These types of databases are employed where speed is of utmost importance. These are very simple database management systems that store key-value pairs. The end goal is to fetch basic data quickly. Common use-cases for these types of databases are leaderboards and shopping-cart data. Two of the most well-known key-value stores are Redis and Couchbase Server.
4. Document stores
Document stores are databases with flexible schemas. These types of databases are best suited to store semi-structured data and can handle dynamic querying. Common use-cases for document stores include customer data, user-generated content, and order data. MongoDB and PostgreSQL are examples of document stores.
Interestingly, most RDBMSs—like Oracle, MySQL, and Microsoft SQL Server—now offer NoSQL functionality. Nevertheless, non-relational DBMSs like PostgreSQL usually work better with these NoSQL formats.
TRUSTED BY COMPANIES WORLDWIDE
Enjoying This Article?
Receive great content weekly with the Xplenty Newsletter!
How to Choose the Right Type of Database
Given that there are so many different types of databases, choosing one can be confusing. Here are some factors you should keep in mind when selecting a database management system:
If atomicity is a top priority for you, stick to a relational database. Atomicity in database management promotes consistency in a database. It rests on the principle of atomic transactions. These are series of operations that are considered as a composite operation. In other words, either all operations in an atomic transaction occur, or none at all. The simplest example of an atomic transaction is transferring money from account A to account B. Balance from account A should be deducted and the requisite number should be added to account B. Both the operations need to be successful for the transaction to be successful.
2. Vertical or horizontal scaling
If your data strategy rests on vertical scaling, a relational database is fine. Vertical scaling adds more compute power to a sever instead of adding more servers to the system. It is preferred when there are limited number of users and not a lot of querying involved. In that sense, vertical scaling might be suitable for business-facing startups. The basic advantages of vertical scaling are speed and simplicity.
If speed is more important than ACID compliance, a non-relational database, such as a document database, is a better bet. For instance, in the case of real-time data, such as sensor data, some compromise in data integrity can be tolerated in favour of speed. In a non-relational database, each record is an independent entity. Thus, it is possible to run multiple queries simultaneously irrespective of the size of the database.
Overview of Popular Databases
If you're shopping for a DBMS, consider choosing from one of the five popular database engines below. These databases support, both, SQL and NoSQL data formats. However, the non-relational databases—like PostgreSQL and MongoDB—tend to work better with NoSQL formats. The relational databases—like Oracle, Microsoft SQL Server, and MySQL—work better with purely SQL formats.
Oracle has provided high-quality database solutions since the 1970s. The most recent version of Oracle Database was designed to integrate with cloud-based systems, and it allows you to manage massive databases with billions of records. Traditionally, Oracle has offered RDMBS solutions. Today, there are, both, SQL and NoSQL database solutions available.
Oracle database advantages:
- The most advanced technology: Oracle is known for being on the leading edge of database technology. They have a long-standing reputation for bringing quality – along with the latest features and innovations – to their customer base.
- A wide range of solutions: Oracle offers a massive suite of tools and solutions that can address virtually any information challenges you encounter.
Oracle database disadvantages:
- An expensive solution: Oracle tends to be a high-cost solution that smaller, non-enterprise-level organizations might not be able to afford.
- System upgrades might be required: Your current system specifications might not be enough to implement Oracle. Many businesses have to upgrade their hardware before using Oracle solutions.
Best use case for Oracle:If you’re a large organization that needs to manage a massive amount of data, Oracle could be the ideal choice.
MySQL is a free, open-source RDBMS solution that Oracle owns and manages. Even though it’s freeware, MySQL benefits from frequent security and features updates. Large enterprises can upgrade to paid versions of MySQL to benefit from additional features and user support. Although MySQL didn't support NoSQL in the past, since Version 8, it provides NoSQL support to compete with other solutions like PostgreSQL. Read more about the differences between MySQL and PostgreSQL here.
- It’s free: As an open-source RDBMS solution, MySQL is free to use in any way you want.
- Highly compatible with other systems: MySQL has a reputation for being compatible with many other database systems.
- Missing features common to other RDBMSs: Because MySQL prioritizes speed and agility over features, you might find that it’s missing some of the standard features found in other solutions. For example, the ability to create incremental backups.
- Challenges getting quality support: The free version of MySQL does not come with on-demand support. However, MySQL does have an active volunteer community, useful forums, and a lot of documentation that you may find useful.
Best use case for MySQL: MySQL is a particularly valuable RDBMS solution for businesses that need a solution with enterprise-level capabilities, but are operating under strict budget constraints. It is an extremely powerful and reliable modern RDBMS with a free tier.
Microsoft SQL Server
Microsoft SQL server is a database engine that is compatible with, both, on-site and cloud-based servers. Moreover, there is a Windows and a Linux version of Microsoft SQL. In 2016, Microsoft also added temporal data support. The feature is useful for querying historical data whose state might have changed.
Microsoft SQL Server also supports dynamic data masking, which boosts security by masking sensitive information from non-privileged users.
Microsoft SQL Server advantages:
- It's mobile: This database engine allows you to access dashboard graphics and visuals via mobile devices.
- Integrates with Microsoft products: Companies that rely heavily on Microsoft products will enjoy the way SQL Server integrates easily with these applications.
- It's fast: Microsoft SQL Server has built a reputation around being fast and stable.
Microsoft SQL Server disadvantages:
- It's expensive: Considering that there are plenty of free database engines available, the cost of Microsoft SQL Server is steep. It's over $14,000 for one enterprise-level license per core. There are scaled down licensing options for approximately $3,700 and $900, and a free version you can use to test the platform.
- Requires a lot of resources: This resource-heavy RDBMS may require you to purchase better hardware. Here is a review of Microsoft SQL Server that highlights the issue.
Best use case for Microsoft SQL Server: If you're an enterprise-level corporation that relies heavily on Microsoft products, the speed, agility, and reliability of Microsoft SQL Server could be an excellent choice.
PostgreSQL is an open-source, free database engine with unlimited scaling capabilities. PostgreSQL supports, both, relational and non-relational data formats.
As a highly trusted DBMS that has been around since the early 1990s, PostgreSQL has a devoted user base and has won the prestigious Database of the Year Award, twice.
An interesting feature of PostgreSQL is its history of working with both structured (SQL) and unstructured (NoSQL) data. PostgreSQL has a catalog-driven approach, which makes it highly extensible. It doesn’t simply store information to identify tables and columns. It allows you to define data types, index types, and functional languages. It's also compatible with most operating systems, including Linux platforms, and it integrates well with data from a wide variety of databases. PostgreSQL also works with, both, on-site servers and cloud-based servers.
Even though it's a non-profit, free database system, a large network of devoted followers and volunteers offer free support to users and regularly update the system.
- More features: PostgreSQL has a lot more features than others DBMSs. These extra features include table inheritance, a rich set of data types (including native support for JSON), ability to define a column as an "array" of column types, among others.
- Highly ACID Compliant: PostgreSQL consistently ranks as the most ACID compliant DBMS. If data data integrity is your top priority, PostgreSQL could be an ideal choice.
- Massive Scalability: PostgreSQL can work with massive database tables.
- Lack of documentation: PostgreSQL doesn't have the best documentation compared to other database engines. If you run into an issue, you might need to seek help from a private PostgreSQL support firm, or try your luck with the community support forums.
- Issue of speed with read-only operations: PostgreSQL excels with read-write operations for data that needs validation, but slowdowns could happen when working with read-only operations.
Best use case for PostgreSQL: Since PostgreSQL is completely free and scalable, this is an excellent solution for companies of any size. More importantly, if you can benefit from a DBMS with native JSON support, PostgreSQL is for you. Read more about whether you should choose PostgreSQL or MySQL here.
MongoDB is a free, open-source database engine built especially for applications that use unstructured data. Because most DBMSs were built for structured data—even if add-ons allow them to handle non-relational data now—MongoDB excels where other DBMSs fail. MongoDB works with structured data too, but since this database engine wasn't designed for relational data, performance slowdowns are likely.
MongoDB connects non-relational databases with applications by using a wide variety of drivers (based on the programming language of the application). The most recent versions of MongoDB include pluggable storage engines. Upgraded text search features are also available, along with partial indexing features, which can help with performance.
- NoSQL support: This DBMS was specifically made to support JSON and NoSQL data.
- Highly flexible: Since MongoDB stores and manages any kind of information, developers face fewer restrictions when incorporating data into a MongoDB database.
- Great for applications including web-based apps: MongoDB has become a popular DBMS for web-based applications.
- No SQL querying: MongoDB will not accept SQL queries. You can use additional tools to translate your SQL queries to work with this database engine. However, the workaround can be inconvenient.
- Difficult to set up: MongoDB takes time and more experience to set up properly than other solutions.
- Lack of security: The native settings on MongoDB don't tend to be very secure. Additional steps will be required to secure this database.
Best use case for MongoDB: If you're building an application on top of an operational database and you need a really fast response time, MongoDB could be the right choice for you. However, if you're building a data warehouse for analytics purposes, you might want to use a different platform.
Xplenty: Advanced Data Integration Solutions
It is possible to use more than one type of database to meet different goals of your data strategy. Xplenty helps bring all your data sources together with its easy-to-use integration platform. Learn more about Xplenty's automated ETL data pipelines and low-code integration solutions or contact us to schedule a demo and 14 day free trial and experience the platform for yourself.