Skip to main content

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

Introductie databases

Stel dat we een online games & 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:

NaamName Product AantalQuantity DatumDate AdresAddressPhone
John Doe Call of Duty - Black OPS 1 1/2/2020 Sesamstraat 1230612345678

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

Lesopdracht 1: Neem Tabel 1 over en leg uit wat de kolommen en rijen zijn. 

Lesopdracht 2: Benoem de namen van de kolommen.

Stel dat we een nieuwe order hebben van John Doe:

NaamName Product AantalQuantity DatumDate AdresAddressPhone
John Doe Call of Duty - Black OPS 1 1/2/2020 Sesamstraat 123 0612345678
John Doe Fifa 20 3 7/12/2019 Bijlmerplein 3210621436587

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.

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.


RelationalData 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

Customer_idNameAddressPhone
1John DoeBijlmerplein 3210621436587
2Mary JaneElmstreet 150632658712

Tabel 3: Tabel Customer

Product

Product_idProductQuantity (stock)PriceType
1Call of Duty - Black Ops10€3Game
2Fifa 2030€33Game
3Una matina - Ludovico11€50Music

Tabel 4: Tabel Product

Orders

Order_idDateCustomer_idShipping_addressProduct_idQuantity (ordered)
11/2/20201Bijlmerplein 32111
23/12/20191Bijlmerplein 32123
316/12/20192Elmstreet 1531

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 SystemSysteem. Deze zullen wij tijdens de databases lessen leren gebruiken.

Relationeel Database Management Systeem (RDBMS)

Een RelationalRelationeel Database Management SystemSysteem (RDBMS) is een systeem die het mogelijk maakt om een relationele database [B1] kanop wordente opgeslagen,slaan, opgevraagddata op te vragen en gewijzigd.eventueel te wijzigen.

Een RDBMS bestaan de uit volgende (hoofd)onderdelen:

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

Bovengenoemde onderdelen zijn terug te vinden in de begrippenlijst: [B2] - [B5].

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).

Entiteit

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:

 

 

  •  

Lesopdrachten en huiswerk

De deadline voor de bovenstaande lesopdrachten en het huiswerk is iedere maandag vóór 12:00 uur 's middags. De uitwerkingen kan je als Word - of text document mailen naar de docent (n.lican1@rocva.nl).

Het huiswerk voor deze week kun je vinden op Microsoft Teams; Team "Databases - ${classcode}". Als je bijvoorbeeld in klas OITAOO0A zit, kun je je huiswerk vinden in Team "Databases - OITAOO9A".

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 tabllentabellen 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