Wednesday, March 4, 2020

RDBMS != SQL DBMS

We use RDBMS as another name for SQL DBMS but SQL isn't relational. That isn't news, see this web site and book. SQL allows for but doesn't require relational and 1NF or 3NF are optional. JSON is in the SQL:2106 spec. What would Codd think?

Using Oracle as a SQL DBMS example. First there was support for collection data types, then there was XML and eventually JSON arrived. These let you violate 1NF. I won't argue whether these should be used. I only claim they can be used.

Have there been surveys to document how often the relational approach is used with a SQL DBMS? I assume it is better to think of a distribution of approaches (a value between 0 and 1 where 0 is SQL and 1 is relational) rather than a binary approach of relational vs SQL (not relational). I might call the SQL endpoint the pragmatic approach, but that introduces bias. While I have spent a long time working on SQL DBMS I am usually working under the hood and don't design applications.

2 comments:

  1. Chris Date mentioned a long discontinued IBM DBMS as the best example of relational database. I don't remember the name, I'll research it in my books. (no, it's not System/R)

    He also used an alternative language in his books, called Tutorial D. He did that because SQL didn't suite his mathematical approach, partly because it violates some relational algebra rules, partly because there is no 1:1 match between SQL operators and relational algebra operations.

    Tutorial D has some implementations, but I suppose that all of them are academic researches or experimental projects.

    ReplyDelete
    Replies
    1. Wikipedia page on Tutorial D - https://en.wikipedia.org/wiki/D_(data_language_specification)

      I read a bit from the Fabian Pascal book. While I am not in the pure relational camp the book was worth reading.

      Delete