De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

5 I N F O R M A T I C A B E H E E R Vrij Technisch Instituut - Hasselt Relationele Databases Hst 3 : Normaliseren.

Verwante presentaties


Presentatie over: "5 I N F O R M A T I C A B E H E E R Vrij Technisch Instituut - Hasselt Relationele Databases Hst 3 : Normaliseren."— Transcript van de presentatie:

1 5 I N F O R M A T I C A B E H E E R Vrij Technisch Instituut - Hasselt Relationele Databases Hst 3 : Normaliseren

2 1. Van een ERD naar een relationele DB PATIËNT naam voornaam gewicht lengte entiteit attributen naamvoornaamgewichtlengte JansenJos74 kg1m72 TimmersAnnie62 kg1m58 PeetersFilip85 kg1m82 1object van de entiteit = 1 record of rij Kolommen of velden tblpatiënten tabel Notatie van een tabel: tblpatiënten (naam, voornaam, gewicht, lengte)

3 ERD Entiteiten Attributen Relaties Tabellen Velden Relaties Een relationele DB (bvb. ACCESS) 1. Van een ERD naar een relationele DB

4 naamvoornaamgewichtlengte JansenJos74 kg1m72 TimmersAnnie62 kg1m58 JansenJos74 kg1m72 PeetersFilip85 kg1m82 2. Kan om het even welke tabel in een relationele DB worden opgenomen? Probleem: 2 identieke rijen Gevaar van gegevensinconsistentie Onnodig “geheugenverbruik” door gegevensredundantie ( zelfde informatie komt op meerdere plaatsen in de tabel voor) Voorwaarde 1: Geen twee identieke rijen in een relationele DB!

5 naamvoornaamgewichtlengteopmerking JansenJos74 kg1m7212 kg zwaarder dan persoon hieronder TimmersAnnie62 kg1m60 FlipkensJan78 kg1m7515 cm groter dan persoon hierboven PeetersFilip85 kg1m82 Probleem: Gegevensinconsistentie bij bepaalde operaties (bvb. sorteren op naam) Voorwaarde 2: volgorde van rijen en kolommen is niet belangrijk, d.w.z. dat je zonder gevolgen rijen en kolommen van plaats mag wisselen 2. Kan om het even welke tabel in een relationele DB worden opgenomen?

6 Voorwaarde 3: gegevens in een kolom mogen geen “opsomming van gegevens” zijn. Elke cel bevat atomaire gegevens typekleurlevertermijnkostprijs kastzwart wit bruin 6 weken BEF salontafelbeige wit 4 weken 2 weken BEF stoelgeel1 week4 500 BEF tafelpaars bruin rood 5 weken BEF 2. Kan om het even welke tabel in een relationele DB worden opgenomen? Probleem: Hoeveel geheugen moeten we reserveren voor de kolom “kleur”?

7 2. Besluit: Voorwaarden waaraan een tabel moet voldoen in een relationele database 1.Geen twee identieke rijen in een relationele DB! 2.Volgorde van rijen en kolommen is niet belangrijk 3.Elke cel bevat atomaire gegevens  Gevaren wanneer deze voorwaarden niet voldaan zijn: Risico op inconsistentie Gegevensredundantie Om tot een tabel te komen die aan deze voorwaarden voldoet, moeten enkele stappen ondernomen worden. Het achtereenvolgens uitvoeren van deze stappen nomen we het NORMALISEREN van een DB.

8 3. HET NORMALISATIEPROCES WAT? herschikking van gegevens waarbij soms nieuwe gegevensgroepen (tabellen) ontstaan door afzondering van gegevens uit bestaande groepen (tabellen) DOEL? de uiteindelijke databank mag geen redundantie bevatten en de gegevensinconsistentie wordt ingeperkt De stappen: 0NF 1NF 2NF 3NF Een “rauwe” gegevensgroep Gegevensgroep die voldoet aan de eisen van een relationele omgeving: geen redundantie!

9 Bepaal een PRIMAIRE SLEUTEL = een kolom of veld dat verschillend is voor elk van de rijen of records Dit kan ook combinatie zijn van twee of meer velden = samengestelde sleutel 3. Het normalisatieproces – STAP 0 – 0NF BankrekeningNaamVoornaamAdresGeboortedatu m PietersAlexPietelbeek12/02/ BuvensHironBurchtstraat18/02/ GermainKrisSchouwburgst raat 26/03/1966

10 Als je geen geschikte sleutel vindt, dan maak je zelf een veld bij, dat dienst doet als primaire sleutel = surrogaatsleutel KlantIDNaamVoornaamSaldo 0001JanPeters5 000 BEF 0002CarolinePeters4 000 BEF 0003JanKippers2 500 BEF 0004PieterMaes5 000 BEF 3. Het normalisatieproces – STAP 0 – 0NF

11 Geef voorbeeld van een unieke sleutel die door volgende organisaties of instellingen wordt gebruikt om de klant, het lid, … te identificeren Financiële instellingNummer bankkaart JeugdbewegingLidnummer MutualiteitNummer SIS-kaart 3. Het normalisatieproces – STAP 0 – 0NF – een oefening

12 3. Het normalisatieproces – STAP1 – 1NF Verwijder REPETERENDE GROEPEN (niet atomaire gegevens)

13 3. Het normalisatieproces – STAP1 – 1NF tblpersoneel Tblgesproken_talen

