Magazijnontwerpers hanteren een regel die relationele databases met decennia voorafgaat: bewaar elk item op precies één vaste locatie, en houd een aparte, makkelijk bij te werken index bij van waar die locatie zich bevindt. Het klinkt vanzelfsprekend, tot je hebt gewerkt in — of gezocht in — een systeem dat dit niet doet, waar hetzelfde feit op vijf plekken verdubbeld staat en het bijwerken van de ene plek de andere vier stilletjes fout laat.
Eerste normaalvorm, eerste schapregel
Databasenormalisatie formaliseert datzelfde instinct in regels: herhaal geen data over rijen, splits feiten die onafhankelijk veranderen naar eigen tabellen, en verwijs liever dan te dupliceren. Een magazijn dat de prijs van een product op elk afzonderlijk etiket vermeldt, in plaats van centraal op te zoeken bij de kassa, heeft precies het update-probleem waarvoor een eerstejaars databasecursus bestaat.
De prijs van het correct doen
Normalisatie is niet gratis. Een volledig genormaliseerd magazijn vereist een opzoekstap telkens je een antwoord wilt — naar de locatie lopen, de centrale prijslijst checken, kruisverwijzen. Een volledig genormaliseerde database betaalt dezelfde belasting in joins. Beide disciplines denormaliseren uiteindelijk bewust, op specifieke plekken, zodra ze precies weten welke bevragingen snel moeten zijn en bereid zijn de duplicatie te accepteren die die snelheid vereist.
Normaliseer tot het pijn doet, denormaliseer tot het werkt — de vuistregel geldt of het schap nu fysiek is of virtueel.
De parallel is niet decoratief. Magazijnlogistiek en schema-ontwerp losten dezelfde afweging op lang voordat beide disciplines er een naam voor hadden.