Forskel mellem normalisering og denormalisering

Anonim

Normalisering vs Denormalisering

Relationelle databaser består af relationer (relaterede tabeller). Tabeller består af kolonner. Hvis tabellerne er to store (dvs. for mange kolonner i ét bord), kan der forekomme databaseanomalier. Hvis tabellerne er to små (dvs. databasen består af mange mindre tabeller), ville det være ineffektivt for 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 hovedsagelig opdele store tabeller i mindre tabeller med færre afskedigelser (kaldet "Normalformer"). Disse mindre tabeller vil være relateret d til hinanden gennem veldefinerede relationer. I en normaliseret database vil enhver ændring eller ændring i data kræve ændring af kun et enkelt bord. Første normalform (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 Normalformularer (4NF, 5NF og 6NF) er blevet defineret, men de bruges sjældent.

Et bord, der overholder 1NF, sikrer, at det rent faktisk repræsenterer en relation (dvs. det indeholder ikke nogen poster, der gentager) og indeholder ikke nogen attributter, der er relationelle værdier (dvs. alle attributter bør have atomværdier). For at et bord skal overholde 2NF, skal det overholdes 1NF, og enhver attribut, der ikke er en del af en kandidatnøgle (dvs. ikke-primære attributter), bør fuldt ud afhænge af nogen af ​​kandidatnøglerne i tabellen. Ifølge Codds definition er et bord siges at være i 3NF, hvis og kun hvis, at bordet er i anden normale form (2NF), og hver attribut i tabellen, der ikke tilhører en kandidatnøgle, direkte afhænger af hver kandidatnøgle i den tabel. BCNF (også kendt som 3. 5NF) fanger nogle af de uregelmæssigheder, der ikke er adresseret af 3NF.

Hvad er denormalisering?

Denormalisering er den omvendte proces i normaliseringsprocessen. Denormalisering virker 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 relationsdatabaseprogrammet, der kan medføre store præstationsstraffer med normaliserede databaser (selvindstillet til højere ydeevne).Dette skyldes at det kan være langsomt at deltage i flere relationer (som er resultatet af normalisering) for at give et resultat til en forespørgsel 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 dividere større tabeller i til mindre, der 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 databaser anomalier.

- Denormalisering udføres normalt for at forbedre databasens læsevirkning, men på grund af de yderligere begrænsninger, der anvendes til denormalisering, kan skrivninger (f.eks. 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 skal "normalisere, indtil det gør ondt, denormalisere, indtil det virker".