One Fact, One Place: Normalization Without the Fear
Why a flat table quietly corrupts itself, and how 1NF through BCNF is really just one rule — store every fact once — taught by breaking a denormalized bookshop table and then decomposing it. Plus when to denormalize on purpose. Run against PostgreSQL 18.