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?

StuperUser
  • 6,133
  • 1
  • 28
  • 56
  • 1
    Please provide context - where did you read that comment? – Eran Galperin Jul 06 '11 at 12:00
  • 8
    Anything and everything is considered a fad by someone somewhere. – Péter Török Jul 06 '11 at 12:09
  • Very true Péter, just curious as to why? – StuperUser Jul 06 '11 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. –  Jul 06 '11 at 13:27

10 Answers10

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

vartec
  • 20,760
  • 1
  • 52
  • 98
  • -1 because you imply that the relational model is a "problem" that needs a solution. True, if you are committed to modeling your software on the object-oriented paradigm, then you will have an impedance mismatch. But that doesn't imply that there's anything wrong with the relational model -- OO is not the only game in town, nor even necessarily the best paradigm for every project. – Daniel Pryden Jul 06 '11 at 20:36
  • 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. – Carson63000 Jul 06 '11 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. – Daniel Pryden Jul 07 '11 at 00: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. :-) – Carson63000 Jul 07 '11 at 07: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 07 '11 at 07: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. – Daniel Pryden Jul 07 '11 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'.

maple_shaft
  • 26,401
  • 11
  • 57
  • 131
  • 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 06 '11 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". – Carson63000 Jul 06 '11 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 08 '11 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 08 '11 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 08 '11 at 11:39
  • I think the majoruity of the objections come from the qualifier you use "expert". Competent would be a better qualifier -- we can't all be the best, not all of us will have the time to devote to becoming truly expert when that's not our main job. But we can be expected to be competent at what we do, and to spend the time to become enough so for any task that we are assigned. – jmoreno Apr 15 '12 at 18:04
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.

l0b0
  • 11,014
  • 2
  • 43
  • 47
  • 2
    I meant to say something else, see my answer below. – maple_shaft Jul 06 '11 at 12:35
  • Answer is at http://programmers.stackexchange.com/questions/90024/how-could-rdbmses-be-considered-a-fad/90039#90039 –  Jul 06 '11 at 13:29
  • 3
    Probably would have been better to use a real dictionary as opposed to urbandictionary. – Aaronaught Jul 06 '11 at 14:27
  • Aaronaught - How about Princeton's? "An interest followed with exaggerated zeal." http://wordnetweb.princeton.edu/perl/webwn?s=fad&sub=Search+WordNet&o2=&o0=1&o8=1&o1=1&o7=&o5=&o9=&o6=&o3=&o4=&h= – Shauna Jul 06 '11 at 15:18
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.

Christopher Bibbs
  • 2,709
  • 15
  • 12
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.

nvogel
  • 604
  • 4
  • 11
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.

armitage
  • 652
  • 4
  • 11
1

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

Jeremy
  • 4,609
  • 22
  • 22
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.

Tundey
  • 227
  • 2
  • 6
  • 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 06 '11 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 06 '11 at 16:38
  • No it didn't, it came from maple_shaft's comment on http://programmers.stackexchange.com/questions/89994/is-linqpad-site-quote-tired-of-querying-in-antiquated-sql-accurate. LinqPad's copy *was* taken with a pinch of salt, but I'm curious as to whether devs concur with either statement. – StuperUser Jul 06 '11 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. – Carson63000 Jul 06 '11 at 23:59
  • @StuperUser and Carson63000: Got it. My mistake. – Tundey Jul 07 '11 at 11:59
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.

NoChance
  • 12,412
  • 1
  • 22
  • 39
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

bigtang
  • 2,037
  • 1
  • 17
  • 15