Normalisering (overblik)
Informatik C · STX · C-niveau · Datamodellering
💻 Normalisering (overblik)
Normalisering er en proces til at organisere data i database-tabeller, så der ikke er redundans (dobbelt-data) og dataintegritet bevares.
Formål:
- Undgå redundans (samme data flere steder).
- Undgå anomalier (insert/update/delete-anomalier).
- Sikre dataintegritet.
Normalformer (Codd 1970'erne):
1NF (1. normalform): alle felter indeholder atomare værdier.
- Forkert:
Telefon = "12345678, 87654321"(flere værdier i ét felt). - Rigtigt: separate rækker eller en relateret telefon-tabel.
2NF (2. normalform): opfyldt 1NF + alle ikke-nøgle-felter er FULDT afhængige af primærnøglen (gælder kun ved sammensatte nøgler).
3NF (3. normalform): opfyldt 2NF + ingen transitive afhængigheder (ikke-nøgle-felt afhænger af et andet ikke-nøgle-felt).
- Forkert:
Elev(elev_id, navn, klasse, klasse_lærer)— klasse_lærer afhænger af klasse, ikke direkte af elev. - Rigtigt: opdel i to tabeller —
Elev(elev_id, navn, klasse_id)+Klasse(klasse_id, klasse_lærer).
Eksempel — denormaliseret tabel:
| OrdreID | Kunde | KundeAdr | Vare | Pris |
|---|---|---|---|---|
| 1 | Anna | Vej 1 | Bog | 100 |
| 2 | Anna | Vej 1 | Æble | 5 |
Problem: Annas adresse gentages → hvis hun flytter, skal alle ordrer opdateres (update-anomali).
Normaliseret (3NF):
- Kunde: (KundeID, Navn, Adresse).
- Ordre: (OrdreID, KundeID, Dato).
- Ordrelinje: (OrdreID, VareID, Antal).
- Vare: (VareID, Navn, Pris).
Centrale begreber
- Undgå redundans (samme data flere steder).
- Undgå anomalier (insert/update/delete-anomalier).
- Sikre dataintegritet.
- Forkert:
Telefon = "12345678, 87654321"(flere værdier i ét felt). - Rigtigt: separate rækker eller en relateret telefon-tabel.
- Forkert:
Elev(elev_id, navn, klasse, klasse_lærer)— klasse_lærer afhænger af klasse, ikke direkte af elev. - Rigtigt: opdel i to tabeller —
Elev(elev_id, navn, klasse_id)+Klasse(klasse_id, klasse_lærer). - Kunde: (KundeID, Navn, Adresse).
Læringsmål
- Lave tabeller med primær- og fremmednøgle
- Lave ER-diagrammer
- Forstå normalisering (overblik)
- Skrive simple SQL-queries (SELECT, WHERE, JOIN)
Sådan kan du arbejde med emnet
- Tag en tabel med gentagne data og forklar, hvad der er problemet, og hvad normalisering løser
- Beskriv, hvad 1NF og 2NF er med et konkret eksempel
- Diskutér, hvad der er de praktiske fordele ved normalisering
Faglige pointer
Eksempel — denormaliseret tabel:
Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.
Prøv Fagportalen gratis