Database Engineering
Normalization & Denormalization
1NF to BCNF as a cure for anomalies, then when duplicating data on purpose is the right answer.
Normalization: 1NF to BCNF
▶ interactive
Normalization removes update, insert and delete anomalies by making sure every fact is stored once; each normal form forbids one more way a fact can hide inside a table.
Denormalization on Purpose
Duplicating a value to make a read cheap is a legitimate design decision as long as you can name the read it serves, the write that maintains it, and the way you will detect drift.