Van Nul naar Drie Normaliseren
Inleiding In deze presentatie kijken we naar het normaliseren van de nulde naar de derde normaalvorm.
Een afleverbon:
Voor deze bon ontwerpen we een database: sleutels Nulde eerste procesgegevens derde
De nulde normaalvorm: Dat is: Een overzicht van alle velden (gegevens) die in de database opgenomen worden.!!
De lijst met velden: ORDERS: Ordernr Orderdatum Klantnr Klantnaam Adres Postcode Plaats Art.nr. Art.omschrijving Aantal Prijs Regeltotaal Eindtotaal
De nulde normaalvorm is nu klaar..
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)
Verwijder de procesgegevens: Orders Ordernr Orderdatum Klantnr Klantnaam Adres Postcode Plaats Art.nr Art.omschrijving Aantal Prijs X regeltotaal (procesgegeven) X eindtotaal (procesgegeven)
Geef een primaire sleutel: Orders Ordernr Orderdatum Klantnr Klantnaam Adres Postcode Plaats Art.nr Art.omschrijving Aantal Prijs X regeltotaal (procesgegeven) X eindtotaal (procesgegeven
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
Maak een nieuwe groep voor de herhalende gegevens: BESTELDE_ARTIKELEN Ordernr Art.nr Art.omschrijving Aantal Prijs
Verwijder de herhalende deelverzameling uit de oorspronkelijke groep.. ORDERS Ordernr Orderdatum Klantnr Klantnaam Adres Postcode Plaats
De eerste normaalvorm: ORDERS Ordernr Orderdatum Klantnr Klantnaam Adres Postcode Plaats BESTELDE_ARTIKELEN Artnr Artomschrijving Aantal Prijs
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.!!
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
De artomschrijving is is afhankelijk van het artnummer De prijs is afhankelijk van het artnummer. BESTELDE_ARTIKELEN Ordernr >> Artnummer >> Artomschrijving Aantal >> Prijs
Voor deze attributen maken we een aparte groep Voor deze attributen maken we een aparte groep. (we nemen de sleutel mee) ARTIKELEN Artnr Artomschrijving Prijs
Verwijder de attributen uit de oorspronkelijke groep… BESTELDE_ARTIKELEN Ordernr Artnr Aantal
We hebben nu de tweede normaalvorm: ORDERS ARTIKELEN Ordernr artnr Orderdatum artomschrijving Klantnummer prijs Klantnaam Adres Postcode Plaats BESTELDE_ARTIKELEN Ordernr Artnr Aantal
De derde normaalvorm: Geef de niet-sleutelattributen aan die functioneel afhankelijk zijn van andere niet-sleutelattributen!! 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)
Geef de niet-sleutelattributen aan die functioneel afhankelijk zijn van andere niet-sleutelattributen!! 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.
Maak een aparte groep voor ieder attribuut of combinatie ervan waar andere attributen functioneel van afhankelijk zijn KLANTEN Klantnaam Adres Postcode Plaats
Neem in iedere groep de attributen met bijbehorende sleutel op en wijs de primaire sleutel aan. KLANTEN Klantnr Klantnaam Adres Postcode Plaats
Verwijder de attributen uit de oorspronkelijke groep. ORDERS Ordernr Klantnr Orderdatum
De derde normaalvorm: Orders BESTELDE_ARTIKELEN Klanten ARTIKELEN Ordernr ordernr Klantnr artnr Orderdatum aantal Klanten ARTIKELEN Klantnr artnr Klantnaam artomschrijving Adres prijs Postcode Plaats
Woordenlijst. .
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
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)
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)