Relational vs NoSQL – When Should I Use One Over the Other?
In order to successfully compete in today’s digital marketplace, businesses have to satisfy ever-increasing data demands. You’ll need to factor in both data and underlying application requirements when choosing a data management platform. The choices are a traditional relational database management system (RDBMS) or NoSQL.
What is a relational database?
A RDBMS, or relational database, uses tables made up of rows and columns to store data. The tables are linked based on common data attributes. This highly organized framework is a good fit when an organization has structured data and doesn’t expect its database to grow or change much over time. Relational databases emphasize normalization, attempt to alleviate data duplication, and can be easily queried using SQL (Structured Query Language). However, they are inflexible and difficult to modify. For that reason, considerable upfront time and effort is needed to thoroughly think through the data model and all possible data types that might be needed. That often proves to be an impossible task. And, now that data storage costs have drastically declined, a high premium no longer needs to be placed on removing data replication.
Relational vs. NoSQL: Requirements at a glance
IT analysts and investors say that NoSQL will dominate new software stack spending for years to come. It was designed for modern environments that span digital, mobile, and cloud applications and run everywhere. Today’s underlying application requirements call for a modern data platform and a migration from traditional databases. A strategy that incorporates both legacy and new data management capabilities is often required.
NoSQL and RDBMSs are designed to support different application requirements and can co-exist in most enterprises. The key decision points on when to use RDBMS or NoSQL technology for your applications include:
When to Use NoSQL |
When to Use a RDBMS |
Location independent / decentralized apps (e.g., web, mobile, and IoT) |
Location dependent / centralized apps (e.g., ERP) |
Continuous application availability |
High to moderate application availability |
High to low data/user activity |
Moderate to low data/user activity |
High to low online data volumes (e.g., requirement to retain data forever) |
Moderate to low online data volumes |
High-velocity data (devices, sensors, etc.) |
Moderate velocity data |
Semi/unstructured and structured data |
Primarily structured data |
Contextual transactions |
Traditional-only transactions |
Cloud-native database functionality |
Cloud-compatible database functionality |
Scale for both high volume reads and writes |
Scale for high volume reads |
Multi-data center, multi-cloud support |
No multi-directional data center or multi-cloud requirement |
When does using a relational database make sense?
If a company has highly structured data, doesn’t expect high growth, and is in a vertical that requires the highest level of data integrity, security and compliance, a relational database might make sense. A RDBMS can be a good fit for transaction-focused applications where relationships are clear and easily defined and complex queries are required.
For these reasons, relational databases could be the right choice for a data warehouse using OLAP (online analytical processing), online transaction processing (OLTP), or for storing private health information. They could also be considered for financial, accounting, defense or security applications.
A NoSQL use case example: fraud detection
If your organization has a variety of data types, has a large store of data that is expected to grow, and can’t afford any downtime, there’s a good chance a NoSQL database is the right choice. It’s also a good fit for working with big data and performing real-time analytics. While there are numerous use cases where NoSQL will yield better results than a relational database, let’s take a closer look at one: fraud detection and identity authentication.
Fraudsters are a creative bunch and their attacks continue to rise. To stay one step ahead, organizations need to continuously conduct real-time analysis of a wide-range of data types to pinpoint patterns and anomalies. Getting this right is mission critical. A company’s most precious assets, its data and reputation, are at stake. NoSQL databases make perfect sense with the mix of needs for fraud detection and identity authentication, including real-time analysis of historic and live data, large and growing datasets and a high variety of data types.
Let’s take a look at a real-world example. ACI Worldwide provides real-time payment capabilities to 19 of the top 20 banks in the world. The company’s transaction volume is astronomically high, processing trillions of dollars in payments every day, and its data analysis needs are complex. ACI needed the flexibility to continuously analyze an ever-changing mix of data types. Using relational databases to handle their scale became impractical and cost-prohibitive. To meet their needs, ACI moved to a NoSQL database built on DataStax Enterprise (DSE), and have improved their fraud detection rate and false positive rate, saving their customers millions of dollars in the process.
Read more about how ACI is fighting fraud with a NoSQL solution. Also check out, “NoSQL Use Cases: When to Use a Non-Relational Database,” for more detail and additional NoSQL use case examples.
The 3 most common methods of implementing a NoSQL database
How do you approach moving to NoSQL and implementing your first application? In general, there are three ways to go about implementing with a NoSQL database:
- New Applications: Begin with NoSQL by choosing a new application and start from the ground up. Such an approach mitigates the issues of application rewrites, data migrations, etc.
- Augmentation: Augment an existing system by adding a NoSQL component to it. This often happens when applications outgrow RDBMS (e.g., due to scale problems, there’s a need for better availability, hybrid/cloud environments, etc.)
- Full database replacement: For RDBMS systems that are simply proving too costly to keep, or are failing due to increases of user concurrency, data velocity, or data volume, a full replacement is done with a NoSQL database.
DataStax Enterprise makes it easy
DataStax makes it easy to build, deploy, and scale modern applications that exploit the full value of ever-growing data. We built DataStax Enterprise (DSE) on Apache Cassandra®, one of the most popular open source databases with enterprise-proven scale, constant uptime, and elegant data distribution.
DataStax provides best-in-class support for modern application requirements that signal the need for a high-performance NoSQL data platform:
Application Requirement |
Supported |
DataStax Enterprise |
Location independence / Decentralized apps |
✔ |
Masterless architecture—the gold standard in data replication; accessible data any time—easily put data anywhere and synchronize it everywhere |
Continuous availability |
✔ |
Masterless architecture provides zero downtime—complete redundancy in data and compute resources |
High data/user activity |
✔ |
Linear scale and uniform response times via scale-out deployment |
High online data volumes |
✔ |
Linear scale capability via scale-out deployment |
Flexible schema |
✔ |
Semi/unstructured, structured data management; multi-model support for tabular, documents, key-value, and graph |
Contextual transactions |
✔ |
Integrated analytics, search, and in-memory engines for full contextual support |
Cloud native |
✔ |
Foundation built and proven by internet pioneers for cloud-native experience |
Scale for reads and writes |
✔ |
Low latency, lightning fast data loads, writes, and reads for current or future scale needs |
Multi-data center |
✔ |
Multi-directional, on-premises, hybrid cloud, multi-cloud, and intercloud support |
NoSQL resources
Take a look at the resources below to learn more about NoSQL benefits and implementation.