Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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 Is LinqPad site quote "Tired of querying in antiquated SQL?" accurate? ) 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?

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

10 Answers 10

up vote 27 down vote accepted

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

share|improve this answer
1  
+1 for great insight into databases –  CamelBlues Jul 6 '11 at 15:50
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 6 '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 7 '11 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. :-) –  Carson63000 Jul 7 '11 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 '11 at 7:46

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.

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer
    
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 '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 6 '11 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 '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 6 '11 at 23:59
    
@StuperUser and Carson63000: Got it. My mistake. –  Tundey Jul 7 '11 at 11:59

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

share|improve this answer

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.

share|improve this answer
    
Should "willing to be a new" => "willing to bet a new "? –  Binary Worrier Jul 6 '11 at 12:13
    
Oh certainly, used flat file as an example. That's a good link to the DB models. –  StuperUser Jul 6 '11 at 12:18
    
@Binary Yes and edited to reflect it. –  Christopher Bibbs Jul 6 '11 at 13:01

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.

share|improve this answer

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

share|improve this answer

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

share|improve this answer
    
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 '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 6 '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. –  sqlvogel Jul 8 '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 8 '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. –  sqlvogel Jul 8 '11 at 11:39

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.

share|improve this answer
2  
I meant to say something else, see my answer below. –  maple_shaft Jul 6 '11 at 12:35
    
Answer is at programmers.stackexchange.com/questions/90024/… –  user1249 Jul 6 '11 at 13:29
3  
Probably would have been better to use a real dictionary as opposed to urbandictionary. –  Aaronaught Jul 6 '11 at 14:27
    
Aaronaught - How about Princeton's? "An interest followed with exaggerated zeal." wordnetweb.princeton.edu/perl/… –  Shauna Jul 6 '11 at 15:18

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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