Het doel van een database is kort gezegd, opslag van gegevens.
Deze gegevensopslag kan diverse doelen dienen:
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.
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).
Een record (of rij) bevat gegevens, onderverdeeld in velden. Een verzameling
gegevens wordt ook wel een recordset genoemd.
Je dient voor een veld ook een type te specificeren: text, numbers, date, time, BLOB (Binairy Large Objects, bijvoorbeeld afbeeldingen) enz.
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:
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.
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:
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.
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.
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:
Zorg er wel voor dat de XAMPP module MySql draait.