Normaliseren Uitgangspunt Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier Doel te komen tot een gestructureerde verzameling gegevens, die een duidelijk beeld geven van de relaties, die in de verzameling onderkend kunnen worden. Proces onderzoeken van afhankelijkheden tussen attributen van een relatie stapsgewijze uitvoering (0NF, 1NF, 2NF, 3NF, BCNF) Resultaat een aantal genormaliseerde relaties zonder zinloze redundanties • week 3
Normaliseren De 0e Normaalvorm Inventariseer alle elementaire gegevens. Bepaal de sleutel (unieke identificatie). Bepaal de repeterende groep. Bepaal de procesgegevens • week 3
Normaliseren De 0e Normaalvorm Een voorbeeld: • Inventariseer alle elementaire gegevens. Bepaal de sleutel (unieke identificatie). Bepaal de repeterende groep. Bepaal de procesgegevens De 0e Normaalvorm • Een voorbeeld: Artiest/groep : WALTER TROUT BAND Uitgever : PROVOGUE Jaar van uitgave : 1990 Titel : LIFE IN THE JUNGLE Aankoopjaar : 1992 Opnamekwaliteit : ADD Totale speelduur : 0:53:24 (zonder pauzes) Aantal liedjes : 10 1 GOOD ENOUGH TO EAT 0:4:22 2 THE MOUNTAIN SONG 0:3:37 3 LIFE IN THE JUNGLE 0:5:39 4 SPACEFISH 0:0:44 5 RED HOUSE 0:9:35 6 SHE'S OUT THERE SOMEWHERE 0:4:19 7 FREDERICA(I DON'T NEED YOU) 0:4:50 8 IN MY MIND 0:4:24 9 COLD COLD FEELING 0:8:41 10 SERVE ME RIGHT TO SUFFER 0:7:13 week 3
Normaliseren De 1e Normaalvorm Verwijder procesgegevens Splits de repeterende groep af Neem de sleutel van de oorspronkelijke groep mee Breid de sleutel van de nieuwe groep uit • week 3
Normaliseren Van 0 NV naar 3 NV Een derde voorbeeld: Firma “Draaibank” Ordernummer: 93-112 orderdatum: 8 mrt 2001 leveranciersnummer: L3921 naam: Kantje Boort plaats: Tilburg Leverdatum: 3 april 2001 artikelnr omschrijving stukprijs hoeveelheid prijs 3216 Bout 0,30 1200 360,00 4248 Moer M12 0,05 1000 50,00 6482 Flens 4,80 250 1200,00 Totaal: 1610,00 prijs in euro’s Firma “Draaibank” • week 3
Normaliseren 0 NV 1 NV Verwijder procesgegevens object 1 ordernr orderdatum levnr levnaam levplaats levdatum Splits de repeterende groep af ordernr orderdatum levnr levnaam levplaats levdatum artnr artomschr. stukprijs aantal prijs totaal Neem de sleutel van de oorspronkelijke groep mee Breid de sleutel van de nieuwe groep uit • 2 ordernr artnr artomschr. stukprijs aantal * week 3
Normaliseren Het strokendiagram 1 NV 1 ordernr orderdatum levnr levnaam levplaats levdatum levplaats levdatum levnaam levnr orderdatum ordernr aantal stukprijs artomschr artnr object 1 object 2 1:n 2 ordernr artnr artomschr. stukprijs aantal week 3
Normaliseren ^ Het strokendiagram 1 NV 1 ordernr orderdatum levnr levnaam levplaats levdatum object 1 ordernr orderdatum levnr levnaam levplaats levdatum ^ 1:n OF: 2 ordernr object 2 artnr artomschr. stukprijs aantal ordernr artnr artomschr stukprijs aantal week 3
Normaliseren ^ Het strokendiagram 1 NV 1 ordernr orderdatum levnr levnaam levplaats levdatum object 1 ordernr orderdatum levnr levnaam levplaats levdatum OF: 1:n 2 ordernr object 2 artnr artomschr. stukprijs aantal ^ ordernr artnr artomschr stukprijs aantal week 3
Functioneel afhankelijk Drie mogelijkheden: 1 volledig functioneel afhankelijk 2 niet- volledig functioneel afhankelijk 3 transitief functioneel afhankelijk • week 3
Functioneel afhankelijk Tabel T A B Indien van iedere waarde van A één waarde van B hoort => B is functioneel afhankelijk van A => A bepaalt B A B in T determinant • week 3
Functioneel afhankelijk Tabel T A B K L Indien: A+B K dan is K volledig functioneel afhankelijk van AB B L dan is L niet- volledig functioneel afhankelijk van AB Het attribuut L wordt afgesplitst van 1NV naar 2NV (het afsplitsen van niet-volledige functionele afhankelijkheden) • week 3
? ordernr + artnr aantal ……………….. functioneel afhankelijk Voorbeeld: object 2 ordernr artnr artomschr. stukprijs aantal ? ordernr + artnr aantal ……………….. functioneel afhankelijk ordernr + artnr artomschr ……………….. functioneel afhankelijk artnr artomschr ……………….. functioneel afhankelijk ordernr + artnr stukprijs ……………….. functioneel afhankelijk artnr stukprijs ……………….. functioneel afhankelijk • week 3
Functioneel afhankelijk Tabel T A B C A B B C B is volledig functioneel afhankelijk van A C is volledig functioneel afhankelijk van B Dus C is afhankelijk van A via B Dit noemt men ook wel transitief functioneel afhankelijk • week 3
Normaliseren 0 NV 1 NV 2 NV Splits de attributen af die van een deel van de sleutel afhankelijk zijn 1 ordernr orderdatum levnr levnaam levplaats levdatum 1 ordernr orderdatum levnr levnaam levplaats levdatum ordernr orderdatum levnr levnaam levplaats levdatum artnr artomschr. stukprijs aantal prijs totaal Neem dat deel van de sleutel mee en maak dit sleutel 2.1 ordernr artnr aantal 2 ordernr artnr artomschr. stukprijs aantal • 2.2 artnr * artomschr. stukprijs week 3
? Normaliseren ^ ^ Het strokendiagram 2 NV object 1 1 ordernr orderdatum levnr levnaam levplaats levdatum ordernr orderdatum levnr levnaam levplaats levdatum ? object 2.1 ^ ordernr artnr aantal • ^ 2.1 ordernr artnr aantal stukprijs artomschr artnr object 2.2 2.2 artnr artomschr. stukprijs week 3
Normaliseren 1 NV 2 NV 3 NV Splits de attributen af die van een niet-sleutelattribuut afhankelijk zijn • 2.1 2.2 1.1 1.2 ordernr orderdatum levnr levdatum 1 ordernr orderdatum levnr levnaam levplaats levdatum ordernr orderdatum levnr levnaam levplaats levdatum Neem het niet-sleutelattribuut over en maak dit sleutel levnr levnaam levplaats 2.1 artomschr. stukprijs artnr ordernr aantal artomschr. stukprijs artnr ordernr aantal ordernr artnr artomschr. stukprijs aantal 2.2 week 3
Normaliseren ^ ^ ^ Het strokendiagram levnaam levplaats ordernr orderdatum levnr levdatum artomschr. stukprijs artnr aantal Inkooporder 2.1 2.2 1.1 1.2 ordernr order datum levnr levdatum ^ ^ Leverancier levnr levnaam levplaats Order ordernr artnr aantal ^ Artikel • artnr artomschr. stukprijs • • week 3
Herhaling normaliseren Normalisatie-stappen: 0NF: Inventariseer alle elementaire gegevens. Bepaal de sleutel (unieke identificatie). Bepaal de repeterende groep. Bepaal de procesgegevens 1NF: Verwijder de procesgegevens Voer voor elke repeterende groep het volgende uit: Splits de repeterende groep af. Neem de sleutel van de oorspronkelijke groep over. Breid de sleutel van de nieuwe groep uit. • week 4
Herhaling normaliseren Normalisatie-stappen: 2NF: Splits de attributen af die van een deel van de sleutel afhankelijk zijn. Neem dat deel van de sleutel waar de attributen van afhankelijk zijn over en maak dit de sleutel determinant 3NF: Splits de attributen af die van een niet- sleutelattribuut afhankelijk zijn. Neem het niet-sleutel attribuut waar de attributen van afhankelijk zijn over en maak dit de sleutel. BCNF: Wanneer sprake is van onderlinge functionele afhankelijkheid tussen sleutelattributen, splits deze attributen dan af • week 4
Huiswerk DBS1-theorie Bestuderen Hoofdstuk 3 t/m 3.3 (tot aan funct. afh.) [Stwb] Bestuderen Hoofdstuk 3,4 [RO] Voorbeeld 3.7.2 blz 48 onderaan: zelf doen Maken opgave 2.5.1, 2.5.2, 3.8.1, 3.8.5a, 3.8.6a en c Einde week 3, les 1 week 3