The relational database management system was a breakthrough when it first appeared about 40 years ago. A relational database puts power into a user’s hands. Few assumptions are needed about how data is related or how it is to be extracted. Data can then be viewed in a variety of ways, each one illustrating different connections or correlations. This power, history, and a little user inertia have led to the RDBMS being implanted and used in practically every sector of business today. Well-known RDBMS product examples are IBM DB2, Microsoft SQL Server, and Oracle databases.
Verticals of Choice
Any application where data precision and reliability are critical is a candidate for using a relational database. This includes anywhere from finance and manufacturing to logistics and human resources. By meeting all requirements of ACID (atomicity, consistency, isolation, and durability), reliable transaction processing is guaranteed by ensuring that all transactions are complete, use only valid data, only start after the last one has finished, and never get lost afterward. Structured query language (SQL) is often the method used to get data in and out of the database, and it provides a base for complex database queries and analysis. Further applications of RDBMS include data warehousing and data analytics.
How far can it go?
A relational database system imposes certain conditions. The data schema or record structure must be decided before the database starts to be filled with data. This may mean a trade-off between efficiency and future-proofing (using a schema with spare data fields) or performance. Relational databases also often have to remain on one physical system to continue to offer full ACID transactions. As the database quickly grows in size, it becomes much more expensive to maintain and manage than, say, using several smaller systems with the same total compute power. What that translates to is that other solutions may be needed to boost relational database performance once it hits a certain size.
In-memory Operation and Hadoop
By running a relational database in volatile, main memory instead of continually reading from and writing to hard disks, performance can be boosted significantly. On the other hand, the durability aspect of ACID is lost. If a server goes down, records of transactions in volatile memory are lost and cannot be restored afterward. Another solution is to do basic "heavy lifting" in another system and only use the RDBMS to finish the job afterward. Hadoop is a file system that can make use of the massive computing power of distributed, commodity servers. It can process huge amounts of data to send it back pre-digested to a relational database, from which the final reports and analyses are generated.
When the RDBMS Hits a Wall
Even if there are workarounds for size and speed, other limitations exist. An RDBMS handles simple data structures well, but fast becomes unmanageable with complex structures or multiple nested datasets. Because an RDBMS uses two-dimensional (rows and columns) tables, geo-spatial, engineering, and molecular modeling applications are often an uneasy fit. And for rapid-fire web traffic, an RDBMS soon starts creaking at the seams.
The next post in this series investigates a different approach to address some of these challenges: the NoSQL database.
If you haven't already, check out the previous blog in this series, Today's Database Landscape at a 50,000 Foot Level.