Normalisering vs Denormalisering
Relasjonsdatabaser består av relasjoner (relaterte tabeller). Tabeller består av kolonner. Hvis tabellene er to store (det vil si for mange kolonner i ett bord), kan det oppstå databaseanomalier. Hvis tabellene er to små (dvs. databasen består av mange mindre tabeller), ville det være ineffektivt for spørring. Normalisering og denormalisering er to prosesser som brukes til å optimalisere databasens ytelse. Normalisering minimerer redundansene som finnes i datatabeller. Denormalisering (omvendt av normalisering) legger til overflødige data eller gruppedata.
Hva er Normalisering?
Normalisering er en prosess som utføres for å minimere redundansene som er tilstede i data i relasjonsdatabaser. Denne prosessen vil i hovedsak dele store tabeller i til mindre tabeller med færre redundanser (kalt "Vanlige skjemaer"). Disse mindre tabellene vil være relatert til hverandre gjennom veldefinerte relasjoner. I en brønn normalisert database vil eventuelle endringer eller modifikasjoner i data kreve endring bare et enkelt bord. Første Normal Form (1NF), Second Normal Form (2NF) og Tredje Normal Form (3NF) ble introdusert av Edgar F. Codd. Boyce-Codd Normal Form (BCNF) ble introdusert i 1974 av Codd og Raymond F. Boyce. Høyere Normal Forms (4NF, 5NF og 6NF) er definert, men de brukes sjelden.
Et bord som overholder 1NF sikrer at det faktisk representerer et forhold (det vil si at det ikke inneholder noen poster som gjentar), og inneholder ikke noen attributter som er forholdsmessige verdsatt (dvs. alle attributter skal ha atomverdier). For at et bord skal overholde 2NF, skal det overholdes 1NF, og ethvert attributt som ikke er en del av en kandidatnøkkel (dvs. ikke-primære attributter), bør fullt ut avhenge av noen av kandidatnøklene i tabellen. I følge Codds definisjon er det sagt at en tabell er i 3NF, hvis og bare hvis det bordet er i den andre normale form (2NF), og hver egenskap i tabellen som ikke tilhører en kandidatnøkkel, bør direkte avhenge av hver kandidatnøkkel for den tabellen. BCNF (også kjent som 3.5NF) fanger noen av anomaliene som ikke er adressert av 3NF.
Hva er denormalisering?
Denormalisering er omvendt prosess i normaliseringsprosessen. Denormalisering fungerer ved å legge til overflødige data eller gruppere data for å optimalisere ytelsen. Selv om det legges til overflødig datalyd motproduktiv, er det noen ganger en avgjørende prosess å overvinne noen av manglene i relasjonsdatabaseprogramvaren som kan medføre store ytelsesstraff med normaliserte databaser (selv innstilt for høyere ytelse). Dette skyldes at det kan være treg å delta i flere relasjoner (som er resultatene av normalisering) for å gi et resultat til en spørring, avhengig av den faktiske fysiske implementeringen av databasesystemene.
Hva er forskjellen mellom normalisering og denormalisering? - Normalisering og denormalisering er to prosesser som er helt motsatte. - Normalisering er prosessen med å dele større tabeller i til mindre som reduserer de overflødige dataene, mens denormalisering er prosessen med å legge til overflødige data for å optimalisere ytelsen. - Normalisering utføres for å forhindre databaser avvik. - Denormalisering utføres vanligvis for å forbedre databasenes leseytelse, men på grunn av de ekstra begrensningene som brukes for denormalisering, kan skriving (dvs. innsetting, oppdatering og sletning av operasjoner) bli langsommere. Derfor kan en denormalisert database tilby dårligere skriveytelse enn en normalisert database. - Det anbefales ofte at du skal "normalisere inntil det gjør vondt, denormalisere til det virker".
|