14 tblpersoneel Tblgesproken_talen 3. Het normalisatieproces – STAP1 – 1NF Relaties worden aangegeven door de primaire sleutel in de ene tabel te herhalen in de andere tabel Notatie: Lijn tussen de twee tabellen Een tussendoortje: Hoe worden relaties aangegeven in een relationele omgeving?

15 personeelsnummer adresgegevens uurloon projecten (projectnr, projectnaam) 3. Het normalisatieproces – STAP 1 – een oefening Breng volgende gegevensgroep in 0NF, daarna in 1NF LeerlingID naam voornaam adres Afgelegde toetsen (toetsnr, vak, datum) Breng volgende gegevensgroep in 0NF, daarna in 1NF

16 1.Maak een aparte tabel van de gegevens uit de repeterende groep 2.Verwijder repeterende groep uit oude groep 3.Voeg hieraan de sleutel van de oude groep toe 4.Herhaal deze stappen tot er geen repeterende groep meer is 3. Het normalisatieproces – STAP1 – 1NF

17 3. Het normalisatieproces – STAP2 – 2NF LeerlingIDToetsIDNaamVoornaamPunten 1SO1AyazGürol8 2SO1BosJoachim9 1SO2AyazGürol7 2SO2BosJoachim6 1SO3AyazGürol5 2SO3BosJoachim5 Leerling IDNaamVoornaam 1AyazGurol 2BosJoachim Als je de LeerlingID kent, dan ken je meteen ook de naam en voornaam van de lln -> redundantie LeerlingIDToetsIDPunten 1SO SO SO35 2 5

18 Elk veld moet FUNCTIONEEL AFHANKELIJK zijn van de VOLLEDIGE primaire sleutel Vermijd PARTIËLE functionele afhankelijkheid, m.a.w. vermijd dat een veld functioneel afhankelijk is van een deel van de sleutel 3. Het normalisatieproces – STAP2 – 2NF LeerlingID ToetsID Naam leerling Voornaam leerling Punten Gegeven de leerlingID -> je kan in de databank de naam en voornaam opzoeken LeerlingID ToetsID Punten LeerlingID Naam leerling Voornaam leerling Naam en voornaam zijn functioneel afhankelijk van een deel van de sleutel of partieel functioneel afhankelijk van de sleutel

19 Lidnummer Naamkind SportclubID Naam Sportclub Gemeente 3. Het normalisatieproces – STAP 2 – een oefening Breng volgende gegevensgroep in 2NF

20 1.Duid de attributen aan die functioneel afhangen van een deel van de primaire sleutel (min. 2 sleutelvelden nodig) (partiële fucntionele afhankelijkheid) 2.Maak nieuwe groep met: deel primaire sleutel waarvan partieel functioneel afhankelijke attributen afhangen 3.Verwijder attributen uit oude groep 3. Het normalisatieproces – STAP2 – 2NF

21 BoekcodeCategoriecodeCategorieOmsTitelAuteurVerkprijs BK1276K36Kinderen 3-6 jaarSamson op reis595 VW0058K03Kinderen 0-3 jaarDieren kijken99 HJ1000K36Kinderen 3-6 jaarSamson is ziek595 ……………… BoekcodeCategoriecodeTitelAuteurVerkprijs BK1276K36Samson op reis595 VW0058K03Dieren kijken99 HJ1000K36Samson is ziek595 …………… CategoriecodeCategorieOms K36Kinderen 3-6 jaar K03Kinderen 0-3 jaar K36Kinderen 3-6 jaar …… 3. Het normalisatieproces – STAP3 – 3NF Verwijder de TRANSITIEVE FUNCTIONELE AFHANKELIJKHEID: veld is functioneel afhankelijk van een ander veld dat NIET hoort bij de primaire sleutel

22 1.Duid de attributen aan die functioneel afhangen van een ander attribuut (niet horend tot primaire sleutel) 2.Maak een nieuwe groep met het attribuut waarvan overige attributen afhangen (dit wordt primaire sleutel in nieuwe tabel en de aangeduide attributen) 3.Verwijder attributen uit oude groep 3. Het normalisatieproces – STAP3 – 3NF

23 Naam Voornaam Adresgegevens (Straat, Postcode, Woonplaats) Datum indiensttreding Afdeling Brutoloon Kinderinfo (naam kind, geboortedatum) 3. Het normalisatieproces – STAP 3 – een oefening Breng volgende gegevensgroep in 3NF

24 Je hebt een stal met succesvolle paarden en je wil volgende gegevens plaatsen in een databank. Naam Geboortedatum Jongen (Naam, Geboortedatum) Wedstrijden (Naam, Plaats, Berijder, Prestatie) 3. Het normalisatieproces – STAP 3 – een extra oefening Breng volgende gegevensgroep in 3NF

25 personeelsnummer adresgegevens uurloon projecten (projectnr, projectnaam, klantnaam, werkduur) Oefening 1: Breng onderstaande tabel in 2NF

26 paardnummer naam geboortedatum jongen (naam, geboortedatum) wedstrijden (naam, plaats, berijder, prestatie) Oefening 2: Breng onderstaande tabel in 2NF


Download ppt "5 I N F O R M A T I C A B E H E E R Vrij Technisch Instituut - Hasselt Relationele Databases Hst 3 : Normaliseren."

Verwante presentaties


Ads door Google