📘 CodingMarble Learn

Databaseconcepten: DBMS, relaties en sleutels

Als je gegevens in aparte bestanden bewaart, krijg je dubbele gegevens, tegenstrijdigheden en een slechte beveiliging. Een database bewaart bij elkaar horende gegevens netjes op één plek, en een DBMS (zoals MySQL) is het programma dat dit beheert. In het relationele model staan gegevens in tabellen (relaties) met kolommen (attributen) en rijen (tupels). Een domein is de verzameling waarden die een kolom mag hebben. Een kandidaatsleutel maakt elke rij uniek; één daarvan kies je als primaire sleutel en de rest zijn alternatieve sleutels.

🎬 Verhaal in stappen

  1. Aparte bestanden herhalen gegevens en lopen uit de pas. Een database bewaart één kopie.
  2. Een DBMS staat tussen de gebruikers en de gegevens en beheert alles.
  3. Een tabel is een relatie: kolommen zijn attributen, rijen zijn tupels.
  4. Een domein is de verzameling waarden die een kolom mag hebben.
  5. Kandidaatsleutels herkennen elke rij. Eén wordt de primaire sleutel; de rest zijn alternatieve sleutels.
  6. Jouw beurt: test elke kolom en kijk of die een sleutel kan zijn.

Tip: sleep de 3D-scène om hem te draaien. Gebruik twee vingers om te zoomen.

🤔 Veelvoorkomende twijfels, opgehelderd

Is een spreadsheet niet al een database?

Een spreadsheet kan een tabel bevatten, maar een DBMS voegt toe: delen door veel gebruikers tegelijk, regels (sleutels, domeinen), beveiliging en krachtige zoekopdrachten.

Waarom heten rijen tupels?

In de wiskunde is een geordende rij waarden een tupel. Elke rij is een geordende rij waarden, één voor elk attribuut.

Wie bepaalt het domein?

De ontwerper van de database, op basis van echte regels (klas 9–12, cijfers 0–100). Het DBMS weigert dan waarden buiten het domein.

Als AdmNo en Email allebei uniek zijn, waarom kies je dan AdmNo?

Het is kort, verandert nooit en elke leerling heeft er een. E-mailadressen kunnen veranderen of ontbreken.

Kan een sleutel uit twee kolommen bestaan?

Ja. Als geen enkele kolom alleen uniek is, kan een combinatie zoals (Class, RollNo) de sleutel zijn. Dit heet een samengestelde sleutel.

Waarom hebben we een database nodig?

In een bestandssysteem bewaart elke afdeling haar eigen bestanden. Dat geeft problemen:

Een database is een geordende verzameling van bij elkaar horende gegevens op één plek, zodat ze gedeeld, consistent gehouden en beschermd kunnen worden.

Databasemanagementsysteem (DBMS)

Een DBMS is software waarmee je een database maakt, opslaat, bijwerkt, doorzoekt en beheert, en waarmee je bepaalt wie ermee mag werken. Voorbeelden: MySQL, Oracle, PostgreSQL, SQLite, Microsoft Access.

Voordelen: minder redundantie, consistente gegevens, delen door veel gebruikers, beveiliging met wachtwoorden en rechten, back-up en herstel, en makkelijk zoeken met een zoektaal (SQL).

Dagelijks gebruik: bankieren, treinreserveringen, schooladministratie, online winkelen, ziekenhuizen.

Relationeel model: relatie, attribuut, tupel, domein

In het relationele gegevensmodel staan gegevens in tabellen.

Regels: elke kolom heeft een unieke naam; de volgorde van rijen of kolommen maakt niet uit; geen twee rijen zijn precies gelijk; elke cel bevat één enkele waarde (of NULL, dat betekent onbekend).

Sleutels: kandidaat, primair en alternatief

Voorbeeld: STUDENT(AdmNo, Name, Class, Email). Name komt dubbel voor, Class ook, dus dat zijn geen sleutels. AdmNo en (als die altijd is ingevuld en verschillend is) Email zijn kandidaatsleutels. Kies AdmNo als primaire sleutel; Email wordt de alternatieve sleutel.

Ook handig: een samengestelde sleutel gebruikt twee of meer kolommen samen (zoals Class + RollNo); een refererende sleutel (foreign key) is een kolom in de ene tabel die verwijst naar de primaire sleutel van een andere tabel en zo de twee koppelt.

