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