Relationele Databases

Slides:



Advertisements
Verwante presentaties
Les 2 klassediagrammen II
Advertisements

SQL deel 2: datamodel ontwerp
Module 7 – Hoofdstuk 5 (1) SQL – een begin.
Normaliseren Inleiding.
Meerdere tabellen: Relaties en Joins
Functionele opleiding strategische analyse - Module
Kennismaking MS Access. Wat is een databank ? = Een gestructureerde verzameling van gegevens bestaat uit één of meer tabellen.
Relationele databases en
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 1.
Databases Informatica Ga verder met een muisklik. SQL FCO DBMS NE FA
Entiteit-Relatie Model
Databank van een restaurant Download op Twee tabellen: Klanten: Alle klanten die minstens.
Datamodellering en –verwerking 8C020 college 3
Het selecteren van data uit meerdere gekoppelde tabellen
Van Nul naar Drie Normaliseren.
Relationele Databases
Normaliseren Datamodellering 2006.
Databases.
Databases I Van EER naar relationeel
Opleiding AI cursus Databases
Base: bewerkingen 2 soorten - Oplopend- Aflopend.
LauwersCollege Buitenpost Informatica
Schoolgegevens nakijken en bezette plaatsen invoeren Surf naar Log in via het blokje ‘bestaande.
LauwersCollege Buitenpost Informatica
Computervaardigheden en Programmatie Universiteit AntwerpenDatabank - Gevorderden 5.1 Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische.
Databanken by Steven Stinis.
Hoofdstuk 12: Oefeningen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Normalisatie Relationeel databaseontwerp:
Opleiding Kunstmatige Intelligentie cursus Databases voor AI
Vrij Technisch Instituut - Hasselt
SQL (structured Query Language) DDL (Data Definition Language) DML (Data Manipulation Language) Ontwerp databaseBevraag database.
Fundament Informatica
Hoofdstuk 3 Databaseontwikkeling 4 Access.  Uitgangspunt is altijd de informatiebehoefte van de klant  Deze wordt vaak bepaald door rapporten, formulieren.
Workshop PHP Een productencatalogus Met database.
Overdracht Patiënt (v 1.0)
Databases.
Relationele Databases Hoofdstuk 10 Deel 2 Blz.: 90 t/m 95.
Exposantentool Handleiding. Stap 1: Start ! Ga naar de link die u via ontving van Sylvie Buydaert. Login met uw: Gebruikersnaam Wachtwoord.
LauwersCollege Buitenpost Informatica
Computervaardigheden Hoofdstuk 4 — Databank (Basis)
7 Databases. STRUCTURED QUERY LANGUAGE Bij het relationele model hoort een programmeertaal waarmee de database benaderd kan worden. In de praktijk wordt.
24/04/2015IT-Assurance1 IT-Assurance deeltijd 4. Inleiding SQL Introductie in de basisfuncties Bijbehorend lesmateriaal: -AIV-boek van Derksen en Crins.
Hoofdstuk 11 Databasemanagementsystem. hoofdstuk 112 STROKENDIAGRAMMEN llnrvoornaamtussenvachternaamstraathuisnummerpostcodeplaatstelefoongeslachtgebdatumklas.
Herhalingscombinaties
Tabel Record veld. Databank = een geordende verzameling van bij elkaar horende gegevens.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
Analyse 3 INFANL01-3 week 2 CMI Informatica.
ANALYSE 3 INFANL01-3 WEEK 8 CMI Informatica. ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Herhaling ▸ Normaliseerregels ▸ Omzetten ERD ▸ Group by en SET ▸ Proeftentamen.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
EERDER….. Tabellen rij (record, tuple, occurence) kolom (attribuut, veld) tabel (relatie) tabelstructuur : patient(PAT#,PNAAM,LEEFTIJD,GESLACHT,ARTS)
Databases.
– Software development fundamentals
Entiteiten bedrijfsvoering (Extra)
Informatica-Actief Thema: Databases en informatiemodellering
LauwersCollege Buitenpost Informatica
Normaliseren.
Databases.
Kan je zelf een geschikte schaalverdeling maken
Kan je zelf een geschikte schaalverdeling maken
SQL Les 3 17 February 2019.
SQL Les 3 23 February 2019.
SQL Les 1 5 April 2019.
SQL en Datanormalisatie
SQL Les 4 12 May 2019.
– Software development fundamentals
Meetkunde Verzamelingen Klas 8.
Databases SQL.
Hoofdstuk 20 Grafieken en tabellen. Hoofdstuk 20 Grafieken en tabellen.
Transcript van de presentatie:

Relationele Databases Hst 3 : Normaliseren Vrij Technisch Instituut - Hasselt

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)

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

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!

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

2. Kan om het even welke tabel in een relationele DB worden opgenomen? type kleur levertermijn kostprijs kast zwart wit bruin 6 weken 24 000 BEF salontafel beige 4 weken 2 weken 15 000 BEF stoel geel 1 week 4 500 BEF tafel paars rood 5 weken 10 700 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

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.

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

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 063-1112345-45 Pieters Alex Pietelbeek 12/02/1980 063-1234567-89 Buvens Hiron Burchtstraat 18/02/1975 063-5689784-65 Germain Kris Schouwburgstraat 26/03/1966

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

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

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

3. Het normalisatieproces – STAP1 – 1NF tblpersoneel Tblgesproken_talen

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

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)

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

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

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

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

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

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 …

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

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)

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)

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

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