H1 - H4: Basis normaliseren en ERD

1. Basis normaliseren en ERD
PRO - ONT-II
1 / 49
next
Slide 1: Slide
Software Developer [WEB]MBOStudiejaar 1

This lesson contains 49 slides, with interactive quizzes, text slides and 3 videos.

time-iconLesson duration is: 120 min
Report this lesson

Items in this lesson

1. Basis normaliseren en ERD
PRO - ONT-II

Slide 1 - Slide

Doelen vandaag
  • Je begrijpt het verschil tussen een primary key en een foreign key.
  • Je kunt de symboliek in een ERD op een juiste manier toepassen.
  • Je begrijpt hoe relaties kunnen worden vastgelegd in een database

Slide 2 - Slide

Wat is een database, wat is een entiteit, wat is een relatie (in context met entiteit)

Slide 3 - Open question

Een introductie / herhaling
Database: georganiseerde verzameling van gegevens

Entiteit: een object of concept waarover gegevens worden vastgelegd (bijvoorbeeld: Klant, Product).

Relatie: verbinding is tussen twee entiteiten (bijvoorbeeld: Een klant plaatst een bestelling).

Slide 4 - Slide

Relaties tussen tabellen
  • Eén tabel (Boeken)


Slide 5 - Slide

Relaties tussen tabellen
  • Twee tabellen met 1 relatie 
(Boeken, Gebruikers: 
een boek hoort bij een gebruiker).

Een gebruiker heeft een boek

*Symboliek niet juist

Slide 6 - Slide

Relaties tussen tabellen

Drie of meer tabellen, waaronder bijvoorbeeld een koppeltabel (twee foreign keys)

Drie tabellen met meerdere relaties (Boeken, Klanten, Bestellingen): een boek hoort bij een klant via een bestelling.

Een klant kan meerdere boeken bestellen.
Een boek kan bij meerdere klanten horen.

Slide 7 - Slide

Slide 8 - Video

Soorten relaties
Sheet 4-11 ppt

Slide 9 - Slide

Relaties in boeken webshop 
(Klanten, boeken, bestellingen)
  • Eén klant kan 1 of meer bestellingen plaatsen (één op veel).
  • Een bestelling bevat één of meerdere boeken (één op veel)
  • Meerdere boeken kunnen bij meerdere klanten horen (veel op veel)
  • Een bestelling hoort bij 1 klant 
  • Let op: Een boek hoort niet bij een klant, maar hoort via een bestelling bij een klant

Slide 10 - Slide

Leg in je eigen woorden het verschil uit tussen een primary key en een foreign key

Slide 11 - Open question

Primary key
  • Unieke identifier voor records binnen een tabel.
  • Er mogen geen duplicaten of null-waarden in deze kolom voorkomen.

Slide 12 - Slide

Foreign key
  • een kolom (of combinatie van kolommen) die verwijst naar de primary key in een andere tabel om een relatie tussen de twee tabellen te creëren.
  • geen unieke waarden te bevatten. Er mogen meerdere records dezelfde foreign key-waarde delen.
  • kan null-waarden bevatten als de relatie optioneel is
  • records in de ene tabel correct verwijzen naar records in een andere tabel.

Slide 13 - Slide

id
INT
naam
TEXT
id
INT
naam
TEXT
mentor_id
INT
id
INT
naam
TEXT
klas_id
INT
Studenten
Klassen
Mentoren
Zet de juiste key bij de juiste cel:
PK
PK
PK
FK
FK
VK

Slide 14 - Drag question

Opdracht: foreign key/ primary key

Slide 15 - Slide

Les 2
Korte herhaling FK/PK : opdracht bespreken 
Verder werken ERD opdracht Boekenwinkel
maken Factuur trendy styles

Slide 16 - Slide

Bekijken ERD games

Slide 17 - Slide

Samen ERD bekijken

Slide 18 - Slide

Opdracht
We bekijken een applicatie die ze in de bioscoop zouden kunnen gebruiken en proberen de verbindingen vast te leggen. (LucidChart)


Slide 19 - Slide

Relaties tussen tabellen

Klanten kunnen nieuwe
boeken bestellen
bij een winkel.

