Vad är normalisering?
Normalisering är en databasdesignteknik som minskar dataredundans och eliminerar oönskade egenskaper som insättning, uppdatering och borttagningsavvikelser. Normaliseringsregler delar större tabeller i mindre tabeller och länkar dem med hjälp av relationer. Syftet med normalisering i SQL är att eliminera överflödiga (repetitiva) data och se till att data lagras logiskt.
Uppfinnaren av relationsmodellen Edgar Codd föreslog teorin om normalisering av data med introduktionen av First Normal Form, och han fortsatte att utvidga teorin med Second and Third Normal Form. Senare gick han med i Raymond F. Boyce för att utveckla teorin om Boyce-Codd Normal Form.
Databasens normala formulär
Här är en lista över normala formulär
- 1NF (första normala formen)
- 2NF (andra normala form)
- 3NF (tredje normala formen)
- BCNF (Boyce-Codd Normal Form)
- 4NF (fjärde normalform)
- 5NF (femte normalform)
- 6NF (sjätte normalform)
Theory of Data Normalization på SQL-server utvecklas fortfarande vidare. Till exempel finns det diskussioner även på 6: e Normalform. Men i de flesta praktiska tillämpningar uppnår normalisering sitt bästa i tredje normalform . Utvecklingen av SQL Normaliseringsteorier illustreras nedan-

Databasnormalisering med exempel
Database Normalisering exempel lätt kan förstås med hjälp av en fallstudie. Antag att ett videobibliotek underhåller en databas med hyrda filmer. Utan normalisering i databasen lagras all information i en tabell enligt nedan. Låt oss förstå normalisering i databas med exempel på tabeller:
Här ser du filmen Hyrd kolumn har flera värden. Låt oss nu gå till 1: a normala former:
1NF-regler (First Normal Form)
- Varje tabellcell ska innehålla ett enda värde.
- Varje skiva måste vara unik.
Ovanstående tabell i 1NF-
1NF Exempel
Innan vi fortsätter ska vi förstå några saker -
Vad är en NYCKEL?
EN NYCKEL är ett värde som används för att identifiera en post i en tabell unikt. EN NYCKEL kan vara en enda kolumn eller en kombination av flera kolumner
Obs! Kolumner i en tabell som INTE används för att identifiera en post unikt kallas icke-nyckelkolumner.
Vad är en primär nyckel?

En primär är ett enda kolumnvärde som används för att identifiera en databaspost unikt.
Den har följande attribut
- En primär nyckel kan inte vara NULL
- Ett primärt nyckelvärde måste vara unikt
- De primära nyckelvärdena bör sällan ändras
- Primärnyckeln måste ges ett värde när en ny post infogas.
Vad är kompositnyckel?
En sammansatt nyckel är en primärnyckel som består av flera kolumner som används för att identifiera en post unikt
I vår databas har vi två personer med samma namn Robert Phil, men de bor på olika platser.
Därför kräver vi både fullständigt namn och adress för att identifiera en post unikt. Det är en sammansatt nyckel.
Låt oss gå in i andra normala form 2NF
2NF-regler (andra normala form)
- Regel 1- Var i 1NF
- Regel 2- Primärnyckel för en kolumn
Det är uppenbart att vi inte kan gå vidare för att göra vår enkla databas i andra normaliseringsform om vi inte partitionerar tabellen ovan.
Vi har delat vår 1NF-tabell i två tabeller, nämligen. Tabell 1 och Tabell 2. Tabell 1 innehåller medlemsinformation. Tabell 2 innehåller information om hyrda filmer.
Vi har introducerat en ny kolumn som heter Membership_id som är den primära nyckeln för tabell 1. Poster kan identifieras unikt i tabell 1 med hjälp av medlems-id
Databas - utländsk nyckel
I tabell 2 är Membership_ID den främmande nyckeln
Foreign Key refererar till den primära nyckeln i en annan tabell! Det hjälper till att ansluta dina bord
- En främmande nyckel kan ha ett annat namn än dess primära nyckel
- Det säkerställer att rader i en tabell har motsvarande rader i en annan
- Till skillnad från primärnyckeln behöver de inte vara unika. Oftast är de inte det
- Utländska nycklar kan vara noll trots att primära nycklar inte kan
Varför behöver du en utländsk nyckel?
Antag att en nybörjare infogar en post i tabell B som
Du kommer bara att kunna infoga värden i din främmande nyckel som finns i den unika nyckeln i modertabellen. Detta hjälper till med referensintegritet.
Ovanstående problem kan övervinnas genom att deklarera medlems-id från tabell 2 som utländsk nyckel för medlems-id från tabell 1
Om någon nu försöker infoga ett värde i fältet för medlems-id som inte finns i överordnadstabellen, visas ett fel!
Vad är övergående funktionella beroenden?
Ett övergående funktionellt beroende är när du ändrar en icke-nyckelkolumn, vilket kan få någon av de andra icke-nyckelkolumnerna att ändras
Tänk på tabellen 1. Att ändra den icke-nyckelkolumnen Fullt namn kan ändra hälsning.
Låt oss flytta in i 3NF
3NF-regler (tredje normala form)
- Regel 1- Var i 2NF
- Regel 2 - Har inga övergående funktionella beroenden
För att flytta vårt 2NF-bord till 3NF måste vi igen dela upp vårt bord igen.
3NF Exempel
Nedan följer ett 3NF-exempel i SQL-databas:
Vi har delat upp våra bord igen och skapat en ny tabell som lagrar Salutations.
Det finns inga övergående funktionella beroenden, och därför finns vårt bord i 3NF
I tabell 3 Hälsnings-ID är primär nyckel och i tabell 1 Hälsnings-ID är främmande för primär nyckel i tabell 3
Nu är vårt lilla exempel på en nivå som inte längre kan sönderdelas för att uppnå högre normala former av normalisering. Faktum är att det redan finns i högre normaliseringsformer. Separata ansträngningar för att flytta till nästa nivåer av normaliserande data behövs normalt i komplexa databaser. Vi kommer dock att diskutera nästa nivåer av normaliseringar i korthet i det följande.
BCNF (Boyce-Codd Normal Form)
Även när en databas är i tredje normalform skulle det fortfarande uppstå avvikelser om den har mer än en kandidatnyckel .
Ibland kallas BCNF även 3,5 normalform.
4NF-regler (fjärde normalform)
Om ingen databastabellinstans innehåller två eller flera, oberoende och flervärdesdata som beskriver den relevanta enheten, är den i 4: e normalform.
5NF-regler (femte normala formen)
En tabell är endast i 5: e normalform om den är i 4NF och den inte kan sönderdelas i ett antal mindre tabeller utan förlust av data.
6NF (sjätte normalform) föreslagen
6 : e Normal Form inte är standardiserad, men dock den håller på att diskuteras av databas experter för en tid. Förhoppningsvis skulle vi ha en tydlig och standardiserad definition för 6: e normalformen inom en snar framtid ...
Det är allt för SQL Normalization !!!
Sammanfattning
- Databasdesign är avgörande för ett framgångsrikt genomförande av ett databashanteringssystem som uppfyller datakraven för ett företagssystem.
- Normaliseringsprocessen i DBMS hjälper till att producera databassystem som är kostnadseffektiva och har bättre säkerhetsmodeller.
- Funktionella beroenden är en mycket viktig komponent i normaliseringsdataprocessen
- De flesta databassystem är normaliserade databaser upp till de tredje normala formerna.
- En primär nyckel som unikt identifierar är registrerad i en tabell och kan inte vara null
- En främmande nyckel hjälper till att ansluta tabellen och refererar till en primär nyckel