About

Relational databases are solidly founded on Set Theory and are based on the Relational Model, which is a set of principles for relational databases formalized by Dr. E.F. Codd (an IBM Engineer). It introduces the concept in the late 1960s through a paper titled “A Relational Model of Data for Large Shared Banks”.

In the relational model of a database, all data is represented in terms of tuples (row), grouped into relations (table).

The databases were born to insert into.

Relational Database Management Systems were invented to let you use one set of data in multiple ways, including ways that are unforeseen at the time the database is built and the 1st applications are written.

Curt Monash, analyst/blogger

Good at

Relational Databases are good at “Needle in Haystack” problems:

  • Extracting small results from big datasets
  • Transparently provide “old style” scalability
  • Your query will always (almost) finish, regardless of dataset size.

Indexes are easily built and automatically used when appropriate

In a social network is Bill updates his status of his friends, who sees the new one, who sees the old one? The answer to this question from a relational database perspective is everyone must see the new change or no one does.

In a distributed environment, the transaction commits and all copies of the data everywhere are synchronized simultaneously. And further anybody attempting to read the value is able to read only the old value, or has to wait until the transaction commits.

Everything synchronous, everything must be updated. It's either all or nothing.

Really large applications can't afford to wait arbitrarily long for this global commit. The user can not wait while the synchronization is still occurring.

Design Space

  • Some kinds data are a bad fit for RDBMS.
  • Some problems are a bad fit for RDBMS.

Which kind of data does not fit in a relational Database?

  • images and video
  • large files
    • Natural language text (Blog posts, job ads, product descriptions)
    • Semi-structured data (CSV, JSON, XML, log files) Sensor data