Drie tabellen met meerdere relaties (Boeken, Klanten, Bestellingen): een boek hoort bij een klant via een bestelling.
Een klant kan meerdere boeken bestellen.
Een boek kan bij meerdere klanten horen.

*Symboliek niet juist


Slide 20 - Slide

Relaties tussen tabellen
Drie tabellen: Waarom heb ik de (koppel)tabel bestellingen nodig?

* Als klant een boek_id heeft, kan een klant maar 1 boek hebben.
*Als een boek een klant_id heeft hoort een boek bij 1 klant

Een klant kan meerdere boeken bestellen.
Een boek kan bij meerdere klanten horen.

Dus twee one to many's, daar hoort een koppeltabel tussen.

Slide 21 - Slide

Beperkingen "Een gebruiker koopt een boek"
Beperking: elke klant-rij mag maar naar één boek verwijzen. Koopt Jansen twee boeken, dan moet zijn hele klantregel (naam, adres, klantnummer) worden gedupliceerd voor het tweede boek. Dat is redundante data: verandert Jansens adres, dan moet je dat op meerdere rijen aanpassen, anders ontstaan inconsistenties. Dit model werkt alleen soepel als één boek bij meerdere klanten hoort — niet omgekeerd.

Slide 22 - Slide

Beperkingen "Een gebruiker koopt een boek"
Beperking: hier is het net omgekeerd. Eén klant kan prima meerdere boeken hebben (meerdere boek-rijen wijzen naar dezelfde klant_id — dat werkt zonder redundantie). Maar zodra hetzelfde boek bij meerdere klanten moet horen (bijvoorbeeld doorverkocht of gedeeld), moet je de hele boekrij dupliceren (titel, ISBN, schrijver herhaald), met hetzelfde inconsistentie-risico.

Slide 23 - Slide

Oefenen met ERD tekenen
Opdracht: ERD: Boekenwinkel
Opdracht: ERD: Factuur Trendy Styles

Papier/LucidChart/draw.io

Slide 24 - Slide

Aan welke tabellen/kolommen denk je?
Je wilt een webshop op gaan starten om elpees te gaan verkopen. Je hebt elpees in veel verschillende genres. Mensen kunnen via hun account elpees kiezen en online bestellen.

Het betaalproces hoef je niet mee te nemen.

Slide 25 - Slide

Les 3

Slide 26 - Slide

Wat is normaliseren?

Slide 27 - Open question

Slide 28 - Video

Normaliseren
Slim ordenen van gegevens in een database zodat er geen onnodige herhaling is en de gegevens netjes en logisch bij elkaar passen.

Slide 29 - Slide

Normaalvormen
  • 0de normaalvorm (0NF)
  • 1e normaalvorm (1NF)
  • 2e normaalvorm (2NF)
  • 3e normaalvorm (3NF)
  • (Boyce-Codd normaalvorm (BCNF))

Slide 30 - Slide

Normaliseren
Sheet 13-23 ppt

Slide 31 - Slide

Slide 32 - Video

Leg in je eigen woorden uit wat de 1e normaalvorm is

Slide 33 - Open question

0NF
De tabel kolommen kan bevatten met ongeordende en niet-atomische waarden

Slide 34 - Slide

1NF
  • Alle waarden in een kolom moeten enkelvoudig zijn, dus geen lijsten of herhalende groepen.
  • Elke rij in de tabel moet uniek zijn en een primaire sleutel hebben.

Slide 35 - Slide

Voorbeeld: 1NF

Slide 36 - Slide

2NF
  • Voldoe aan 1NF.
  • Elk niet-sleutelattribuut moet volledig afhankelijk zijn van de volledige primaire sleutel, niet een deel ervan.

Slide 37 - Slide

Voorbeeld 2NF

Slide 38 - Slide

3NF
  • Voldoe aan 2NF.
  • Niet-sleutelattributen mogen niet afhankelijk zijn van andere niet-sleutelattributen (geen transitieve afhankelijkheden).

Slide 39 - Slide

Voorbeeld 3NF

Slide 40 - Slide

In welke normaalvorm staat deze tabel:

Slide 41 - Open question


Slide 42 - Open question

Slide 43 - Slide

Slide 44 - Slide

Slide 45 - Slide

Slide 46 - Slide


Slide 47 - Open question

Welke normaalvorm?

Slide 48 - Open question


Slide 49 - Open question