De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Relationele Databases

Verwante presentaties


Presentatie over: "Relationele Databases"— Transcript van de presentatie:

1 Relationele Databases
Hst 3 : Normaliseren Vrij Technisch Instituut - Hasselt

2 1. Van een ERD naar een relationele DB
PATIËNT entiteit naam voornaam gewicht lengte attributen tblpatiënten tabel Kolommen of velden naam voornaam gewicht lengte Jansen Jos 74 kg 1m72 Timmers Annie 62 kg 1m58 Peeters Filip 85 kg 1m82 1object van de entiteit = 1 record of rij Notatie van een tabel: tblpatiënten (naam, voornaam, gewicht, lengte)

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

4 2. Kan om het even welke tabel in een relationele DB worden opgenomen?
naam voornaam gewicht lengte Jansen Jos 74 kg 1m72 Timmers Annie 62 kg 1m58 Peeters Filip 85 kg 1m82 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 2. Kan om het even welke tabel in een relationele DB worden opgenomen?
naam voornaam gewicht lengte opmerking Jansen Jos 74 kg 1m72 12 kg zwaarder dan persoon hieronder Timmers Annie 62 kg 1m60 Flipkens Jan 78 kg 1m75 15 cm groter dan persoon hierboven Peeters Filip 85 kg 1m82 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

6 2. Kan om het even welke tabel in een relationele DB worden opgenomen?
type kleur levertermijn kostprijs kast zwart wit bruin 6 weken BEF salontafel beige 4 weken 2 weken BEF stoel geel 1 week 4 500 BEF tafel paars rood 5 weken BEF Probleem: Hoeveel geheugen moeten we reserveren voor de kolom “kleur”? Voorwaarde 3: gegevens in een kolom mogen geen “opsomming van gegevens” zijn. Elke cel bevat atomaire gegevens

7 2. Besluit: Voorwaarden waaraan een tabel moet voldoen in een relationele database
Geen twee identieke rijen in een relationele DB! Volgorde van rijen en kolommen is niet belangrijk 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 Een “rauwe” gegevensgroep
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 Een “rauwe” gegevensgroep 1NF 2NF Gegevensgroep die voldoet aan de eisen van een relationele omgeving: geen redundantie! 3NF

9 3. Het normalisatieproces – STAP 0 – 0NF
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 Bankrekening Naam Voornaam Adres Geboortedatum Pieters Alex Pietelbeek 12/02/1980 Buvens Hiron Burchtstraat 18/02/1975 Germain Kris Schouwburgstraat 26/03/1966

10 3. Het normalisatieproces – STAP 0 – 0NF
Als je geen geschikte sleutel vindt, dan maak je zelf een veld bij, dat dienst doet als primaire sleutel = surrogaatsleutel KlantID Naam Voornaam Saldo 0001 Jan Peters 5 000 BEF 0002 Caroline 4 000 BEF 0003 Kippers 2 500 BEF 0004 Pieter Maes

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

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

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

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

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

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

17 3. Het normalisatieproces – STAP2 – 2NF
LeerlingID ToetsID Naam Voornaam Punten 1 SO1 Ayaz Gürol 8 2 Bos Joachim 9 SO2 7 6 SO3 5 Als je de LeerlingID kent, dan ken je meteen ook de naam en voornaam van de lln -> redundantie LeerlingID ToetsID Punten 1 SO1 8 2 9 SO2 7 6 SO3 5 Leerling ID Naam Voornaam 1 Ayaz Gurol 2 Bos Joachim

18 3. Het normalisatieproces – STAP2 – 2NF
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 Gegeven de leerlingID -> je kan in de databank de naam en voornaam opzoeken LeerlingID ToetsID Naam leerling Voornaam leerling Punten Naam en voornaam zijn functioneel afhankelijk van een deel van de sleutel of partieel functioneel afhankelijk van de sleutel LeerlingID ToetsID Punten LeerlingID Naam leerling Voornaam leerling

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

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

21 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 Boekcode Categoriecode CategorieOms Titel Auteur Verkprijs BK1276 K36 Kinderen 3-6 jaar Samson op reis 595 VW0058 K03 Kinderen 0-3 jaar Dieren kijken 99 HJ1000 Samson is ziek Boekcode Categoriecode Titel Auteur Verkprijs BK1276 K36 Samson op reis 595 VW0058 K03 Dieren kijken 99 HJ1000 Samson is ziek Categoriecode CategorieOms K36 Kinderen 3-6 jaar K03 Kinderen 0-3 jaar

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

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

24 3. Het normalisatieproces – STAP 3 – een extra oefening
Breng volgende gegevensgroep in 3NF 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)

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

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


Download ppt "Relationele Databases"

Verwante presentaties


Ads door Google