# Databases voor AO

Database lessen voor eerste jaars AO leerlingen

# Week 1 Les 1: Databases - Introductie, RDBMS, Database, Tables, Keys en Entity Relationship Diagrams

### Introductie databases

Stel dat we een online games &amp; music webwinkel hebben, waar voor iedere bestelling data wordt opgeslagen van de persoon die in de webwinkel shopt. Voorbeelden van deze data zijn bijvoorbeeld *naam*, *adres*, *telefoonnummer* en *credit card* gegevens.  
  
De meeste mensen zouden de data van shopper in een tabel bijhouden, bijvoorbeeld in Excel. Dat zou er ongeveer zo uit zien:

<table border="1" id="bkmrk-naam-product-aantal-" style="border-collapse: collapse; width: 100%; height: 74px;"><tbody><tr style="height: 29px;"><td style="width: 15.8025%; height: 29px;">**Name**</td><td style="width: 22.9629%; height: 29px;">**Product**</td><td style="width: 9.87654%; height: 29px;">**Quantity**</td><td style="width: 10.7408%; height: 29px;">**Date**</td><td style="width: 20.9877%; height: 29px;">**Address**</td><td style="width: 19.6296%;">**Phone**</td></tr><tr style="height: 45px;"><td style="width: 15.8025%; height: 45px;">John Doe</td><td style="width: 22.9629%; height: 45px;">Call of Duty - Black OPS</td><td style="width: 9.87654%; height: 45px;">1</td><td style="width: 10.7408%; height: 45px;">1/2/2020</td><td style="width: 20.9877%; height: 45px;">Sesamstraat 123</td><td style="width: 19.6296%;">0612345678</td></tr></tbody></table>

*Tabel 1: Overzicht order van de klant "John Doe".*

<p class="callout warning">**Lesopdracht 1:** Tabellen bestaan uit rijen en kolommen. Leg in je eigen woorden uit wat een rij en een kolom is.</p>

<p class="callout warning">**Lesopdracht 2:** Tabel 1 geeft het overzicht weer van de order van klant John Doe. Noem de namen van de kolommen van Tabel 1?</p>

Stel dat we een nieuwe order hebben van John Doe:

<table border="1" id="bkmrk-naam-product-aantal--0" style="border-collapse: collapse; width: 100%; height: 103px;"><tbody><tr style="height: 29px;"><td style="width: 15.679%; height: 29px;">**Name**</td><td style="width: 23.8272%; height: 29px;">**Product**</td><td style="width: 9.75309%; height: 29px;">**Quantity**</td><td style="width: 11.358%; height: 29px;">**Date**</td><td style="width: 19.6913%; height: 29px;">**Address**</td><td style="width: 19.6913%;">**Phone**</td></tr><tr style="height: 45px;"><td style="width: 15.679%; height: 45px;">John Doe</td><td style="width: 23.8272%; height: 45px;">Call of Duty - Black OPS</td><td style="width: 9.75309%; height: 45px;">1</td><td style="width: 11.358%; height: 45px;">1/11/2019</td><td style="width: 19.6913%; height: 45px;">Sesamstraat 123</td><td style="width: 19.6913%;">0612345678</td></tr><tr style="height: 29px;"><td style="width: 15.679%; height: 29px;">John Doe</td><td style="width: 23.8272%; height: 29px;">Fifa 20</td><td style="width: 9.75309%; height: 29px;">3</td><td style="width: 11.358%; height: 29px;">7/12/2019</td><td style="width: 19.6913%; height: 29px;">Bijlmerplein 321</td><td style="width: 19.6913%;">0621436587</td></tr></tbody></table>

*Tabel 2: Overzicht alle orders van de klant "John Doe".*

Tabel 2 toont het overzicht van de geplaatste orders van klant "John Doe". Er zijn twee "problemen" die zich voordoen wanneer we data op deze manier opslaan, namelijk:

- Het is onduidelijk of beide John Doe's dezelfde persoon zijn
- Er zijn twee (afwijkende) adressen als John Doe dezelfde persoon is.

<p class="callout warning">**Lesopdracht 3:** Tabel 2 toont het overzicht van de geplaatste orders van klant "John Doe". Hierboven staan twee problemen. Leg uit wat een mogelijke oplossing zou kunnen zijn.</p>

### Data opslaan in een database

Om te voorkomen dat de data onvolledig of in meervoud is, kunnen we de data uit Tabel 2 opslaan in verschillende tabellen in de database **\[B2\]**. Hiervoor zouden we 3 tabellen kunnen maken, namelijk:

