Van Nul naar Drie Normaliseren 1 Inleiding In deze presentatie kijken we naar het normaliseren van de nulde naar de derde normaalvorm. 2 Een afleverbon: 3 Voor deze bon ontwerpen we een database: sleutels Nulde procesg egevens eerste derde 4 De nulde normaalvorm: Dat is: Een overzicht van alle velden (gegevens) die in de database opgenomen worden.!! 5 De lijst met velden: ORDERS: Ordernr Orderdatum Klantnr Klantnaam Adres Postcode Plaats Art.nr. Art.omschrijving Aantal Prijs Regeltotaal Eindtotaal 6 De nulde normaalvorm is nu klaar.. 7 De eerste normaalvorm: Verwijder alle procesgegevens Geef de sleutel van de groep aan Geef de deelverzameling aan die een herhaald aantal keren voorkomt t.o.v de primaire sleutel. (de repeterende groep) 8 Verwijder de procesgegevens: Orders Ordernr Orderdatum Klantnr Klantnaam Adres Postcode Plaats Art.nr Art.omschrijving Aantal Prijs X regeltotaal (procesgegeven) X eindtotaal (procesgegeven) 9 Geef een primaire sleutel: Orders Ordernr Orderdatum Klantnr Klantnaam Adres Postcode Plaats Art.nr Art.omschrijving Aantal Prijs X regeltotaal (procesgegeven) X eindtotaal (procesgegeven 10 Geef de deelverzameling die een herhaald aantal keren voorkomt… Orders Ordernr Orderdatum Klantnr Klantnaam Adres Postcode Plaats RG Art.nr RG Art.omschrijving RG Aantal RG Prijs X regeltotaal (procesgegeven) X eindtotaal (procesgegeven 11 Maak een nieuwe groep voor de herhalende gegevens: BESTELDE_ARTIKELEN Ordernr Art.nr Art.omschrijving Aantal Prijs 12 Verwijder de herhalende deelverzameling uit de oorspronkelijke groep.. ORDERS Ordernr Orderdatum Klantnr Klantnaam Adres Postcode Plaats 13 De eerste normaalvorm: ORDERS Ordernr Orderdatum Klantnr Klantnaam Adres Postcode Plaats BESTELDE_ARTIKELEN Ordernr Artnr Artomschrijving Aantal Prijs 14 De tweede normaalvorm… Geef de attributen aan die niet functioneel afhankelijk zijn van de volledige sleutel!! Maak een aparte groep voor ieder deel van de sleutel waarvan de attributen afhankelijk zijn!! Verwijder deze attributen uit de oorspronkelijke groep.!! 15 Geef de attributen aan die niet functioneel afhankelijk zijn van de volledige sleutel!! In de tabel BESTELDE_ARTIKELEN zijn een paar attributen die niet afhankelijk zijn van de gehele sleutel!! BESTELDE_ARTIKELEN Ordernr Artnr Artomschrijving Aantal Prijs 16 De artomschrijving is is afhankelijk van het artnummer De prijs is afhankelijk van het artnummer. BESTELDE_ARTIKELEN Ordernr >> Artnummer >> Artomschrijving Aantal >> Prijs 17 Voor deze attributen maken we een aparte groep. (we nemen de sleutel mee) ARTIKELEN Artnr Artomschrijving Prijs 18 Verwijder de attributen uit de oorspronkelijke groep… BESTELDE_ARTIKELEN Ordernr Artnr Aantal 19 We hebben nu de tweede normaalvorm: ORDERS ARTIKELEN Ordernr Orderdatum Klantnummer Klantnaam Adres Postcode Plaats artnr artomschrijving prijs BESTELDE_ARTIKELEN Ordernr Artnr Aantal 20 De derde normaalvorm: Geef de niet-sleutelattributen aan die functioneel afhankelijk zijn van andere nietsleutelattributen!! Maak een aparte groep voor ieder attribuut of combinatie ervan waar andere attributen functioneel van afhankelijk zijn. Neem in iedere groep de attributen met bijbehorende sleutel op en wijs de primaire sleutel aan. Verwijder de attributen uit de oorspronkelijke groep. (woordenlijst) 21 Geef de niet-sleutelattributen aan die functioneel afhankelijk zijn van andere nietsleutelattributen!! In de tabel ORDERS zijn een aantal gegevens die niet afhankelijk zijn van het ordernr. Dat zijn: klantnr, adres, postcode en plaats. Deze zijn afhankelijk van het klantnr. 22 Maak een aparte groep voor ieder attribuut of combinatie ervan waar andere attributen functioneel van afhankelijk zijn KLANTEN Klantnaam Adres Postcode Plaats 23 Neem in iedere groep de attributen met bijbehorende sleutel op en wijs de primaire sleutel aan. KLANTEN Klantnr Klantnaam Adres Postcode Plaats 24 Verwijder de attributen uit de oorspronkelijke groep. ORDERS Ordernr Klantnr Orderdatum 25 De derde normaalvorm: Orders Ordernr Klantnr Orderdatum BESTELDE_ARTIKELEN ordernr artnr aantal Klanten ARTIKELEN Klantnr Klantnaam Adres Postcode Plaats artnr artomschrijving prijs 26 . Woordenlijst. 27 Procesgegevens: wat zijn dat? Gegevens die door middel van berekeningen kunnen worden afgeleid uit andere gegevens !! Procesgegevens nemen we nooit op in een database. Terug 28 Een niet-sleutel attribuut Een veld in een tabel die geen primaire sleutel is. Voorbeeld: Leerlingnummer Naam Adres Woonplaats Niet-sleutel attributen zijn hier naam, adres en woonplaats. (Terug) 29 Attribuut / attributen: Attributen zijn de gegevens in een tabel. Bijvoorbeeld: naam, adres en woomplaats. Dit zijn de velden die we in de tabel zullen tegenkomen. In plaats van gegevens of velden spreken we vaak over attributen. (Terug) 30