Skip to main content

Database Design 1

Inleiding

In deze les ga je oefenen met het maken van een datamodel, dit heet een ERD.

Het ERD, het Entity Relation Diagram, is een schematische weergave van het datamodel.

Elke opgave bestaat uit een verhaaltje dit wordt ook wel een case genoemd. Lees de case goed en bepaal van welke entiteiten je gegevens wilt vastleggen. Bepaal van alle entiteiten wat je wilt vastleggen, dit zijn de attributen. Bepaal van alle attributen het datatype (integer, float, date, time, datetime of boolean). Vervolgens bepaal je de relatie tussen de entiteiten en bepaal je de primary keys en foreign keys. Dus de stappen zijn:

  1. Bepaal van welke entiteiten je gegevens wilt vastleggen in de database.
  2. Bepaal van elke entiteit welke gegevens je wilt vastleggen, dit zijn de attributen en bepaal het datatype per attribuut.
  3. Bepaal de relaties tussen de entiteiten
  4. Bepaal de PK's en FK's.

De datamodellen worden gemaakt in Lucichart, een datamodel kun je in PDF exporteren en op je eigen systeem bewaren.

Naming conventions

Het database design (het ERD) wordt in het Engels gemaakt. Entiteiten en Attributen worden via de Snake Case (in lower case) benoemd, bijvoorbeeld:

Entiteit:  user
Attribbut: user_name, user_login_count, last_login_date, password

Let ook op dat entiteiten enkelvoud zijn. Dus user en niet users, of article en niet articles.

opgave 1, ToDo App

Maak een datamodel voor een ToDo applicatie. In de Todo applicatie wil je de naam van een ToDo item kunnen vastleggen. Van elk ToDo item wil je de titel kunnen vastleggen, bijvoorbeeld "paspoort verlengen". Verder wil je van elk ToDo item vastleggen wanneer hij is aangemaakt en of hij afgerond is.

Verder wil he de ToDo items opdelen in categorieën. Bijvoorbeeld, de categorie "boodschappen", "privé" of "werk". Van elke categorie wil je vastleggen wanneer deze voor het laatst gewijzigd is.

Maak het ERD in Lucichart.

opgave 2, Restaurant en Corona

In verband met Corona wil het restaurant de "Pittige Stake", een applicatie waarin ze kunnen vastleggen welke klanten bij elkaar aan de tafel hebben gezeten. Op die manier kunnen ze als iemand positief op Corona is getest, bepalen bij wie deze persoon aan tafel heeft gezeten en kunnen deze tafelgenoten worden gevraagd om zich ook te laten testen.

Van elke klant dient de voor- en achternaam en zijn telefoonnummer te worden vastgelegd. Verder moet er worden vastgelegd aan welke tafel de persoon zat en wanneer dit was (datum en tijd). De tafels in het restaurant zijn genummerd van 1 t/m 6 en alleen gasten aan dezelfde tafel dienen te worden gewaarschuwd als een tafelgenoot positief wordt getest op Corona.

Maak het ERD in Lucichart.

opgave 3, Covid-19 test

Het RIVM wil een eenvoudige database waarin ze kunnen zien welke persoon wanneer is getest en wat de uitslag was (positief of negatief). Van alle geteste hoeft alleen de voor- en achternaam en het e-mailadres te worden vastgelegd.

Het RIVM wil ook graag weten of de geteste persoon de Corona app heeft geactiveerd. Als dat zo is dan kunnen ze namelijk via de app andere mensen op de hoogte stellen als zij langere tijd bij een positief getest persoon in de buurt zijn geweest.

Maak het ERD in Lucichart.

opgave 4

 

opgave 5