Normalisering vs denormalisering
Relationsdatabaser består av relationer (relaterade tabeller). Tabeller består av kolumner. Om tabellerna är två stora (det vill säga för många kolumner i ett bord), kan då databasomvikelser uppstå. Om tabellerna är två små (dvs databasen består av många mindre tabeller), skulle det vara ineffektivt för fråga. Normalisering och denormalisering är två processer som används för att optimera databasens prestanda. Normalisering minimerar de redundans som finns i datatabellerna. Denormalisering (omvänd av normalisering) lägger till överflödig data eller gruppdata.
Vad är Normalisering?
Normalisering är en process som utförs för att minimera de redundans som finns i data i relationsdatabaser. Denna process kommer huvudsakligen att dela upp stora tabeller i mindre tabeller med färre uppsägningar (kallade "Vanliga blanketter"). Dessa mindre tabeller kommer att relateras till varandra genom väldefinierade relationer. I en väl normaliserad databas krävs att någon ändring eller modifiering i data ändrar endast ett enda bord. Första normalform (1NF), andra normalform (2NF) och den tredje normala formen (3NF) introducerades av Edgar F. Codd. Boyce-Codd Normal Form (BCNF) introducerades 1974 av Codd och Raymond F. Boyce. Högre normala former (4NF, 5NF och 6NF) har definierats, men de används sällan.
En tabell som uppfyller 1NF försäkrar att den faktiskt representerar ett förhållande (dvs det innehåller inga poster som upprepas) och innehåller inga attribut som är relationella värderade (dvs alla attribut ska ha atomvärden). För att ett bord ska uppfylla 2NF ska det följas 1NF och ett attribut som inte ingår i någon kandidatnyckel (dvs icke-primära attribut) borde fullt ut bero på någon av kandidatnycklarna i tabellen. Enligt Codds definition sägs en tabell vara i 3NF, om och endast om det bordet är i den andra normala formen (2NF) och varje attribut i tabellen som inte hör till en kandidatnyckel borde direkt bero på varje kandidatnyckel för den tabellen. BCNF (även kallad 3.5NF) fångar några avvikelser som inte adresseras av 3NF.
Vad är denormalisering?
Denormalisering är omvänd process av normaliseringsprocessen. Denormalisering fungerar genom att lägga till överflödig data eller gruppera data för att optimera prestanda. Även om man lägger till överflödiga data ljud kontraproduktiva, är det ibland en avgörande process att övervinna några av bristerna i relationsdatabasprogramvaran som kan medföra stora prestationsstraff med normaliserade databaser (jämställd för högre prestanda). Detta beror på att det kan vara långsamt att gå ihop med flera relationer (som är resultatet av normalisering) för att ge ett resultat till en fråga, beroende på den faktiska fysiska implementeringen av databassystemen.
Vad är skillnaden mellan normalisering och denormalisering? - Normalisering och denormalisering är två processer som är helt motsatta. - Normalisering är processen att dela upp större tabeller till mindre som reducerar de överflödiga data, medan denormalisering är processen att lägga till överflödiga data för att optimera prestanda. - Normalisering utförs för att förhindra databaser avvikelser. - Denormalisering utförs vanligtvis för att förbättra databasens läsningsförmåga, men på grund av de ytterligare begränsningarna som används för denormalisering kan skrivningar (dvs infoga, uppdatera och radera operationer) bli långsammare. Därför kan en denormaliserad databas erbjuda sämre skrivresultat än en normaliserad databas. - Det rekommenderas ofta att du ska "normalisera tills det gör ont, denormaliserar tills det fungerar".
|