11

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?

4
  • 1
    Please provide context - where did you read that comment? Jul 6, 2011 at 12:00
  • 8
    Anything and everything is considered a fad by someone somewhere. Jul 6, 2011 at 12:09
  • Very true Péter, just curious as to why?
    – StuperUser
    Jul 6, 2011 at 12:16
  • 5
    Such people usually have another paradigm that they want to promote, which go against the idea of relational databases. Hence relational databases are bad, and need to go away. Look at object oriented databases, which haven't reached critical mass yet.
    – user1249
    Jul 6, 2011 at 13:27

10 Answers 10

28

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".

6
  • 2
    @Daniel: he certainly did not say that the relational model was a problem that needs a solution; he said exactly what you said - if you are committed to modeling your software on the object-oriented paradigm, then the relational model is a problem. Jul 6, 2011 at 23:40
  • 1
    @Carson: My apologies, but that's not how I read the answer. @vartec says: "The true solution is the OODBMS (which didn't get much traction unfortunately)." I respectfully disagree: I would say the true solution is to understand the relational model and use it effectively. OODBMS is a poor man's solution for when you must use OO principles for your data model, which certainly isn't a universal case. Jul 7, 2011 at 0:41
  • 1
    @Daniel: I thought he meant that an OODBMS was the true solution, again, if you are committed to modeling your software on the object-oriented paradigm. Not that the relational model was a problem in and of itself, and that OODBMS was the solution to it. But anyway, not much point debating which of us understood Vartec correctly, I'll bow out and let him clarify if he wants to. :-) Jul 7, 2011 at 7:05
  • 1
    @Daniel: The context is important. I celearly say, that relational model is a problem in context of OOP. Now, how universal or not OOP is, that's beyond scope of this answer. And btw. OODBMSes are not "poor man's solution", ORMs are.
    – vartec
    Jul 7, 2011 at 7:46
  • 1
    @vartec: OK, I retract my downvote. (I can't actually remove it unless the post is edited.) I do think it would be best to clarify that there are solutions that don't involve OO. And yes, I agree that an ORM is worse even than an OODBMS. Jul 7, 2011 at 16:42
13

I made the statement you quoted in the question above. If you want a citation to verify my assumption about developers on this site, then read my answer to the following question and review the backlash of comments and downvotes I received for what I still consider an acceptable answer.

Should experienced programmers know database queries?

I made the assertion that if an RDBMS database is being used that despite Linq or an ORM, a developer should have an advanced knowledge of SQL.

This was a highly unpopular assertion it seems because of respectable differences of opinion on the importance of SQL, to the less respectable mindset that RDBMS is inherently inferior to NoSQL databases like MongoDB.

EDIT: To further add to my claim, I will quote user SK-logic:

just remember that all this RDBMS craze is a relatively recent trend. Before that we had a wide variety of approaches. You're apparently working in a young company, alongside with developers of your age, and thus you've got no chance to be exposed to the older and more solid storage approaches. Fortunately, this recent trend is already declining, and good old ways are returning, rebranded as 'nosql'.

6
  • Completely agree with you that developers working with DBs should understand SQL to be able to conceptualise a query in terms of relations properly. However, hopefully, Linq/ORMs don't optimise queries on the abstraction in a way that affects a queries written with the datastore in mind.
    – StuperUser
    Jul 6, 2011 at 12:29
  • The only reason anyone would say "this RDBMS craze is a relatively recent trend" is to show off how grey their beard is. I first worked on the sort of enterprise and business applications you describe in 1995 - relational databases dominated then, they dominate now, they have dominated everywhere I have worked in the 16 years intervening. Now obviously I'm not as old as some, but when I say "relatively recent", I don't mean "in the last twenty years". Jul 6, 2011 at 23:53
  • The problem is that many developers wrongly equate RDBMS with SQL. SQL is a truly awful language by modern standards. It is a flawed and incomplete implementation of a "relational" language (SQL isn't truly relational at all and that's part of the problem) that hasn't evolved much in the last 30 years. Many people using SQL barely understand the relational model - all they know is SQL and so they assume that the relational model is the cause of their frustration.
    – nvogel
    Jul 8, 2011 at 10:59
  • @dportas, Sure SQL isn't perfect, but it was so important to every job that I had that I found out how much easier life became when I started THINKING in SQL. If you give me a relational model and ask me a question in plain English then I can write you an "answer" in SQL. You say that "all they know is SQL and so they assume that the relational model is the cause of their frustration", well then they don't know SQL well enough. Why must everything be catered to the lowest common demoninator all the time, like an Indian programmer making less than $10/hr with a poor education.
    – maple_shaft
    Jul 8, 2011 at 11:16
  • @maple_shaft, if you are thinking in SQL then you are thinking of some things that are very wrong in relational terms. What should be encouraged is for developers to understand foundation concepts like the relational model instead of focussing on languages like SQL. If more people understood foundation concepts then maybe SQL would already have been replaced by better things.
    – nvogel
    Jul 8, 2011 at 11:39
9

fad:

a thing that becomes very popular in a short amount of time, and then is forgotten at about the same speed."

RDBMSes have been around for ages (at the very least in CS terms), so whoever said that either meant to say something else or is clueless.

4
3

The alternative to RDBMS isn't just a flat-file. When I was in school, OODBMS was the new thing and my professor was correct when he labeled it a fad. You should take a look at the different models and note the trends. I've seen increasing reliance on OLAP and would be willing to bet a new multi-dimensional system that can process data faster is just around the corner.

3
  • Should "willing to be a new" => "willing to bet a new "? Jul 6, 2011 at 12:13
  • Oh certainly, used flat file as an example. That's a good link to the DB models.
    – StuperUser
    Jul 6, 2011 at 12:18
  • @Binary Yes and edited to reflect it. Jul 6, 2011 at 13:01
3

The problem is that many developers wrongly equate RDBMS with SQL. SQL is a truly awful language by modern standards. It is a flawed and incomplete implementation of a "relational" language (SQL isn't truly relational at all and that's part of the problem) that hasn't evolved much in the last 30 years. Many people using SQL barely understand the relational model - all they know is SQL and so they assume that the relational model is the cause of their frustration.

1

Without context it is hard to determine who/why the statement that RDBMs are considered a fad.

In the short to medium term (5 -10 years) and I would think even longer that are not going to go away. A RDBM provides an efficient and effective method of storing, processing and retrieving relational data which is what most companies have be it customers/orders, passengers/tickets etc.

There are other other alternatives such as NoSQL which seem to be growing in popoularity with open source project.

As OLAP these are really (in my mind) specialist databases designed to allow a business to provide timely and useful statistically information about a company and run "what if" scenarios on current data. Of course in nearly all cases this current data came from a RDMBs and was manipulated and then inserted into the OLAP database.

1

Relational databases are a fad in the same sense that microcomputing is a fad.

1

Simple answer is no. RDBMS are not a fad. When you read something on a website for LinqPad, keep in mind that their purpose is to sell licences for their product.

5
  • The question is about why it would be considered a fad, not whether it is or LinqPad's promotional rhetoric. LinqPad standard is free.
    – StuperUser
    Jul 6, 2011 at 16:35
  • The question came from him reading LinqPad's promotional rhetoric. Just pointing out that he ought to take with a grain of salt.
    – Tundey
    Jul 6, 2011 at 16:38
  • No it didn't, it came from maple_shaft's comment on programmers.stackexchange.com/questions/89994/…. LinqPad's copy was taken with a pinch of salt, but I'm curious as to whether devs concur with either statement.
    – StuperUser
    Jul 6, 2011 at 16:41
  • Yep, LinqPad's promotional rhetoric was that writing SQL to query an RDBMS was antiquated, not that RDBMSs themselves were antiquated. They're selling a better way to use an RDBMS, not an alternative to them. Jul 6, 2011 at 23:59
  • @StuperUser and Carson63000: Got it. My mistake.
    – Tundey
    Jul 7, 2011 at 11:59
0

Fad is not the right word as they have be along for a long, long time. I think you could start to make the argument that the technology is very old and might be time to come up with the next next thing - NoSQL architectures perhaps

0

The Wiki Def. of Fad, defines the term "fad" as follows: A fad is any form of behavior that develops among a large population and is collectively followed with enthusiasm for some period, generally as a result of the behavior's being perceived as novel in some way. A fad is said to "catch on" when the number of people adopting it begins to increase rapidly. The behavior will normally fade quickly once the perception of novelty is gone.

Since RDBMS followers did not fade quickly, and is not about to go away in many years to come (thanks to the huge pile of production applications using it) we can't say that its a fad. In fact the core concepts of RDBMS remained fairly stable where so many of the other technologies changed (and still are changing) dramatically.

The concept of RDBMS (and its main vehicle, SQL) represent a step in technology that, like many others, may be superseded by better ones, that is all.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.