Database: normalisatie

advertisement
Databaseontwerp
Normalisatie
Database
Gestructureerde verzameling van tabellen
Onderling verbonden door relaties:
•
•
•
1-1
1-n
n-m (= combinatie van 2 maal 1-n)
Op basis van sleutels:
•
•
Primaire sleutel (PK): uniek gegeven
Verwijssleutel (FK): gegeven is in andere tabel PK
Normaliseren
Formele techniek
Aantal stappen (normaalvormen)
Gegevensredundantie elimineren
(“gegevensredundantie leidt tot gegevensinconsistentie!!!”)
… tabellen opsplitsen
… denormaliseren
0NF
Ongenormaliseerde tabel opstellen
Verwijder alle procesgegevens (p. 31)
Bepaal de PK
Voorbeeld 0NF
COMMISSIE (Code, ComNaam, (LidNr,
LidNaam, LidTel))
1NF
Splits de herhalingsstructuren af
Herhalingsstructuur in nieuwe tabel
Samen met oorspronkelijke PK
Oorspronkelijke PK FK
Bepaal nieuwe PK
Voorbeeld 1NF
COMMISSIE (Code, ComNaam)
COMMISSIELEDEN (Code, LidNr,
LidNaam, LidTel)
(1-n relatie: 1 commissie bevat 1 of meer
leden)
2NF
Splits alle niet v/d PK functioneel
afhankelijke gegevens af
Gegevens in afzonderlijke tabel
Bepaal nieuwe PK
Nieuwe PK blijft in oorspronkelijke tabel
als FK
Voorbeeld 2NF
COMMISSIE (Code, ComNaam)
COMMISSIELEDEN (Code, LidNr)
LEDEN (LidNr, LidNaam, LidTel)
(n-m relatie: 1 commissie bevat 1 of meer leden
en 1 lid zit in 1 of meer commissies)
3NF
Splits alle transitieve afhankelijkheden af
Gegevens in afzonderlijke tabel
Bepaal nieuwe PK
Nieuwe PK blijft in oorspronkelijke tabel
als FK
Denormalisatie
Probleem
Aantal tabellen neemt toe
beheer tabellen complexer
Oplossing
Tabellen samenvoegen
Randvoorwaarden
• Geen info verloren
• Geen redundantie invoeren
Oefeningen
Zie DiLeAHS:
http://dileahs.arteveldehs.be
Download