1. Customers (klanten)
2. Products (producten)
3. Orders (bestellingen)

De volgende tabellen splitsen de data uit Tabel 2 op in individuele tabellen.

#### Customers

<table border="1" id="bkmrk-customer_id-name-add" style="border-collapse: collapse; width: 0%;"><tbody><tr><td style="width: 25%;">Customer\_id</td><td style="width: 25%;">Name</td><td style="width: 25%;">Address</td><td style="width: 25%;">Phone</td></tr><tr><td style="width: 25%;">1</td><td style="width: 25%;">John Doe</td><td style="width: 25%;">Bijlmerplein 321</td><td style="width: 25%;">0621436587</td></tr><tr><td style="width: 25%;">2</td><td style="width: 25%;">Mary Jane</td><td style="width: 25%;">Elmstreet 15</td><td style="width: 25%;">0632658712</td></tr></tbody></table>

*Tabel 3: Tabel Customer*

#### Product

<table border="1" id="bkmrk-product_id-product-q" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 20%;">Product\_id</td><td style="width: 20.9877%;">Product</td><td style="width: 19.0123%;">Quantity (stock)</td><td style="width: 20%;">Price</td><td style="width: 20%;">Type</td></tr><tr><td style="width: 20%;">1</td><td style="width: 20.9877%;">Call of Duty - Black Ops</td><td style="width: 19.0123%;">10</td><td style="width: 20%;">€3</td><td style="width: 20%;">Game</td></tr><tr><td style="width: 20%;">2</td><td style="width: 20.9877%;">Fifa 20</td><td style="width: 19.0123%;">30</td><td style="width: 20%;">€33</td><td style="width: 20%;">Game</td></tr><tr><td style="width: 20%;">3</td><td style="width: 20.9877%;">Una matina - Ludovico</td><td style="width: 19.0123%;">11</td><td style="width: 20%;">€50</td><td style="width: 20%;">Music</td></tr></tbody></table>

*Tabel 4: Tabel Product*

#### Orders

<table border="1" id="bkmrk-order_id-date-custom" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 20%;">Order\_id</td><td style="width: 11.2346%;">Date</td><td style="width: 14.6913%;">Customer\_id</td><td style="width: 20.9877%;">Shipping\_address</td><td style="width: 23.0864%;">Product\_id</td><td style="width: 10%;">Quantity (ordered)</td></tr><tr><td style="width: 20%;">1</td><td style="width: 11.2346%;">1/2/2020</td><td style="width: 14.6913%;">1</td><td style="width: 20.9877%;">Bijlmerplein 321</td><td style="width: 23.0864%;">1</td><td style="width: 10%;">1</td></tr><tr><td style="width: 20%;">2</td><td style="width: 11.2346%;">3/12/2019</td><td style="width: 14.6913%;">1</td><td style="width: 20.9877%;">Bijlmerplein 321</td><td style="width: 23.0864%;">2</td><td style="width: 10%;">3</td></tr><tr><td style="width: 20%;">3</td><td style="width: 11.2346%;">16/12/2019</td><td style="width: 14.6913%;">2</td><td style="width: 20.9877%;">Elmstreet 15</td><td style="width: 23.0864%;">3</td><td style="width: 10%;">1</td></tr></tbody></table>

*Tabel 5: Tabel Order*

Een database management systeem (DBMS) is een programma waarmee een of meer computer-gebruikers toegang tot de gegevens in een database kunnen creëren. Hoewel een DBMS handig is om data op te vragen, bewerken en/of te verwijderen, is het geen handige tool om tabellen en connecties te visualiseren. Een DBMS maakt het lastig, maar niet onmogelijk, om connecties tussen tabellen te achterhalen en mogelijke verbeterpunt te vinden.

De meest gebruikte vorm van een DBMS is een Relationeel Database Management Systeem. Deze zullen wij tijdens de databases lessen leren gebruiken.

### Relationeel Database Management Systeem (RDBMS)

Een Relationeel Database Management Systeem (RDBMS) is een systeem die het mogelijk maakt om een relationele database **\[B1\]** op te slaan, data op te vragen en eventueel te wijzigen.

Een RDBMS bestaan de uit volgende (hoofd)onderdelen:

1. Databases
2. Tables
3. Columns
4. Rows

<p class="callout info">Bovengenoemde onderdelen zijn terug te vinden in de begrippenlijst: \[B2\] - \[B5\].</p>

