concept: Relational database - davidkhala/database GitHub Wiki

History

Edgar Codd proved DBMS relying on sets of data and using tuple calculus (instead of rely on linked lists of data) can adhere to the same requirements that navigational database management systems were implementing

Normalization

The process that database modellers go through to minimize database redundancy and introduce disk storage savings, by introducing dependency.

  • Split off redundant data elements into their own table structures.e.g. store person entities in one table and city entities in another table.
  • Create the need to join these tables back together at query time.
  • Depending on the cardinality of the relationship between these different tables (1:many, many:1, and many:many), this introduce join table, which links together two tables that would normally have a many:many cardinality.

Drawback

Join BOMB: Relational Databases are quite anti-relational; they are less relational than graph databases

Immutable schema requirement is too rigid for agile way of developing software

Reference

  • Codd's 12 rules