Consistent value Stale / anomaly Department reference
Click a denormalized row to delete it. Hover a row to see its trail.

2D Data Anomaly Simulator: Normalized vs Denormalized Schemas

The flat, canvas-drawn counterpart to the 3D version: a denormalized Employee table stores each department's phone number redundantly on every row that references it — a textbook transitive dependency. This simulator draws that table side by side with its normalized 3NF equivalent (a separate Department table joined by foreign key) and lets you run the same insert, update and delete operations against both at once, either by hand or on autoplay. Update a department's phone and only the first denormalized row gets rewritten, leaving the rest visibly stale in red; delete the last employee of a department and the denormalized copy loses the department's phone number outright, while the normalized Department row — never touched by an Employee delete — keeps it forever. A live strip chart plots denormalized anomalies, data-loss events and redundant copies over the whole run, while the normalized counters stay pinned at zero.