Wat is een relationele database?
Voor ieder bedrijf is er data beschikbaar dat op een bepaalde manier bewaard moet worden. Tegenwoordig wordt dit allemaal digitaal verwerkt in databases.
In databases worden gegevens verzameld, georganiseerd en gelinkt aan elkaar.
Deze digitale databases zijn niet meer weg te denken in hedendaagse bedrijven. Via digitale databases is het namelijk mogelijk om vanuit iedere computer, die toegang heeft, gegevens op te halen.
Een veel gebruikte database is de relationele database, deze databasetechnologie biedt de meest efficiënte en flexibele manier om toegang te krijgen tot gestructureerde informatie. In deze blog wordt er uitgelegd wat een relationele database is, het verschil met niet-relationele databases en de voordelen van de relationele databases.
Tutorial: stap voor stap een SQL database maken
Relationale databases
Een relationele database is een verzameling van informatie die gestructureerd is in verschillende tabellen. Tabellen kun je aanmaken met het statement SQL CREATE TABLE. Elke tabel beschikt over kolommen en rijen. Iedere rij bevat informatie over een bepaald object en de kolommen geven aan welke attributen er worden verwacht. Relationele databases zijn opgesteld via het relationele model. Het relationele model is een manier om een verzameling van gegevens te structureren waar het voornamelijk gebruik maakt van relaties binnen de gegevens (zie ook: deepdive in SQL relationships). Om dit beter te begrijpen kun je deze uitleg over SQL primary en foreign keys lezen. Het relationele model maakt het gemakkelijk om informatie op te halen met SQL query's.
Voorbeelden van SQL statements en functies die worden gebruikt in queries zijn:
Relationele databases kunnen worden opgeslagen, geraadpleegd en gewijzigd. Deze functies worden uitgevoerd via een RDBMS (Relationeel Database Management Systeem). Voorbeelden van dit soort systemen zijn MySQL, SQL Server, Oracle en PostgreSQL. Binnen deze systemen wordt er gewerkt met de SQL taal.
Hier vind je een volledige vergelijking van de SQL varianten
Wil je zelf aan de slag met SQL? Lees dan hoe je PostgreSQL en PgAdmin kunt installeren.
Wil je meer weten over SQL? Check dan onze andere blog posts. Hier vind je onder andere meer informatie over waarom SQL leren belangrijk is, voorbeelden van wat je met SQL kan doen en hoe je SQL moet leren.
Relationele database vs. niet-relationele database
Een minimalistisch voorbeeld van een relationele database is gevisualiseerd in onderstaande afbeelding. Deze database toont de facturen van een bedrijf, waar twee tabellen beschikbaar zijn.
De linker tabel (‘Klant’) bevat de informatie van elke klant die een factuur heeft betaald. Zoals je ziet heeft deze tabel drie kolommen; 1) Klant ID, 2) Voornaam, 3) Achternaam. Klant ID is de kolom die voor iedere rij een unieke waarde heeft. Deze kolom kan vandaar gebruikt worden als primaire sleutel (primary key).
In de rechter tabel (‘Factuur’) staan de gegevens van elke afgerekende factuur, deze tabel heeft drie kolommen; 1) Bon ID, 2) Klant ID, 3) Kosten (€). Hierin is de kolom Bon ID de primaire sleutel. Klant ID is echter de primaire sleutel van de Klant tabel en is daarom een verwijzende sleutel (foreign key) in de Factuur tabel. Makkelijk gezegd verwijst de Klant ID uit de Factuur tabel dus naar de informatie uit de Klant tabel die aanvullende informatie heeft voor elke rij.
Wanneer deze database niet gestructureerd zou zijn volgens het relationele model zou het eruit zien als onderstaande afbeelding. Deze soort database wordt ook wel de platte database (flat file database) genoemd. Wellicht merk je hierdoor meteen wat voor voordelen de structuur van relationele databases heeft ten opzichte van andere.
Wat zijn voordelen van een relationele database?
Data vermindering
Het relationele model maakt gebruik van relaties tussen verschillende tabellen, dit zorgt er voor dat er minder overtollige informatie in de database voorkomt. In bovenstaande afbeeldingen is dit voordeel ook duidelijk gemaakt. In bovenste database is het te zien dat ‘Voornaam’ & ‘Achternaam’ maar 1 keer wordt genoteerd per klant, waar in de onderste database dit niet het geval is. Het verminderen van overtollige data wordt ook wel normalisatie genoemd en is een belangrijk concept binnen relationele databases. Dit voorbeeld laat zien dat het relationele model ervoor zorgt dat overtollige data wordt verminderd.
Aanpasbaarheid
Door de structuur van de relationele databases is het niet nodig om data op verschillende plekken aan te passen. Als de klant met "Klant ID" = 3 zijn achternaam verandert naar "Smulders" is het in de bovenste database alleen nodig om één rij aan te passen, in het onderste voorbeeld zou dit om drie rijen gaan.
Flexibiliteit
Relationele databases maken het mogelijk om gemakkelijk nieuwe velden toe te voegen, in het bestaande database-ontwerp. Er is ook geen limiet voor het aantal rijen, kolommen of tabellen dat een relationele database heeft. Personen die binnen toegang hebben tot een database kunnen daardoor dingen toevoegen, updaten en verwijderen zodat de database uiteindelijk de juiste opzet heeft bereikt.
Conclusie
Je hebt gelezen waarom relationele databases gebruikt worden en met welke systemen ze communiceren. Daarnaast is een voorbeeld gepresenteerd over hoe het in praktijk toegepast kan worden en waarom relationele databases handig zijn met de bijkomende voordelen.
Wil je nog veel meer leren over SQL? Bekijk dan onze SQL cursus voor data analyse of download onderstaande opleidingsbrochure. In onze SQL cursus wisselen theorie en praktijkoefening elkaar steeds af. Nadat je deze training hebt gevolgd kun je zelfstandig met SQL werken. Je kunt ook altijd even contact opnemen via info@datasciencepartners.nl of 020 - 24 43 146 als je een vraag hebt.
Rik is data scientist en marketeer bij Data Science Partners. Vanuit zijn achtergrond op de Technische Universiteit Eindhoven heeft hij veel affiniteit met data. Na zijn studie heeft hij als consultant altijd met data gewerkt en tevens ervaring opgedaan in het geven van trainingen.