Extra Opgave DB1
Opgave 1A - Student
Maak in Lucidchart de entiteit student. Een student heeft een studentnummer, voornaam, achternaam, adres, huisnummer, postcode, woonplaats en geboortedatum. Het studentennummer is de primary key en de tabel heeft geen foreign key.
Opgave 1B - Leerling
Ontwerp in een diagramtool zoals Lucidchart de entiteit 'leerling'. Deze entiteit bevat de volgende attributen: leerlingnummer, voornaam, achternaam, straatnaam, huisnummer, postcode, stad en geboortedatum. Het leerlingnummer dient als de primaire sleutel. Er zijn geen vreemde sleutels aanwezig in deze tabel.
Opgave 2A - naschoolse activiteiten
In een database worden leerlingen geregistreerd die op de inschrijflijst staan voor naschoolse activiteiten.
Een inschrijflijst kan dus gegevens van meerdere leerlingen bevatten, maar een leerling kan niet op meerdere inschrijflijsten tegelijk staan.
- Voeg het attribuut (PK) toe achter het juiste kenmerk in de entiteit 'leerling';
- Maak de correcte relatie tussen de twee entiteiten. Plaats het 'vorkje' aan de zijde met 'veel' (many) om aan te geven waar meerdere instanties mogelijk zijn.
- De relatie koppelt de PK aan een FK. Identificeer welke FK noodzakelijk is en plaats (FK) achter de juiste FK in de entiteit die verwijst naar 'leerling'.
Opgave 2B - medische behandeling
In de database worden patiënten geregistreerd die op de wachtlijst staan voor een specifieke medische behandeling.
Elke wachtlijst bevat gegevens van meerdere patiënten, maar een patiënt kan zich niet voor dezelfde behandeling op meerdere wachtlijsten bevinden.
- Plaats de aanduiding (PK) achter het juiste kenmerk in de entiteit 'patiënt';
- Teken de correcte associatie tussen de twee entiteiten. Positioneer het 'vele' einde van de relatie (aangeduid met een 'vorkje') bij de entiteit die meerdere instanties kan bevatten.
- De relatie linkt de PK aan een FK. Bepaal welke FK vereist is en voeg (FK) achter het juiste kenmerk in de entiteit die verwijst naar 'patiënt'.
Opgave 3A - auteurs
In een database die de samenwerking tussen auteurs en hun gepubliceerde werken vastlegt, wordt elke publicatie toegeschreven aan één hoofdauteur. Deze situatie gaat over hoe auteurs en hun werken aan elkaar gekoppeld zijn.
We identificeren de volgende entiteiten:
- Een werk.
- Een werk heeft een titel, een genre, een publicatiedatum, en een doelgroep leeftijdscategorie.
- Een auteur.
- Een auteur heeft een voornaam, achternaam, geboortedatum, en woonplaats.
Elk werk wordt door één auteur geschreven, terwijl de meeste auteurs aan meerdere werken bijdragen. De relatie tussen auteur en werk is dus 1:N (één op veel).
Houd rekening met de regel: Harkje = Meer = FK (Vreemde Sleutel)
Opdracht:
- Creëer de 2 entiteiten (met sleutels, attributen en datatypen) en
- teken de relatie tussen de twee entiteiten.
- Specificeer alle datatypen.
- Definieer de primaire sleutels en de vreemde sleutels.
Maak het Entiteit-Relatiediagram (ERD) in Lucidchart en lever een schermafbeelding van het ERD in.
Opgave 3B - Muziekevenementen
In een database die de organisatie van muziekevenementen documenteert, wordt elke evenement geleid door één hoofdorganisator. Deze opzet richt zich op de relatie tussen organisatoren en de evenementen die zij beheren.
We definiëren de volgende entiteiten:
- Een evenement.
- Een evenement heeft een naam, een genre, een datum, en een minimale leeftijd voor toegang.
- Een organisator.
- Een organisator heeft een voornaam, achternaam, geboortedatum, en adres.
Elk evenement wordt door één organisator georganiseerd, terwijl veel organisatoren verantwoordelijk kunnen zijn voor meerdere evenementen. De relatie tussen organisator en evenement is dus 1:N (één op veel).
Houd in gedachten: Harkje = Meer = FK (Foreign Key)
Opdracht:
- Stel de 2 entiteiten samen (inclusief sleutels, attributen en datatypes) en
- Schets de relatie tussen de twee entiteiten.
- Bepaal alle datatypes.
- Identificeer de primaire sleutels en de vreemde sleutels.
Ontwerp het Entiteit-Relatiediagram (ERD) in een tool zoals Lucidchart en lever een screenshot van het ERD in.
Opgave 4A - Tuincentrum
Een tuincentrum wil bijhouden van welke klant een plantenbestelling is. Eén klant kan meerdere bestellingen plaatsen. Het omgekeerde is niet mogelijk; één bestelling kan niet bij meerdere klanten horen.
In het scenario hieronder zijn de entiteiten vetgedrukt en de attributen cursief.
Van de bestelling wil je de volgende attributen vastleggen: bestelnummer, besteldatum, totaalprijs.
Van de klant wil je de volgende gegevens registreren: voornaam, achternaam, telefoonnummer, e-mailadres, woonadres.
Daarnaast wil het tuincentrum bijhouden welke producten er in elke bestelling zitten. Een bestelling kan meerdere producten bevatten en één product kan in meerdere bestellingen voorkomen.
Van een product wil het tuincentrum de volgende informatie vastleggen: productnaam, prijs per stuk, voorraad, type plant.
Opdracht:
- Creëer de 3 entiteiten (bestelling, klant en product met alle attributen).
- Duid aan wat de primaire sleutels zijn.
- Illustrateer de relatie tussen klant en bestelling en duid aan wat de vreemde sleutel is.
- Teken de relatie tussen bestelling en product en geef aan wat de vreemde sleutel is.
Zorg dat de 'harkjes' van de relaties correct zijn gepositioneerd om de 'veel' zijden aan te geven.
Opgave 4B - Autodealer
Een autodealer wil bijhouden van wie een bepaald voertuig is. Een klant kan eigenaar zijn van meerdere voertuigen, maar een voertuig kan niet meerdere eigenaren hebben.
In het verhaal hieronder zijn de entiteiten met onderstreping aangeduid en de attributen in cursief.
Van het voertuig wil je de volgende attributen vastleggen: kenteken, merk, model, kleur.
Van de klant wil je de volgende gegevens registreren: klantnummer, voornaam, achternaam, telefoonnummer, adres, stad.
Verder wil de autodealer bijhouden welke onderhoudsbeurten aan een voertuig zijn uitgevoerd. Elk voertuig kan meerdere onderhoudsbeurten hebben ondergaan, en elke onderhoudsbeurt heeft betrekking op slechts één voertuig.
Van een onderhoudsbeurt wil de autodealer de volgende informatie registreren: datum van onderhoud, aantal gewerkte uren, kosten, en een indicatie of de rekening is voldaan en of het voertuig al is opgehaald.
Tip: de indicatie kan worden vastgelegd als een integer (1=ja en 0=nee).
Opdracht:
Zorg dat de 'harkjes' van de relaties aan de juiste zijde staan om de 'veel' zijden aan te duiden.
Opgave 5a - Boekhandel
Een boekhandel wil bijhouden welke klant welk boek heeft gekocht. Een klant kan meerdere boeken kopen, maar elk boek wordt als een uniek exemplaar beschouwd en kan dus slechts één eigenaar hebben op een bepaald moment.
In het scenario hieronder zijn de entiteiten dikgedrukt en de attributen cursief.
Van het boek wil je de volgende attributen vastleggen: ISBN, titel, auteur, genre, prijs.
Van de klant wil je de volgende gegevens registreren: klant-ID, voornaam, achternaam, e-mailadres, telefoonnummer.
Daarnaast wil de boekhandel bijhouden welke bestellingen er zijn geplaatst. Een bestelling kan meerdere boeken bevatten, en elk boek kan in verschillende bestellingen voorkomen (als unieke exemplaren).
Van een bestelling wil de boekhandel de volgende informatie vastleggen: bestelnummer, besteldatum, totaalbedrag.
Ten slotte wil de boekhandel de voorraadstatus van elk boek bijhouden. Voor elk boek in de voorraad wil de boekhandel weten: voorraad-ID, ISBN (van het boek), huidige voorraad, minimale voorraad.
Opdracht:
Zorg dat de 'harkjes' van de relaties correct zijn gepositioneerd om de 'veel' zijden aan te duiden, waarbij rekening wordt gehouden met de unieke en meervoudige relaties tussen de entiteiten.
Opgave 6B - Sportvereniging
Een sportvereniging wil bijhouden welk lid aan welke sport deelneemt. Een lid kan aan meerdere sporten deelnemen, maar binnen één sportdiscipline wordt elk lid uniek geïdentificeerd.
In het verhaal hieronder zijn de entiteiten vetgedrukt en de attributen cursief.
Van de sport wil je de volgende attributen vastleggen: sport-ID, naam, soort, locatie, trainingsdagen.
Van het lid wil je de volgende gegevens registreren: lidnummer, voornaam, achternaam, geboortedatum, e-mailadres, telefoonnummer.
Daarnaast wil de sportvereniging bijhouden welke evenementen er georganiseerd worden. Een evenement kan meerdere sporten omvatten, en aan elke sport kunnen meerdere evenementen gekoppeld zijn.
Van een evenement wil de sportvereniging de volgende informatie vastleggen: evenement-ID, evenementnaam, datum, locatie, beschrijving.
Ten slotte wil de sportvereniging de deelname van leden aan evenementen bijhouden. Voor elke deelname willen ze weten: deelname-ID, lidnummer (van het deelnemende lid), evenement-ID (van het evenement), deelnamerol, resultaten.
Opdracht:
Zorg ervoor dat de 'harkjes' van de relaties correct zijn gepositioneerd om de 'veel' zijden aan te duiden, en houd rekening met zowel de unieke als de meervoudige relaties tussen de entiteiten.
--