Databases

CMD FED Y2Q2W5 Lesbrief

Leerdoelen

Uitleg

Doel en gebruik database

Het doel van een database is kort gezegd, opslag van gegevens.
Deze gegevensopslag kan diverse doelen dienen:

Databases worden voor allerlei doeleinden gebruikt:

Tabel, record en veld

Een database is een verzameling van één of meerdere tabellen. Vaak wordt er over een database gesproken als er een tabel wordt bedoeld; dit is incorrect.
Stel je voor je hebt een database 'school', deze database bevat vervolgens de tabellen: 'students', 'teachers', en 'classes'. Uiteraard kun je meerdere tabellen plaatsen in deze database als 'lessons', 'marks', etc.

Tabel

In een database kun je de gegevens origaniseren in thema's. Zo'n thema heet een tabel. Een tabel kun je vergelijken met een Excel bestand (in feite is het ook een tabel). Omdat een Excel bestand een gestructureerd bestand is kun je het vaak uitwisselen met andere programma's of database applicaties (door middel van formaten als TSV, CSV of XML).

Tabel: record

Een record (of rij) bevat gegevens, onderverdeeld in velden. Een verzameling gegevens wordt ook wel een recordset genoemd.

Tabel: veld

Een veld (kolom) wordt ook wel een 'attribuut' genoemd.

Een veld is dus een deel van een record. Dit veld heeft een naam en een type.

Je dient voor een veld ook een type te specificeren: text, numbers, date, time, BLOB (Binairy Large Objects, bijvoorbeeld afbeeldingen) enz.

Enkele bekende Relationele Database Systemen

 

Eenvoudige database ontwerpen (modelleren)

Wat is modeleren?

Een database is eigenlijk een model van de realiteit. Daarom is modeleren eigenlijk structuur aanbrengen in de realiteit. Je moet dus nadenken om die realiteit te vertalen naar tabellen, records en velden.

Het structureren van een database gaat volgens een bepaald proces, genaamd normaliseren. Hierbij ga je stapsgewijs aan het werk. Het gaat te ver om hier in deze les dieper op in te gaan. Wil je hier toch meer over weten, kijk dan op http://www.phphulp.nl/php/tutorials/3/150/259/

Globaal gezien volg je de onderstaande regels:

Een voorbeeld

Stel je wilt een bestand maken met daarin de telefoonnummers van je vrienden. In de tabel hieronder (Tabel 01) zie je een kolom voor de voor- en achternaam. En tevens diversie kolommen voor de telefoonnummers. Er zijn altijd wel vrienden met meerdere telefoonnummers. Kijk maar naar Ivan Hoe, die heeft wel drie telefoonnummers. Er ontstaat echter een probleem als Ivan Hoe nog een vierde (of zelfs vijfde) telefoonnummer krijgt. Dan dien je een nieuwe kolom aan te maken.

Tabel 01: friends

Je zou de tabel ook als volgt in kunnen richten. Indien Ivan Hoe een extra telefoonnummer krijgt, dan hoef je in ieder geval geen nieuwe kolom aan te maken. Er wordt gewoon een nieuw record toegevoegd aan de tabel friends, zie hieronder:

Tabel 02: friends

Het probleem echter met deze tabel is, dat wanneer je per ongeluk de naam van Ivan Hoe verkeerd getypt hebt en je wilt deze veranderen, je dus 3 keer die naam moet veranderen. Stel je verandert de naam in Ivanhoe Knight. Als je één van de records vergeet te veranderen, dan heb je een probleem als je op de achternaam 'Knight' zoekt.

Tabel 03: friends

Het is daarom beter om de tabel 'friends' verder uit te splitsen in 'friends' en 'phonenumbers'. Indien je dus de naam van één je vrienden wilt veranderen, hoef je dat maar één keer te doen. Wat wel noodzakelijk is dat je de juiste naam aan het juiste telefoonummer koppelt. Je gebruikt hiervoor een sleutelveld (in dit geval 'id'). In beide tabellen, dien je dit sleutelveld te gebruiken, zodat je een link kunt maken. Let er wel op wat voor soort id je gebruikt. In dit geval zijn volgnummers gebruikt. Indien je bijvoorbeeld de initialen gebruikt van je vrienden, 'ck' voor Clark Kent en je verandert de naam Clark Kent in Clarky Supermannetje, dan krijg je een probleem als je het id ook verandert in 'cs'. Je dient dan immers ook het id in je tabel phonenumbers te veranderen.

Tabel 04: friends

Tabel 05: phonenumbers

Lesopdracht 1:

Maak in MySqlAdmin een database aan met de naam school.
Bedenk een structuur waarin je de volgende gegevens opslaat:

Kijk of je de gegevens in 1 tabel kunt plaatsen of dat je dit wellicht in meer tabellen doet.
Als je de tabel structuur hebt gemaakt, dan vul je ze daarna met wat gegevens.

behulp van de tool PHPMyAdmin. Deze kun je starten via localhost door in de browser te typen:

http://localhost/phpmyadmin

Zorg er wel voor dat de XAMPP module MySql draait.