Denormalisatie

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

Denormaliseren is het intentioneel gedeeltelijk terugdraaien van de normalisatie van een gegevensmodel. Denormalisatie geeft de mogelijkheid het DBMS te dwingen gegevens bij elkaar, of juist apart van elkaar op te slaan. Vooral in datawarehouse-omgevingen wordt denormalisatie toegepast om de hoeveelheid disktoegang (Input/Output, kortweg I/O) te beperken.

Vormen van denormalisatie[bewerken]

Selectief aanbrengen van redundantie[bewerken]

Wanneer een deelverzameling van de attributen uit een relatie vaak wordt opgevraagd als onderdeel van het gebruik van een andere relatie, kan een (redundante) kopie van deze deelverzameling worden ondergebracht in de andere relatie. Dit heeft als voordeel dat de I/O op de oorspronkelijke relatie afneemt.

Afsplitsen van attributen[bewerken]

Wanneer een deelverzameling van de attributen uit een relatie veel vaker wordt opgevraagd dan de andere attributen, kan deze deelverzameling worden ondergebracht in een eigen relatie. Dit heeft weer als voordeel dat de I/O op de eerste relatie afneemt. Daarnaast is de -vaak bezochte- nieuwe relatie kleiner, en gebruikt derhalve minder geheugen.

Gebruik van niet scalaire attributen[bewerken]

Wanneer een relatie 'lijdt' onder een hoog updatevolume, kunnen gerelateerde gegevens -bijvoorbeeld kommagescheiden- in één attribuut worden samengepakt. De gegevens worden gebufferd, en met één update verwerkt.

Gebruik van herhaalde attributen[bewerken]

Bij hetzelfde hoge updatevolume kan ook worden gekozen om de gegevens in aparte (herhaalde) attributen onder te brengen en zo het aantal updates terugbrengen.

Opslag van afgeleide gegevens[bewerken]

Wanneer een berekening op een set attributen vaak wordt uitgevoerd, kan men ervoor kiezen haar uitkomst op te slaan. De denormalisatie komt voort uit het feit dat het nieuwe attribuut -door het wezen van de berekening- functioneel afhankelijk is van een aantal attributen uit één of meer relaties. Bij het updaten van een van de onderliggende relaties dient ook de berekening opnieuw te worden uitgevoerd.

Gevolgen[bewerken]

Iedere denormalisatie lijdt onder het feit dat de gegevens niet meer eenduidig zijn opgeslagen waardoor update-anomalieën ontstaan. Deze worden veelal opgelost met specifiek ontworpen procedures die de consistentie garanderen.