Wat is Relationele database?

Database die gegevens voorstelt als tabellen (relaties) van rijen en kolommen en via gemeenschappelijke waarden verbanden tussen tabellen legt. Wordt ook RDB genoemd. Query's en wijzigingen worden in SQL uitgevoerd, en beperkingen zoals primaire sleutels en vreemde sleutels houden de gegevens consistent.

Japanse benaming: 関係データベース

“Relationele database” komt voor in 7 oefenvragen uit 1 onderwerpen, bijv. Basis van databases.

Vakgebied: Basis van databases

Tabellen, rijen, kolommen en het relationele model

Een relationele database is gebaseerd op het relationele model dat E. F. Codd in 1970 voorstelde. Gegevens worden voorgesteld als tabellen (relaties); één rij van een tabel heet een tupel, één kolom een attribuut, en de verzameling waarden die een attribuut kan aannemen het domein. Tabellen zijn niet via pointers met elkaar verbonden, maar via gemeenschappelijke waarden: een tabel Bestelling heeft bijvoorbeeld een kolom KlantID waarvan de waarde een rij van de tabel Klant aanwijst. Daardoor kan bij elke query vrij worden bepaald welke tabellen onder welke voorwaarden worden gecombineerd.

Gegevens beheren met SQL en beperkingen

In een relationele database wordt de taal SQL gebruikt om tabellen te definiëren (DDL), gegevens te zoeken en te wijzigen (DML) en rechten te regelen (DCL). In SQL beschrijf je alleen welk resultaat je wilt; de optimizer van het DBMS bepaalt in welke volgorde tabellen worden gelezen en welke indexen worden gebruikt. De juistheid van de gegevens wordt gewaarborgd door beperkingen, zoals primaire sleutels die rijen uniek identificeren, vreemde sleutels die rijen correct naar rijen van andere tabellen laten verwijzen, NOT NULL en UNIQUE die NULL en dubbele waarden verbieden en CHECK dat het bereik van waarden begrenst, samen met de ACID-eigenschappen van transacties.

Kiezen tussen relationele en andere databases

Relationele databases worden veel gebruikt voor bedrijfstaken zoals voorraadbeheer en boekhouding, waarbij de consistentie van de gegevens belangrijk is en zoekopdrachten veel verschillende voorwaarden combineren. Webdiensten met zeer veel verkeer gebruiken daarentegen soms NoSQL-databases zoals key-value- of documentdatabases, die gemakkelijk over meerdere servers te verdelen zijn. In plaats van maar één soort te gebruiken, is het gebruikelijk ze naargelang het doel te combineren.

Nu oefenen: vragen over Relationele database

Welke term uit de terminologie van relationele databases komt overeen met één rij van een tabel (relatie)?

  1. ATupel
  2. BAttribuut
  3. CDomein
Antwoord en toelichting tonen

Antwoord: A. Tupel

Een relationele database stelt gegevens voor als tabellen (relaties) van rijen en kolommen en legt via waarden verbanden tussen tabellen. In de terminologie van het relationele model heet één rij van een tabel een tupel, één kolom een attribuut, en de verzameling waarden die een attribuut kan aannemen het domein. In een tabel met medewerkers is bijvoorbeeld de rij met de gegevens van één medewerker een tupel, zijn kolommen zoals naam en afdeling attributen, en is het bereik van niet-negatieve gehele getallen dat in de kolom leeftijd is toegestaan een domein. Omdat het relationele model een tabel als een verzameling rijen behandelt, heeft de volgorde van de rijen geen betekenis en zijn twee volledig identieke rijen niet toegestaan (in echte SQL-tabellen kunnen identieke rijen wel worden opgeslagen als er geen primaire sleutel is gedefinieerd).

Aan welke voorwaarde moet in een tabel van een relationele database de kolom (of combinatie van kolommen) voldoen die als primaire sleutel is aangewezen?

  1. ADe waarden moeten getallen zijn
  2. BHet moet de eerste kolom van de tabel zijn
  3. CDe waarden mogen binnen de tabel niet dubbel voorkomen en mogen geen NULL bevatten
Antwoord en toelichting tonen

Antwoord: C. De waarden mogen binnen de tabel niet dubbel voorkomen en mogen geen NULL bevatten

Een primaire sleutel is een kolom of combinatie van kolommen waarmee één rij in een tabel uniek wordt geïdentificeerd. De waarden mogen daarom niet gelijk zijn aan die van een andere rij (uniciteit), en ook NULL, dat een onbekende waarde aangeeft, is niet toegestaan (NOT NULL). Als in een SQL-statement CREATE TABLE een PRIMARY KEY wordt opgegeven, dwingt het DBMS (databasemanagementsysteem) deze twee beperkingen af, en elke bewerking die een dubbele waarde of NULL probeert in te voegen, mislukt met een foutmelding. Een primaire sleutel kan getallen bevatten, zoals personeelsnummers, maar ook tekenreeksen, en er is geen regel voor de positie van de kolom. Een minimale combinatie van kolommen die een rij uniek kan identificeren, heet een kandidaatsleutel, en de primaire sleutel is de sleutel die uit de kandidaatsleutels wordt gekozen.

Veelgestelde vragen

Waar verwijst „relationeel” in relationele database naar?

Naar de tabellen zelf. In de wiskunde heet een verzameling combinaties van elementen uit meerdere verzamelingen een relatie, en elke rij van een tabel komt overeen met zo'n combinatie (een tupel). Het slaat niet op de verbanden tussen tabellen.

Hoe kies je tussen een relationele database en NoSQL?

Een relationele database past bij werk waarbij de consistentie van de gegevens belangrijk is en complexe zoekopdrachten zoals joins tussen tabellen veel voorkomen. NoSQL kan passen bij gevallen met zeer veel eenvoudige lees- en schrijfacties op sleutel, waarbij je wilt opschalen door de gegevens over meerdere servers te verdelen.

“Relationele database” in de toelichting

Vragen met “Relationele database” (7)

  1. Welke term uit de terminologie van relationele databases komt overeen met één rij van een tabel (relatie)?
  2. Aan welke voorwaarde moet in een tabel van een relationele database de kolom (of combinatie van kolommen) voldoen die als primaire sleutel is aangewezen?
  3. Welke beschrijving van een view in een relationele database is juist?
  4. Wat is het belangrijkste doel van de normalisatie van tabellen in een relationele database?
  5. In een ER-diagram bestaat tussen studenten en vakken een veel-op-veelrelatie: één student volgt meerdere vakken, en één vak wordt door meerdere studenten gevolgd. Wat is een geschikte manier om deze relatie met tabellen in een relationele database te realiseren?
  6. Op de kolom LidNr van de tabel Lid met 1 miljoen rijen is een index in de vorm van een B+-boom aangemaakt. Welke combinatie van het effect dat in het algemeen mag worden verwacht en de prijs daarvoor is juist?
  7. Welke beschrijving van de kenmerken van een key-value-store, een van de databases die NoSQL worden genoemd, is in het algemeen juist?

Verwante termen

Primaire sleutel SQL Index (databaseindex) View (databaseview) Normalisatie ER-diagram (entity-relationshipdiagram) Vreemde sleutel (foreign key) NoSQL ACID-eigenschappen Derde normaalvorm (3NF)

Naar de woordenlijst