Data Model

Recently, a lot of new non-relational databases have cropped up both inside and outside the cloud. But relational databases are still relevant. They are well-suited for data sets that aren't likely to suddenly expand. Also, relational databases have been around for over four decades and they have wide industry adoption and sophisticated tooling to enable high productivity. Many vendors of relational databases (key-value stores, document databases, column stores and graph stores). For example, Postgres has added many NoSQL-like features that allow greater scaling, non-durable storage and JSON data manipulation - allowing users to get NoSQL features while retaining the benefits of SQL relational systems.

This chapter is about one of the most critical stages in the development of computerized information system - the design of data structures and the documentation of that design in a form of data model.

Essentially, this chapter covers normalization, a formal relational database technique for organizing data into tables. Normalization enables us to deal with certain common problems of redundancy and incompleteness according to the straightforward and quite rigorous rules. Generally speaking, normalization is a set of rules for allocating data to tables.