Voorbeelden van RDBMS zijn:

- MySQL
- MariaDB
- Oracle
- Microsoft SQL Server
- SQLite
- PostgreSQL

Net als de DBMS, is het ook met een RDBMS lastig om connecties tussen tabellen te achterhalen. Een manier die het wél makkelijker maakt om de connecties - en eventuele verbeterpunten - te achterhalen is een Entiteit-Relatiediagram (ERD) **\[B6\]**.

### Entiteit-Relatiediagram

Een entiteit-relatiediagram (ER-diagram) toont een visuele weergave van entiteiten, relaties en regels. Met andere woorden, een ER-diagram toont hoe "entiteiten" zoals mensen, voorwerpen of concepten binnen een systeem met elkaar verbonden zijn (database structuur).

#### Entiteiten en attributen

Een definieerbaar ding. Voorbeelden zijn een persoon, klant, student of product. Wanneer er over een entiteit (entity) wordt gesproken, wordt er in het ER-diagram verwezen naar een tabel.

Binnen een ER-diagram, kunnen we Tabel 2 als volgt tekenen:

<div drawio-diagram="185"><img src="http://roc.ovh/uploads/images/drawio/2020-02/Drawing-Nilu-1580691332.png" alt=""/></div>

*Figuur 1: Simpel ER-diagram zonder kardinaliteit*

De kolommen binnen een entiteit worden ook wel *Attributes* genoemd. De entiteit "Customer" heeft de attributen Customer\_id, Name, Address en Phone.

#### Relatie-lijnen

Een ER-diagram bevat ook relaties tussen entiteiten. De lijnen die dezelfde attributen verbinden worden de relatie-lijnen (relationship-lines) genoemd. De lijnen die de entiteiten hier verbinden zijn bijzonder, want deze lijnen vormen een brug tussen primary - en foreign keys.

<p class="callout info">Een primary key (PK) is een ID-kolom met een unieke waarde binnen een tabel. Dit betekend dat dezelfde ID nooit dubbel voor kan/mag komen. Deze kolom gebruikt de setting AUTO\_INCREMENT en is verplicht.  
  
De foreign key (FK) is een kolom binnen een tabel, die ook bestaan binnen een ander tabel. De FK "verwijst" als het ware naar de PK-kolom</p>

<p class="callout warning">**Lesopdracht 4:** Neem Figuur 1 als voorbeeld. Welke tabellen bevatten een primary key en welke een foreign key?</p>

<p class="callout warning">**Lesopdracht 5:** Neem Figuur 1 als voorbeeld. Welke kolommen zijn een primary key en welke een foreign key?  
  
Hint: Beschrijf welk tabel een primary key heeft en welke een foreign key.</p>

### ERD Kardinaliteit

Entiteit Relatie Diagram Kardinaliteit - Entity Relationship Diagram Cardinality - geef binnen een relatie aan hoeveel van de hoeveelheid van de ene tabel ten opzichte van de hoeveelheid van de andere tabel. Er zijn 3 vormen van relaties:

- 1-op-1
- 1-op-veel
- veel-op-veel

<p class="callout warning">**Huiswerk 1:** Zoek voor ieder van de bovenstaande relaties uit wat ze betekenen en leg ze uit aan de hand van een simpel voorbeeld.</p>

<div drawio-diagram="186"><img src="http://roc.ovh/uploads/images/drawio/2020-02/Drawing-Nilu-1580693177.png" alt=""/></div>

<p class="callout warning">**Huiswerk 2:** Zoek voor ieder van de bovenstaande lijnen uit wat de kardinaliteit betekend en leg uit welke notatiestijl hier gebruikt is.</p>

<p class="callout warning">**Huiswerk 3:** Benoem drie andere notatiestijlen voor kardinaliteit.</p>

### Lesopdrachten en huiswerk

<p class="callout info">De deadline voor de bovenstaande lesopdrachten en het huiswerk is iedere maandag vóór 12:00 uur 's middags. Deze deadline staat ook in Microsoft Teams. De uitwerkingen kan je als Word - of text document inleveren in Microsoft Teams.  
  
Het huiswerk voor deze week kun je vinden op Microsoft Teams; Team "Databases - ${classcode}". Als je bijvoorbeeld in klas OITAOO9A zit, kun je je huiswerk vinden in Team "Databases - OITAOO9A".</p>

### Begrippen

**\[B1\]**  Relationele database = een database die volgens het relationele model is opgebouwd. De data in een relationele database wordt weergegeven is gebaseerd op de relatie tussen groepen.

