Forskellen Mellem Normalisering Og Denormalisering

Forskellen Mellem Normalisering Og Denormalisering
Forskellen Mellem Normalisering Og Denormalisering
Anonim

Normalisering vs Denormalisering

Relationsdatabaser består af relationer (relaterede tabeller). Tabeller består af kolonner. Hvis tabellerne er to store (dvs. for mange kolonner i en tabel), kan der opstå databaseafvigelser. Hvis tabellerne er to små (dvs. databasen består af mange mindre tabeller), ville det være ineffektivt til forespørgsel. Normalisering og denormalisering er to processer, der bruges til at optimere databasens ydeevne. Normalisering minimerer de afskedigelser, der findes i datatabeller. Denormalisering (omvendt af normalisering) tilføjer overflødige data eller gruppedata.

Hvad er normalisering?

Normalisering er en proces, der udføres for at minimere de afskedigelser, der findes i data i relationelle databaser. Denne proces vil hovedsageligt opdele store tabeller i mindre tabeller med færre afskedigelser (kaldet “Normale former”). Disse mindre tabeller vil være relateret til hinanden gennem veldefinerede relationer. I en godt normaliseret database kræver enhver ændring eller modifikation af data kun at ændre en enkelt tabel. Første normale form (1NF), anden normal form (2NF) og den tredje normale form (3NF) blev introduceret af Edgar F. Codd. Boyce-Codd Normal Form (BCNF) blev introduceret i 1974 af Codd og Raymond F. Boyce. Højere normale former (4NF, 5NF og 6NF) er blevet defineret, men de bruges sjældent.

En tabel, der overholder 1NF, sikrer, at den faktisk repræsenterer en relation (dvs. den indeholder ikke nogen poster, der gentages) og indeholder ikke attributter, der er relationelle værdiansatte (dvs. alle attributterne skal have atomværdier). For at en tabel skal overholde 2NF, skal den overholdes med 1NF, og enhver attribut, der ikke er en del af en kandidatnøgle (dvs. ikke-primære attributter), bør helt afhænge af en af kandidatnøglerne i tabellen. Ifølge Codd's definition siges en tabel at være i 3NF, hvis og kun hvis, denne tabel er i den anden normale form (2NF), og hver attribut i tabellen, der ikke tilhører en kandidatnøgle, skal direkte afhænge af hver kandidatnøgle i tabellen. BCNF (også kendt som 3.5NF) fanger nogle af de anomalier, der ikke er adresseret af 3NF.

Hvad er denormalisering?

Denormalisering er den omvendte proces af normaliseringsprocessen. Denormalisering fungerer ved at tilføje overflødige data eller gruppere data for at optimere ydeevnen. Selvom tilføjelse af overflødige data lyder kontraproduktivt, er undertiden denormalisering en meget vigtig proces for at overvinde nogle af manglerne i den relationsdatabasesoftware, der kan medføre tunge præstationsstraffe med normaliserede databaser (endda tunet til højere ydeevne). Dette skyldes, at sammenføjning af flere relationer (som er resultater af normalisering) for at producere et resultat til en forespørgsel undertiden kan være langsomt afhængigt af den faktiske fysiske implementering af databasesystemerne.

Hvad er forskellen mellem normalisering og denormalisering?

- Normalisering og denormalisering er to processer, der er helt modsatte.

- Normalisering er processen med at opdele større tabeller til mindre, hvilket reducerer de overflødige data, mens denormalisering er processen med at tilføje overflødige data for at optimere ydeevnen.

- Normalisering udføres for at forhindre databasefejl.

- Denormalisering udføres normalt for at forbedre læseevnen i databasen, men på grund af de yderligere begrænsninger, der bruges til denormalisering, kan skrivning (dvs. indsætte, opdatere og slette operationer) blive langsommere. Derfor kan en denormaliseret database tilbyde dårligere skriveydelse end en normaliseret database.

- Det anbefales ofte, at du”normaliserer, indtil det gør ondt, normaliseres, indtil det fungerer”.

Anbefalet: