HomeData ScienceData Anomaly Simulator: Normalized vs Denormalized Schemas

Data Anomaly Simulator: Normalized vs Denormalized Schemas

Run insert, update and delete operations against a denormalized table and its normalized 3NF equivalent side by side, and watch update, insert and delete anomalies appear live in the denormalized copy while the normalized schema stays consistent.

Data Science3DModerate60 FPS
data-modeling-overview ↗ Open standalone

A denormalized Employee table stores each department's phone number redundantly on every row that references it — a textbook transitive dependency. This simulator renders that table in 3D next to 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. 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. Live counters track denormalized anomalies, data-loss events and redundant stored copies, while the normalized counters stay pinned at zero for the whole run.

⚙ Under the hood

Run insert, update and delete operations against a denormalized table and its normalized 3NF equivalent side by side, and watch update, insert and delete anomalies appear live in the denormalized copy while the normalized schema stays consistent.

databasenormalizationdata modeling3NFSQLThree.js

3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install

What did you find?

Add reproduction steps (optional)