Skip to main content

Grunderna för databas Normalisering

Normalization - 1NF, 2NF, 3NF and 4NF (April 2025)

Normalization - 1NF, 2NF, 3NF and 4NF (April 2025)
Anonim

Om du har arbetat med databaser på ett tag, är chansen att du har hört termen normalisering. Kanske har någon frågat dig "Är den databasen normaliserad?" eller "Är det i BCNF?" Normalisering borstar ofta åt sidan som en lyx som bara akademiker har tid för. Att veta principerna om normalisering och tillämpa dem på dina dagliga databasdesign är emellertid inte allt så komplicerat och det kan drastiskt förbättra prestandan hos dina DBMS.

I den här artikeln introducerar vi begreppet normalisering och tar en kort titt på de vanligaste vanliga formerna.

Vad är normalisering?

Normalisering är processen att organisera data effektivt i en databas. Det finns två mål för normaliseringsprocessen: eliminering av överflödiga data (till exempel lagring av samma data i mer än ett bord) och säkerställande av dataförlängningar är meningsfullt (endast lagring av relaterad data i en tabell). Båda dessa är värda mål eftersom de minskar mängden utrymme en databas konsumerar och ser till att data lagras logiskt.

Normalformerna

Databasgemenskapen har utvecklat en serie riktlinjer för att säkerställa att databaser normaliseras. Dessa benämns normala former och är numrerade från en (den lägsta formen av normalisering, kallad första normalform eller 1NF) genom fem (femte normalform eller 5NF). I praktiska tillämpningar ser du ofta 1NF, 2NF och 3NF tillsammans med enstaka 4NF. Den femte normalformen ses mycket sällan och kommer inte att diskuteras i den här artikeln.

Innan vi börjar diskutera de normala formulären är det viktigt att påpeka att de endast är riktlinjer och riktlinjer. Ibland blir det nödvändigt att avvika från dem för att uppfylla praktiska affärsbehov. Men när variationer sker, är det extremt viktigt att utvärdera eventuella konsekvenser de kan ha på ditt system och redogöra för eventuella inkonsekvenser. Med det sagt, låt oss utforska de normala formerna.

Första Normal Form (1NF)

Första normala formuläret (1NF) anger de grundläggande reglerna för en organiserad databas:

  • Eliminera dupliceringskolumner från samma tabell.
  • Skapa separata tabeller för varje grupp av relaterade data och identifiera varje rad med en unik kolumn eller uppsättning kolumner (den primära nyckeln).

Andra Normal Form (2NF)

Den andra normala formen (2NF) behandlar vidare begreppet att ta bort dubbletter:

  • Möt alla krav i den första normala formuläret.
  • Ta bort delmängder av data som gäller för flera rader av ett bord och placera dem i separata tabeller.
  • Skapa relationer mellan dessa nya tabeller och deras föregångare genom att använda främmande nycklar.

Tredje Normal Form (3NF)

Tredje normal form (3NF) går ett stort steg längre:

  • Möt alla kraven i den andra normala formen.
  • Ta bort kolumner som inte är beroende av primärnyckeln.

Boyce-Codd Normal Form (BCNF eller 3.5NF)

Den Boyce-Codd Normal Form, även kallad "tredje och halva (3.5) normal form", lägger till ytterligare ett krav:

  • Träffa alla krav i den tredje normala formuläret.
  • Varje determinant måste vara en kandidatnyckel.

Fjärde Normal Form (4NF)

Slutligen har fjärde normalform (4NF) ett ytterligare krav:

  • Träffa alla krav i den tredje normala formuläret.
  • En relation är i 4NF om den inte har flera värderade beroenden.

Kom ihåg att dessa normaliseringsriktlinjer är kumulativa. För att en databas ska vara i 2NF måste den först uppfylla alla kriterier i en 1NF-databas.

Ska jag normalisera?

Medan databas normalisering ofta är en bra idé är det inte ett absolut krav. I själva verket finns det några fall där avsiktligt bryter mot normaliseringsreglerna är en bra praxis. För mer om detta ämne, läs Bör jag normalisera min databas?

Om du vill se till att din databas är normaliserad, börja med att lära dig hur du sätter din databas i första normala formuläret.