DB Ontwerp, 3 opgaven
Opgave 1
De secretaris van een voetbalclub wil aan het begin van het seizoen de teamindeling in het clubblad publiceren volgens het voorbeeld hieronder.
Ook wil hij een overzicht publiceren met per team de trainingsavond en -tijden, de trainer en de coach.
Voor de verzending van het clubblad heeft hij adresstickers van alle spelers nodig.
Een speler kan slechts in één team meespelen.
Ontwerp het datamodel Maak 1,2 en 3 met pen en papier.
- Welke entiteiten (personen, dingen gebeurtenissen) kun je onderscheiden? Teken een ERD met deze objecten (=entiteiten) en de relaties daartussen.
- Noteer per entiteit (=tabel) de attributen (=velden) die nodig zijn om de informatie zoals hierboven beschreven staat, te kunnen leveren.
- Bedenk per tabel wat je als sleutelveld kiest en in welke tabellen je een Foreign Key opneemt.
- Maak het uiteindelijke datamodel in Workbench
Opgave 2
Afdeling personeelsadministratie van een ziekenhuis registreert in een dossier per medewerker welke training hij/zij heeft gevolgd. Tijdens het jaarlijkse functioneringsgesprek wordt deze informatie gebruikt om te bespreken of de kennis van de medewerker op peil is en welke trainingen deze medewerker het komende jaar moet volgen. Welke trainingen verplicht zijn, is afhankelijk van de functie van de medewerker. Er worden verschillende soorten trainingen aangeboden voor verschillende functies. De volgende tabellen worden hiervoor gebruikt:
MEDEWERKER (MedNummer, MedNaam, MedGeboortedatum, FunctieCode, DatumInDienst)
TRAININGSOORT (TrCode, TrainingOmschrijving, Doelgroep, StudieBelastingUren)
TRAINING (TrainingID, TrCode, docent, startdatum, AantalWeken, Aanvang, Eindtijd, Locatie)
DEELNAME (MedNummer, TrainingID, startdatum, resultaat)
FUNCTIE (FunctieCode, FunctieOmschrijving, MaxSalaris, StartSalaris)
- Onderstreep de Primary Keys
- Zet een sterretje bij de Foreign Keys*
- Teken een ERD met tabelnamen (geen velden) en de relaties tussen de tabellen. Toon in de relaties de één en véél kant met kraaienpootjes.
Opgave 3
Een database bestaat uit tabellen die aan een aantal voorwaarden moeten voldoen. Hieronder staan een aantal tabelontwerpen. (Deze tabellen hebben niets met elkaar te maken.)
- Wat is er fout aan de volgende tabellen?
- Onderstreep in iedere tabel het sleutelveld.
- LEERLING (voornaam, tussenv, achternaam, leerlingnummer, leeftijd, adres, postcode, woonplaats)
- BESTELLING(bestelnummer, besteldatum, klantnr, product1, aantal1, product2, aantal2, product3, aantal3)
- CONTRIBUTIE_BETALING(lidno, achternaam, bankrekening, datum_betaling, bedrag)
- PRODUCT(productnummer, prijs, voorraad, leveranciersnaam, leverancierstelefoonnummer)