Forskjellen mellom normalisering og denormalisering

Forskjellen mellom normalisering og denormalisering
Forskjellen mellom normalisering og denormalisering

Video: Forskjellen mellom normalisering og denormalisering

Video: Forskjellen mellom normalisering og denormalisering
Video: Узнав это СЕКРЕТ, ты никогда не выбросишь пластиковую бутылку! ТАКОГО ЕЩЕ НИКТО НЕ ВИДЕЛ! 2024, November
Anonim

Normalisering vs. denormalisering

Relasjonelle databaser er bygd opp av relasjoner (relaterte tabeller). Tabeller er bygd opp av kolonner. Hvis tabellene er to store (dvs. for mange kolonner i én tabell), kan databaseavvik oppstå. 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 ytelsen til databasen. Normalisering minimerer redundansene som er tilstede i datatabeller. Denormalisering (omvendt av normalisering) legger til redundante data eller gruppedata.

Hva er normalisering?

Normalisering er en prosess som utføres for å minimere redundansene som finnes i data i relasjonsdatabaser. Denne prosessen vil hovedsakelig dele store tabeller inn i mindre tabeller med færre redundanser (k alt "normale former"). Disse mindre tabellene vil være relatert til hverandre gjennom veldefinerte relasjoner. I en godt normalisert database vil enhver endring eller modifikasjon i data kreve modifisering av bare en enkelt tabell. Den første normalformen (1NF), den andre normalformen (2NF) og den tredje normalformen (3NF) ble introdusert av Edgar F. Codd. Boyce-Codd Normal Form (BCNF) ble introdusert i 1974 av Codd og Raymond F. Boyce. Høyere normale former (4NF, 5NF og 6NF) er definert, men de brukes sjelden.

En tabell som samsvarer med 1NF sikrer at den faktisk representerer en relasjon (dvs. den inneholder ingen poster som gjentar seg), og inneholder ingen attributter som er relasjonsverdier (dvs.e. alle attributtene skal ha atomverdier). For at en tabell skal være i samsvar med 2NF, bør den overholdes med 1NF, og alle attributter som ikke er en del av en kandidatnøkkel (dvs. ikke-primære attributter) bør fullt ut avhenge av hvilken som helst av kandidatnøklene i tabellen. I følge Codds definisjon sies det at en tabell er i 3NF, hvis og bare hvis den tabellen er i den andre normalformen (2NF) og alle attributter i tabellen som ikke tilhører en kandidatnøkkel, bør direkte avhenge av hver kandidatnøkkelen til den tabellen. BCNF (også kjent som 3.5NF) fanger opp noen avvik som ikke er adressert av 3NF.

Hva er denormalisering?

Denormalisering er den omvendte prosessen av normaliseringsprosessen. Denormalisering fungerer ved å legge til redundante data eller gruppere data for å optimalisere ytelsen. Selv om å legge til overflødige data høres kontraproduktivt ut, er noen ganger denormalisering en veldig viktig prosess for å overvinne noen av manglene i relasjonsdatabaseprogramvaren som kan medføre store ytelsesstraff med normaliserte databaser (selv innstilt for høyere ytelse). Dette er fordi det å slå sammen flere relasjoner (som er resultater av normalisering) for å produsere et resultat til en spørring noen ganger kan være treg 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 inn i 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 databaseavvik.

– Denormalisering utføres vanligvis for å forbedre leseytelsen til databasen, men på grunn av tilleggsbegrensningene som brukes for denormalisering, kan skriving (dvs. sette inn, oppdatere og slette operasjoner) bli tregere. Derfor kan en denormalisert database tilby dårligere skriveytelse enn en normalisert database.

– Det anbefales ofte at du bør «normalisere til det gjør vondt, denormalisere til det virker».

Anbefalt: