Xaprb

Stay curious!

What makes relational databases relational?

with 4 comments

Do you know why relational databases are called relational? I commonly see explanations such as this:

an RDBMS is called a relational database system because the data is stored in tables.

There, now that’s all cleared up! Or not.

The most common explanation or reason I hear cited for the name is that it’s because of relationships between data. But this isn’t really accurate.

The real reason is because of something called relational algebra, which takes its name from a mathematical construct called a relation. It really doesn’t have any obvious or intuitive association with “relationships.” It’s one of those words that a mathematician redefined for a very specific purpose, and that was the end of it. Just like in computer science, where we use words such as “inheritance,” “class,” and “instantiate” in very specific ways that don’t make sense to non-programmers, “relation” has a meaning that makes most people’s eyes glaze over.

Now, we can get into further arguments about whether relational databases are really relational — and lots of people do that — but I’ll stay away from that for the time being.

And in my best Paul Harvey voice, it’s time to say “and now you know… the rest of the story!”

Written by Xaprb

March 13th, 2012 at 5:32 pm

Posted in PostgreSQL,SQL

4 Responses to 'What makes relational databases relational?'

Subscribe to comments with RSS

  1. I remember having this revelation in Database Design class at Northeastern. “Ohhh!” Relational algebra and relational calculus were the most important things I got out of that class, along with the discussion of storage and indexing data structures.

    Tim McCormack

    14 Mar 12 at 9:05 am

  2. As far as I know,Databases are key/Value Store in the backend,the database engine help you parse your schema, and Only Load the schema into the memory,the schema is only a memory schema.

    jametong

    14 Mar 12 at 9:51 am

  3. That is the base:
    It is the relationship between attributes in tuples.

    Furthermore:
    Columns contain one or more attributes and rows are the tuples. Through normalization you eliminate redundancy.

    Holger Thiel

    19 Mar 12 at 6:49 am

  4. Thanks for this blog post, I also run into lots of people who think relational refers to the relationships between tables. I.e. data integrity constraints. The issue is clouded because non-relational databases often do not support such inter-table relationships, except through repeating object id’s and such.

    I’ve also read various rants from theoreticians on whether relational databases as we know them today are “truly relational.” We see long articles about why NULL is not valid, etc.

    But I think it’s fair to say that we have yet to see any programming language used in the real world that implements mathematical theory faithfully. So I’m not going to hold it against SQL that it has some bits that aren’t strictly relational.

    Bill Karwin

    26 Mar 12 at 3:14 pm

Leave a Reply