**\[B2\]** Database = een verzameling tabellen die bij elkaar horen

**\[B3\]** Tables = groepje gegevens die bij elkaar horen. Bijvoorbeeld table Product of Order.

**\[B4\]** Columns (fields) = kolommen (=verticaal)

**\[B5\]** Rows (records) = rijen (=horizontaal)

**\[B6\]** Entity Relationship Diagram/Model = Entiteit-Relatiediagram = Visuele weergave van entiteiten, relaties en regels.

### Bronnen

# Week 1 Les 2: ER-Diagram Kardinaliteit & Datatypen en installatie MySQL Workbench

### Entity Relationship Diagram

In de vorige les hebben we kennis gemaakt met een entity relationship diagram (ER-diagram). We hebben gezien dat een ER-Diagram een visuele weergave van entiteiten, relaties en regels. Met andere woorden, een ER-diagram toont hoe "entiteiten" zoals mensen, voorwerpen of concepten binnen een systeem met elkaar verbonden zijn (de database structuur).

#### Entiteiten en attributen

Iets wat we kunnen definiëren **\[B1\]** is een entiteit. Voorbeelden zijn bijvoorbeeld een persoon, klant, student, game, product.

<p class="callout info">ER-diagrammen beschrijven de database structuur. De E in ER-diagram, staat voor de entiteit. Elke entiteit wordt uiteindelijk een tabel.</p>

<p class="callout info">Entiteiten (tabellen) bevatten attributen. Wanneer we de database gaan maken, weten we aan de hand van deze attributen welke kolommen een tabel zal krijgen. </p>

#### Keys

In de vorige les hebben we kennis gemaakt met Primary - (PK) en Foreign keys (FK). Deze keys geven de relatie tussen tabellen aan.  
We kunnen deze keys ook toevoegen aan entiteiten. Dit doen we door de ER-diagram uit les 1 verder uit te werken.

<p class="callout info">**Let op!** We nemen Tabel 3, 4 en 5 als voorbeeld voor het maken van de ER-diagram .</p>

#### Customers

<table border="1" id="bkmrk-customer_id-name-add" style="border-collapse: collapse; width: 0%;"><tbody><tr><td style="width: 25%;">**Customer\_id**</td><td style="width: 25%;">**Name**</td><td style="width: 25%;">**Address**</td><td style="width: 25%;">**Phone**</td></tr><tr><td style="width: 25%;">1</td><td style="width: 25%;">John Doe</td><td style="width: 25%;">Bijlmerplein 321</td><td style="width: 25%;">0621436587</td></tr><tr><td style="width: 25%;">2</td><td style="width: 25%;">Mary Jane</td><td style="width: 25%;">Elmstreet 15</td><td style="width: 25%;">0632658712</td></tr></tbody></table>

*Tabel 3: Tabel Customer*

#### Product

<table border="1" id="bkmrk-product_id-product-q" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 20%;">**Product\_id**</td><td style="width: 20.9877%;">**Product**</td><td style="width: 19.0123%;">**Quantity (stock)**</td><td style="width: 20%;">**Price**</td><td style="width: 20%;">**Type**</td></tr><tr><td style="width: 20%;">1</td><td style="width: 20.9877%;">Call of Duty - Black Ops</td><td style="width: 19.0123%;">10</td><td style="width: 20%;">€3</td><td style="width: 20%;">Game</td></tr><tr><td style="width: 20%;">2</td><td style="width: 20.9877%;">Fifa 20</td><td style="width: 19.0123%;">30</td><td style="width: 20%;">€33</td><td style="width: 20%;">Game</td></tr><tr><td style="width: 20%;">3</td><td style="width: 20.9877%;">Una matina - Ludovico</td><td style="width: 19.0123%;">11</td><td style="width: 20%;">€50</td><td style="width: 20%;">Music</td></tr></tbody></table>

*Tabel 4: Tabel Product*

#### Orders