Probeer het: zoek de sleutel op je schoolpas

Kijk naar je schoolpas of een buskaart. Schrijf elk veld op (naam, klas, nummer in de klas, leerlingnummer, telefoon). Stel bij elk veld twee vragen: kunnen twee leerlingen dezelfde waarde hebben? Kan het leeg zijn? Noteer welke velden kandidaatsleutels zijn en welke je als primaire sleutel zou kiezen. Test hetzelfde idee daarna in stap 6 van de 3D.

Belangrijke formules en begrippen

Uitgewerkte voorbeelden

1. Een tabel heeft 5 kolommen en 30 rijen. Geef de graad en de kardinaliteit.

Graad = 5, kardinaliteit = 30.

2. Je voegt 2 rijen en 1 kolom toe aan een tabel van 4 × 10 (graad 4, kardinaliteit 10). Wat zijn de nieuwe waarden?

Graad = 5, kardinaliteit = 12.

3. EMPLOYEE(EmpID, Name, Aadhaar, Dept). Geef de kandidaat-, primaire en alternatieve sleutels.

EmpID en Aadhaar zijn uniek → kandidaatsleutels. Kies EmpID als primaire sleutel; Aadhaar is de alternatieve sleutel. Name en Dept kunnen zich herhalen.

4. Waarom kan Name geen primaire sleutel zijn in STUDENT?

Twee leerlingen kunnen dezelfde naam hebben, dus een naam herkent een rij niet uniek.

5. Geef het domein van een attribuut Gender dat als één letter is opgeslagen.

{"M", "F", "O"} (of welke codes de school ook toestaat).

Veelgemaakte fouten

Oefentoets

1. Een rij in een relatie heet een:
2. Het aantal kolommen in een relatie is de:
3. Een kandidaatsleutel die niet als primaire sleutel is gekozen, is een:
4. Welke van deze is een DBMS?
5. Dezelfde gegevens in veel bestanden heet:

Oefenen: beantwoord deze zelf

Typ of kies je antwoord en druk op Controleer. Gebruik een hint als je vastzit; de volledige uitwerking verschijnt na je antwoord.

Veelgestelde vragen

Waarom heb je een database nodig?

Om dubbele en tegenstrijdige gegevens in aparte bestanden te voorkomen, en om gegevens makkelijk te delen, te beveiligen en te doorzoeken.

Wat is het verschil tussen kandidaat-, primaire en alternatieve sleutels?

Elke kandidaatsleutel kan rijen uniek herkennen; de gekozen sleutel is de primaire sleutel; de andere zijn alternatieve sleutels.

Wat zijn graad en kardinaliteit?

De graad is het aantal kolommen (attributen); de kardinaliteit is het aantal rijen (tupels) in een relatie.

Waar dit wordt onderwezen

ItalySecondaria di secondo grado – classe 3ªTools and foundations
ItalySecondaria di secondo grado – classe 4ªTools and foundations
NetherlandsHAVO 5 (eindexamenjaar)Elective theme: Databases
NetherlandsVWO 6 (eindexamenjaar)Elective theme: Databases
PolandLiceum ogólnokształcące, klasa IIProgramming and solving problems with computers
RomaniaClasa a X-aDatabases
RomaniaClasa a XII-aModule 1: Databases (compulsory)
RomaniaClasa a XII-aModule 2: Database management systems (optional)
RomaniaClasa a XII-aModern user skills
RomaniaClasa a XII-aWorking with a database application
Ukraine9 класInformation systems and data management
Ukraine10 класBase module: database systems
CBSE (India)Class 11Database Concepts and SQL
CBSE (India)Class 11RDBMS
England (GCSE, A level)Year 113.7 Relational databases and SQL
Japan高校1年Networks and data
Japan高校(専門学科)1〜3年Using Software
Japan高校(専門学科)1〜3年Computer Systems Technology
Japan高校(専門学科)1〜3年Databases
South Korea고등학교 2학년Understanding data science
South Korea고등학교 3학년Data and information
Germany (Bavaria)Jahrgangsstufe 10Data modelling and relational databases
FranceSecondeThemes
FrancePremièreTabular data
FranceTerminaleSpecific option — management information systems
Russia9 классTheoretical foundations
Russia11 классInformation technologies

Leer eerst

Leer hierna