Database Design – How Could RDBMSes Be Considered a Fad?

databasedatabase-designprogramming-languagesrelational-database

Completing my Computing A-level in 2003 and getting a degree in Computing in 2007, and learning my trade in a company with a lot of SQL usage, I was brought up on the idea of Relational Databases being used for storage.

So, despite being relatively new to development, I was taken-aback to read a comment (on https://softwareengineering.stackexchange.com/q/89994/12436 ) that said:

[Some devs] despise [SQL] and think that it and RDBMS are a fad

Obviously, a competent dev will use the right tool for the right job and won't create a relational database when e.g. flat file or another solution for storage is appropriate, but RDBMs are useful in a massive number of circumstances, so how could they be considered a fad?

Best Answer

The key is in the R in the RDBMS, which stands for relational. Contrary to popular belief it doesn't mean relations between tables, but rather the fact, that each table is relation in mathematical sense of the word.

Relational model has quite significant implications. You have to model your data to fit relations and normalize that model. If your application is designed as object-oriented model, relational model is not a good fit. This is widely known as object-relational impedance mismatch.

One approach to this mismatch are ORMs (object-relation mappers), which have gained a lot popularity. But they are not the true solution, they are more like work around for the problem. They still don't really solve the problem of mapping class inheritance to relational model.

The true solution to the object-relational mismatch are OODBMSes, which didn't get much traction unfortunately. Popular engine supporting OOBDs natively is PostgreSQL, which is hybrid OO/RDBMS. Another OODBMS is Zope Object DB, which is built in Python and in typical setup uses RDBMS as underlying engine.

Alternative approach is to have more logic implemented in application or middle-ware level and use NoSQL solution for underlying storage.

Neither OODBMS nor NoSQL are "just a flat-file".

Related Topic