<table border="1" id="bkmrk-order_id-date-custom" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 20%;">**Order\_id**</td><td style="width: 11.2346%;">**Date**</td><td style="width: 14.6913%;">**Customer\_id**</td><td style="width: 20.9877%;">**Shipping\_address**</td><td style="width: 23.0864%;">**Product\_id**</td><td style="width: 10%;">**Quantity (ordered)**</td></tr><tr><td style="width: 20%;">1</td><td style="width: 11.2346%;">1/2/2020</td><td style="width: 14.6913%;">1</td><td style="width: 20.9877%;">Bijlmerplein 321</td><td style="width: 23.0864%;">1</td><td style="width: 10%;">1</td></tr><tr><td style="width: 20%;">2</td><td style="width: 11.2346%;">3/12/2019</td><td style="width: 14.6913%;">1</td><td style="width: 20.9877%;">Bijlmerplein 321</td><td style="width: 23.0864%;">2</td><td style="width: 10%;">3</td></tr><tr><td style="width: 20%;">3</td><td style="width: 11.2346%;">16/12/2019</td><td style="width: 14.6913%;">2</td><td style="width: 20.9877%;">Elmstreet 15</td><td style="width: 23.0864%;">3</td><td style="width: 10%;">1</td></tr></tbody></table>

*Tabel 5: Tabel Order*

In de vorige les hebben we gezien dat de volgende diagram bij de bovenstaande tabellen hoort:

<div drawio-diagram="191"><img src="http://roc.ovh/uploads/images/drawio/2020-02/Drawing-Nilu-1580987170.png" alt=""/></div>

*Figuur 1: ER-diagram met keys, zonder kardinaliteit*

<p class="callout warning">**Lesopdracht 1:** Neem Figuur 1 als voorbeeld. Leg uit welke kardinaliteit (hoeveelheid relatie) er van toepassing is op dit figuur.</p>

### Database Management System

Er zijn verschillende Database Management Systems (DBMSs). Een hiervan is MySQL Workbench.

<p class="callout warning">**Lesopdracht 2:** Ga naar Microsoft Teams en open het team Databases - ${classcode}. Als je in klas OITAOO9A zit, kijk je in team Databases - OITAOO9A. Onder het kopje assignment is een document met stappen om MySQL Workbench te downloaden. Volg de stappen in dit document om MySQL Workbench te downloaden.</p>

### Begrippen

**\[B1\]** Definiëren = een ander woord voor beschrijven.

### Bronnen

**\[1\]**

# Week 2 Les 1 & 2: MySQL introductie en MySQL workbench download

### Week 2 Les 1

In de eerste les van deze week hebben wij MySQL Workbench 8.0 **\[1\]** gedownload. De link voor de download en de verwijzing naar de officiële handleiding voor de installatie kun je onderaan deze pagina, onder het kopje *Bronnen*, vinden. Als je deze handleiding te moeilijk vind, kun je nog altijd de handleiding volgen die In Microsoft Teams te vinden is.  
  
In Microsoft Teams - Team *Databases - ${klas code}* - vind je onder het tabje *Bestanden*, een folder genaamd *Class Materials*. Deze folder bevat het bestand met instructies voor het installeren van MySQL Workbench. Dit bestand heet *Databases - Intructies installatie MySQL Workbench*. Let echter wel op dat het scherm kan afwijken van de screenshots in het bestand. Dit heeft o.a. te maken met eventueel vooraf geïnstalleerde "vereisten".

<p class="callout danger">**BELANGRIJK, LET OP!** Als je de MySQL Server van Xampp gebruikt, kan het voorkomen dat de poorten voor een conflict zorgen omdat zowel Xampp als MySQL Workbench by default poort 3306 gebruiken. Als je dit wilt vermijden, kun je de poort van MySQL Workbench veranderen naar 3308.</p>

### Week 2 Les 2

Tijdens de les hebben we kennis gemaakt met o.a. MySQL

Tijdens deze les heb je kennis gemaakt met SQL **\[B1\]** op w3schools **\[2\]**.

#### w3schools

w3schools.com is een website die (korte) tutorials bevat voor verschillende (programmeer)talen. Elke pagina behandeld een functie/aspect van een taal en begint vrijwel altijd met een korte uitleg van bijvoorbeeld een functie. Daarna legt de pagina kort uit hoe de syntax **\[B2\]** is. Als de syntax eenmaal behandeld is, gaat de pagina verder met (interactieve) voorbeelden en opgaven die je op je eigen tempo kunt doorlopen.

<p class="callout info">**Tip:** Als je in je browser navigeert naar de website van w3schools (zie **\[2\]**), zie je aan de linkerkant een menu. Selecteer SQL Select om deze pagina te openen.   
  
Onderaan de *SQL Select*-pagina, is een zwarte kader met daarin *Test Yourself With Exercises*. Hierin is een link *Start the Exercise*. Als je deze link in een nieuwe tab in je browser opent, kun je enerzijds de uitleg/voorbeelden lezen en anderszijds de kennis die je opdoet uit de theorie, toepassen tijdens de opgaven.</p>

