Hm, goede voorbereiding voor mijn examen donderdag

. BTW het maakt toch helemaal niet uit voor welke DB je normaliseert. Het hoeft zelfs niet eens voor een informaticatoepassing te zijn. Jaja, er zijn nog bedrijven die met een kaartenbak werken

. Ik zet er ook ff voorbeeldje bij, dan is het wat makkelijker te volgen.
Ok, eerste stap zal je al wel hebben. Gewoon al je gegevens onder elkaar zetten met een primaire sleutel --> 0de NV
Citaat:
Bestelbon
bestelbonnummer
naam
straat
nummer
postcode
gemeente
artikelnummer
artikelnaam
artikelhoeveelheid
artikelprijs
|
Tweede stap. Repeterende attributen afzonderen. Ik weet niet wat je bronnen zijn van je gegevens die je wil normaliseren? Maar stel dat je een uitgaat van een bestelbon. Dan zijn de verschillende artikels op je bestelbon de herhalende elementen. Er komen (of er kunnen) meer artikels op 1 bon staan, terwijl er b.v. maar 1 keer adresgegevens, bestelbonnummer enzo opstaat. Die herhalende attributen ga je dan afzonderen en je geeft ze een primaire sleutel, maar je geeft ze ook de primaire sleutel van je 0de NV mee. Dus je artikels (met alle mogelijke andere attributen zoals gegevens, prijs, ... erbij) komen appart te staan met b.v. een artikelnummer en bestelbonnummer (primaire sleutel van je 0de NV).
Het kan zijn dat je deze stap meerdere keren moet herhalen als er nog herhalende attributen zijn. (b.v. per artikelnummer kan je nog kiezen tussen een jaartal. Je kan dus kiezen tussen artikel 15 van jaar 1995 of artikel 15 van jaar 1997. Dan moet je die jaartallen ook nog eens afzonderen)
--> 1ste NV
Citaat:
Bestelbon
bestelbonnummer
naam
straat
nummer
postcode
gemeente
Artikel
bestelbonnummer
artikelnummer
artikelnaam
artikelhoeveelheid
artikelprijs
|
Derde stap. Je gaat nu enkel kijken onder de stukken met een dubbele primaire sleutel. In mijn voorbeeld dus bij de artikels. Je gaat nu controleren of alle attributen onder die dubbele sleutel wel degelijk afhankelijk zijn van die sleutel. Dit is makkelijker uit te leggen met mijn voorbeeld. Zo heb je artikelnaam, artikelhoeveelheid en artikelprijs bij artikel staan. De naam of de prijs van het artikel zijn helemaal niet afhankelijk van bestelbonnummer, maar enkel van artikelnummer. Die stukken die dus niet afhankelijk zijn van de volledige sleutel, ga je dan ook afzonderen uit die groep. Je geeft die aparte groep dan natuurlijk wel dat deel van de sleutel waar die WEL van afhankelijk is he. De hoeveelheid hangt dan weer wel af van het bestelbonnummer. Als dat artikel voorkomt op een andere bestelbon, dan kan die andere klant meer of minder van dat artikel besteld hebben. Dat stuk laat je dan ook onder de dubbele sleutel staan. Als je meerdere groepen hebt met een dubbele sleutel, dan controleer je die andere natuurlijk ook. Maar let op, enkel die groepen (entiteiten) met een dubbele sleutel.
-->2de NV
Citaat:
Bestelbon
bestelbonnummer
naam
straat
nummer
postcode
gemeente
Artikel/bestelbon
bestelbonnummer
artikelnummer
artikelhoeveelheid
Artikel
artikelnummer
artikelnaam
artikelprijs
|
Vierde stap. Bij deze stap moeten we terug gaan kijken naar al onze entiteiten (groepen). Sommigen attributen zijn immers helemaal niet afhankelijk van een of andere sleutel maar van een ander attribuut. Nemen we in onze entiteit bestelbon bij voorbeeld. Er staat een naam, adres, postcode,... in. Het gaat dus om de gegevens van 1 klant. Het adres van die klant is afhankelijk van de naam van die klant. Die attributen kunnen we dan weer uit die desbetreffende entiteiten lichten. Normaal moet je deze stap wel voor een aantal entiteiten herhalen.
-->3de NV
Citaat:
Bestelbon
bestelbonnummer
klantnummer
Klant
klantnummer
naam
straat
nummer
postcode
gemeente
Artikel/bestelbon
bestelbonnummer
artikelnummer
artikelhoeveelheid
Artikel
artikelnummer
artikelnaam
artikelprijs
|
Nu heb je nog een aantal volgende normaalvormen, de BC-NV, 4de NV, 5de NV. Maar die komen minder vaak voor en ik wil nu niet helemaal gaan overdrijven met mijn post. Dit zijn alvast de meest voorkomende stappen.
Ik hoop dat ik het een beetje begrijpbaar heb uitgelegd, anders stel je nog maar vragen.

Nu nog zien dat ik het op mijn examen ook nog allemaal weet