Databaser 3. Normalform Mette Frost Nielsen
Normalisering Kvalitetssikring ej redundans Ej null i tabeller Hurtigere Lettere at vedligeholde
Ordbog Relation = tabel Redundans = gentagelser, samme information flere gange Null = ingenting, tomme felter Entitetsklasse = tabel Attributter = felter (søjler) i tabellen Værdimængden Simple og sammensatte En-værdi og flerværdi
Nøgler Primærnøgle Minimal samling af en aller flere attributter, hvis værdier entydigt bestemmer en entitet i entitetsklassen Bruges til at slå op med Kandidatnøgler Mulige primærnøgler Fremmednøgler En attribut, eller en samling af attributter, der er primærnøgle (eller kandidatnøgle) for en anden tabel
Relationer Relation: sammenkobler to entiteter(tabeller) Kardinalitet (siger noget om relationen) 1 til 1 1 til mange Mange til 1 Mange til mange
E/R-modellering Brainstorm Sorter Kategoriser Saml og minimaliser Relationer og kardinaliteter Primærnøgler
E/R-diagram Symbol Eksempel Betydning Rektangel Ellipse Ellipse med understreget indhold Entitetsklasse Attribut Primærnøgle eller del af primærnøgle for entitetsklasse Dobbeltellipse Flerværdi-attribut (0, 1 sprog eller flere værdier) Diamant Linje Person navn CPR-nummer Ejer Relation Forbinder attributter med entitetsklasser og entitetsklasser med relationer
Eksempel
Relationel database Database, der er opbygget som en samling tabeller. Tabellerne er forbundet via eksplicitte relationer. Data i tabelindgangene kan tilgås og manipuleres ved hjælp af forespørgsler.
Fra E/R diagram til rel.database Symbol Eksempel Betydning Database Rektangel Person Entitetsklasse Tabel Ellipse navn Attribut Felt/søjle Ellipse med understreget indhold CPR-nummer Primærnøgle eller del af primærnøgle for entitetsklasse Primærnøgle Dobbeltellipse sprog Flerværdi-attribut (0, 1 eller flere værdier) Felt/søjle Diamant Ejer Relation Tabel Linje Forbinder attributter med entitetsklasser og entitetsklasser med relationer Forbinder to tabeller: 1 til 1 1 til mange Mange til 1 Mange til mange
Denormaliseret Lærer Initialer JCB BM MSL Fag Matematik Samfundsfag Teknologihistorie Engelsk Dansk Matematik Fysik Problem: Flere værdier i et felt svært at hente, ændre, indsætte, slette data
1. Normalform (1NF) Kun én værdi i hvert felt Tabellen har en primærnøgle Lærer: Initialer Fag_1 Fag_2 Fag_3 JCB Matematik Samfundsfag Teknologihistorie BM Dansk Engelsk <NULL> MSL Matemaik Fysik <NULL> En database er på 1NF, hvis alle tabeller er på 1NF! Problem: Hvor mange fag kan en lærer undervise i? Spildplads
2. Normalform (2NF) A. Den er på 1NF og B, C eller D B. Tabellen indeholder ikke en sammensat kandidatnøgle C. Tabellen indeholder 1 sammensat kandidatnøgle, og alle andre attributter i tabellen er afhængige af hele den sammensatte kandidatnøgle D. Tabellen indeholder flere sammensatte kandidatnøgler, der hver opfylder C Dvs. enhver attribut der ikke er med i nøglen er afhængig af hele (primær-) nøglen Udvalgsmøde: Mødetidspunkt Udvalg Mødelokale 11.30 Elevråd C209 Udvalgsmødetidspunkt: Mødetidspunkt Udvalg 11.30 Elevråd 15.30 Elevråd Udvalgsmødelokale: Udvalg Elevråd Mødelokale C209
3. Normalform (3NF) Den er på 2NF Ingen af tabellens attributter afhænger indirekte af en kandidatnøgle Dvs. enhver attribut afhænger kun af primærnøglen Vinder: Turnering Sæson Klub Hjemland UEFA 2005/06 Sevilla Spanien UEFA 2000/01 Liverpool England Vinder: Turnering Sæson Klub UEFA 2005/06 Sevilla UEFA 2000/02 Liverpool Klubhjemland: Klub Sevilla Liverpool Hjemland Spanien England
Kilder Grundbog i datalogi: Martin Damhus, Systime 2008 http://www.udvikleren.dk/database/article.aspx/146/, Brian Hvarregaard (20. feb 2009) http://www.designcreative.dk/blog/database_normalisering/ normalisering_database_sql_foerste_normalform.htm, Kim Andersen (20. feb 2009)