####   
MySQL Workbench

Als je de oefeningen op w3schools.com hebt doorlopen, ben je enigszins bekend met MySQL. Deze kennis kun je nu toepassen in de "praktijk" door de les - /huiswerk opdrachten te maken.

<p class="callout warning">**Les - / huiswerk opdracht:** In Microsoft Teams is er een kopje *Bestanden*. Als je hierop klikt verschijnt er een mapje *Class Material*s. Deze map bevat meerdere opgaven. Als je klaar bent met de oefeningen op w3schools kun je beginnen met de opgaven in de map *Class Materials.*</p>

###   
Begrippen

**\[B1\]** SQL is de afkorting van Structured Query Language en is een taal waarmee je data kunt toevoegen, wijzigen en verwijderen binnen een Database Management System (DBMS).

**\[B2\]** Syntax is een ander woord voor de manier waarop je iets schrijft.

###   
Bronnen

**\[1\]** MySQL Workbench 8.0 kun je downloaden op [https://dev.mysql.com/downloads/windows/installer/8.0.html](https://dev.mysql.com/downloads/windows/installer/8.0.html) .  **LET OP!** De bovenstaande link bevat twee MSI Installers. Wees er zeker van dat je de *mysql-installer-community-8.0.19.0.msi* download. Dit is een wizard waar je doorheen moet lopen.   
  
Tijdens de installatie vraagt de wizard om een wachtwoord. Dit wachtwoord heb je later nodig om in te kunnen loggen op je MySQL database connection. Vergeet je wachtwoord niet!  
  
Indien je de lessen hebt gemist, kun je de vereiste stappen voor de installatie terug vinden in de MySQL documentatie:  
[https://dev.mysql.com/doc/workbench/en/wb-installing-windows.html](https://dev.mysql.com/doc/workbench/en/wb-installing-windows.html) .

**\[2\]** Link voor de SQL tutorial op w3schools.com: [https://www.w3schools.com/sql/default.asp](https://www.w3schools.com/sql/default.asp)

# Week 5 les 1 - Vertalen van Entiteit Relatie Diagram naar Database en tabellen

In deze les gaan we een Entiteit Relatie (ER)-Diagram vertalen naar database tabellen. Als uitgangspunt nemen we het ER-Diagram van Datanamics. Deze kun je vinden in Microsoft Teams, Team Database - ${klascode}:

`Files -> Class Materials -> Week 5 -> ER-Diagram Datanamics.png`

### Vertaling entiteiten naar database tabellen

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" src="https://www.youtube.com/embed/ts6BUHdpXhg" width="560"></iframe>

### Hands on experience

Er zijn twee benodigde tools voor deze les, namelijk:

- Een IDE die SQL support, bijvoorbeeld Notepad++ of Sublime Text
- MySQL Workbench

De ER-Diagram is te vinden in Microsoft Teams -&gt; Team Database - ${klascode} -&gt; Files -&gt; Class Materials -&gt; week 5 -&gt; ER-Diagram Datanamics.png. Deze ER-Diagram gaan we vertalen naar database tabellen.

**LET OP! VAN DE LEERLING WORDT VERWACHT DAT HIJ/ZIJ DE SQL QUERIES UITWERKT IN MYSQL WORKBENCH EN DEZE VERVOLGENS OPSLAAT IN EEN FILE MET** **EEN .SQL EXTENSIE. IN DEZE FILE GEEF JE MET BEHULP VAN EEN SQL COMMENT AAN OM WELKE ENTITEIT/TABEL HET GING EN DE EXACTE SQL QUERY.**

<p class="callout warning">**Opdracht 1:** Schrijf een SQL statement die een database aanmaakt. De naam van de database moet *Webwinkel* zijn.</p>

<p class="callout warning">**Opdracht 2:** Vertaal de Entiteit Relatie Diagram naar tabellen. Zorg dat de *Webwinkel* database als default database geselecteerd staat want de tabellen moeten aan deze database toegevoegd worden.  
  
Probeer iedere SQL statement eerst uit in MySQL Workbench en plak deze vervolgens in het *uitwerkingen\_voornaam\_achternaam\_db\_week\_5.sql* bestand. Lever deze in via Microsoft Teams.  
  
**LET OP! MAAK EERST DE TABELLEN ZONDER FK!**</p>

### Bronnen

[https://www.w3schools.com/sql/](https://www.w3schools.com/sql/)