liveBook · Manning

Normalization

As explained in Grokking Relational Database Design

Normalization is the process of organizing relational data into separate tables to reduce redundancy and prevent update anomalies.

Normalization organizes relational data into smaller tables, each representing one entity or concept. It reduces redundancy, limits dependency, and strengthens data integrity and consistency before SQL implementation. section 3.10 section 6.2

Splitting mixed data

A product_review table stores information about both products and reviews. Because one table represents more than one entity, repeated product data and update anomalies can occur. Normalize it by separating the data into product and review tables. section 3.10

Use normal forms as sequential guidelines:

  • 1NF, 2NF, 3NF, and BCNF build hierarchically, with each form extending the preceding one. section 6.2
  • A BCNF table has a primary key, no multivalued columns, columns dependent on a key and nothing else, and no transitive dependency. section 6.2
  • Normalization relies on superkeys, candidate keys, and primary keys: a candidate key is a minimal superkey, and one candidate key becomes primary. section 6.2

How Grokking Relational Database Design covers it

How deep it goes
Defines the goal, normal-form sequence, key terms, and BCNF characteristics, while deferring detailed definitions to subsequent treatment.
Examples
Uses The Sci-Fi Collective database and separates a mixed product_review table into product and review tables.
What it assumes
Assumes familiarity with E-R diagrams and superkeys, candidate keys, and primary keys.
What you can do after
Evaluate/understand whether a relational design needs decomposition and use normal forms to guide more consistent table structures.
How it connects
Connects data modeling, E-R diagrams, functional dependency, constraints, data integrity, and relational keys.

Also explained in

Compare how 21 books explain normalization →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Grokking Relational Database Design. The section links point to the parts of the book it draws on.