Skip to main content

Relaties en Keys

Je hebt eerder iets met keys gedaan, maar hoe zit dat nu precies met keys?

Ook ga je nu naar relaties kijken.

Let op key = sleutel, dit wordt in de IT-wereld door elkaar gebruikt.

Bekijk de video: https://web.microsoftstream.com/video/c4c62660-1c4f-4c89-b09b-948cf7559c86

In de video worden twee zaken uitgelegd. De relaties tussen de entiteiten en de keys.

Relaties

Een RDBMS is een relational database management system, relational gaat dus over de relaties.

Een entiteit heeft een relatie als er een 'verbinding' is. In de video wordt dit uitgelegd met voorbeelden.

Ken je de opdracht uit de vorige les nog? Daarbij had je een medewerker entiteit en een afdeling. Hier is sprake van een relatie want:

een medewerker werkt op een afdeling en een afdeling heeft 0, 1 of meer werknemers.

Je ziet aan dit voorbeeld dat een relatie altijd twee kanten uit werkt.

Keys

Keys worden in de video ook uitgelegd In de video wordt gesproken over sleutels. Er zijn twee soorten keys:

Primary Key (PK)

Elke entiteit heeft altijd precies één primary key.

Vaak wordt deze als eerst weergegeven. Een primary key moet uniek zijn. Dat betekent dat de key maar één keer mag voorkomen. Jouw studentnummer zou een primary key kunnen zijn. Jouw studentennummer komt namelijk  maar één keer voor. Als je een database ontwerpt en je weet niet zeker wat de primary key moet zijn dan kun je altijd een ID als attribuut  toevoegen. Dat is dan gewoon een oplopend nummer.

Uitleg: https://www.linkedin.com/learning/programming-foundations-databases-2/keys-and-unique-values-2?u=84048860

Foreign Key (FK)

Een relatie is altijd een relatie tussen een primary key en een foreign key. De primary key is uniek en de foreign key hoeft dat niet te zijn.

image-1632337949367.png

In het bovenstaande plaatje komt elk nummer in de medewerker entiteit maar één keer voor. Maar de FK, afdeling_id kan wel 10x voorkomen. Als er namelijk 10 medewerkers op een afdeling werken dan hebben zij allemaal hetzelfde afdelings_id. De afdelings_id verwijst dan naar de afdeling. In de afdeling komt elke afdeling meer precies één keer voor.

Voor nu kijken we alleen nog maar naar het kraaienpootje in de relatie.

Het kraaienpootje staat altijd aan de kant van de FK.

Opdracht 1

Waar staat PK voor?

  1. Proper Key
  2. Primary Key
  3. Post Key
  4. Post Kickoff

Opdracht 2

Hoe vaak kan er een FK voorkomen in een entiteit?

  1. 1 of meer
  2. precies 1
  3. 0,1 of meer
  4. 1 of meer

Opdracht 3

Hoe vaak kan er een PK voorkomen in een entiteit?

  1. 1 of meer
  2. precies 1
  3. 0,1 of meer
  4. 1 of meer

Opdracht 4

Neem onderstaande entiteiten over in Lucidchart. Zet vervolgens;

  • de juiste PK in de entiteit kind en;
  • maak de juiste relatie tussen de twee entiteiten.

image-1632339409386.png

Opdracht 5

Voor een student wil je de volgende attributen vastleggen: studentennummer, voornaam, achternaam, telefoon, klas

Van een klas wil je het volgende vastleggen: klasnummer, aantal studenten, beginjaar, mentor

Maak een ERD in Lucidchart waarin je alle attributen vastlegt. Leg de keys vast (PK en FK).

Teken de relatie en zorg ervoor dat het kraaienpootje aan de juiste kant zit.

Uitleg over relaties in en Lucidchart vind je op: https://www.lucidchart.com/pages/nl/tutorial-database-structuur-en-ontwerp#section_2

Opdracht 6

Een film heeft een relatie met een regisseur.

Een film heeft een naam, een categorie, een uitzenddatum, een leeftijdsgrens.

Een regisseur heeft een voornaam, achternaam, geboortedatum, woonplaats.

Een film wordt door 1 regisseur gemaakt, en de meeste regisseurs maken meerdere films.

  1. Maak de 2 entiteiten (met attributen) en teken de relaties.
  2. Maak de primary keys en de foreign keys

Opdracht 7

Op een festival treden bands op.

Een festival heeft een naam, locatie, startdatum, duur, genre.

Een band heeft een naam, soort muziek. In die band zitten spelers.

Een speler heeft een voornaam, achternaam en speelt één instrument.

  1. Maak de 3 entiteiten (met attributen) en teken de relaties.
  2. Maak de primary keys en de foreign keys

--