Relationeel vs NoSQL
Relationele database: tabellen en SQL
Een relationele database slaat gegevens op in tabellen met vaste kolommen en koppelt tabellen aan elkaar via sleutels. Je bevraagt hem met SQL. Dit model bestaat al sinds de jaren zeventig en is nog steeds het meest gebruikt bij websites en bedrijfssoftware.
Het grote voordeel is dat gegevens consistent blijven en dat je met één SQL-opdracht gegevens uit meerdere tabellen kunt combineren. Het nadeel is dat je vooraf moet nadenken over de structuur, en dat wijzigen daarvan later meer werk kan geven. Wat een tabel precies is, lees je in het artikel over tabellen, rijen en kolommen.
NoSQL: andere manieren om gegevens op te slaan
NoSQL is een verzamelnaam voor databases die niet op tabellen met vaste kolommen werken. De naam wordt vaak uitgelegd als „not only SQL”, omdat sommige NoSQL-systemen wel een eigen vorm van opvragen kennen. Er bestaan verschillende soorten:
- documentdatabases slaan gegevens op als flexibele documenten, bijvoorbeeld in een JSON-achtige structuur;
- sleutel-waardedatabases koppelen een sleutel direct aan een waarde, wat handig is voor snelle opzoekingen;
- kolomdatabases en grafendatabases zijn gericht op grote hoeveelheden gelijksoortige gegevens of op de relaties tussen gegevens.
Wanneer kies je welke?
Een relationele database past wanneer gegevens duidelijk te structureren zijn en consistentie belangrijk is, zoals bij bestellingen, boekhouding en gebruikersaccounts. Voor de meeste websites, webwinkels en CMS-systemen is dat de logische keuze.
Een NoSQL-database past beter wanneer gegevens sterk van vorm wisselen, of wanneer je grote hoeveelheden eenvoudige gegevens snel wilt wegschrijven, zoals sensordata of flexibele profielen. Let wel: bij NoSQL dwingt de database minder regels af, dus moet je de controle van gegevens vaker zelf regelen. Voor een relationele database met veel functies is PostgreSQL een veelgebruikte keuze.
Veelgestelde vragen
Is NoSQL sneller dan een relationele database?
Niet automatisch. NoSQL kan sneller zijn voor bepaalde soorten werk, zoals het wegschrijven van grote hoeveelheden eenvoudige gegevens. Voor het combineren van gegevens uit meerdere onderdelen is een relationele database vaak sneller en betrouwbaarder. Welke het snelst is, hangt af van de toepassing en de inrichting.
Betekent NoSQL dat er geen SQL meer nodig is?
Niet altijd. De naam wordt vaak uitgelegd als „not only SQL”, dus niet-alleen-SQL. Sommige NoSQL-databases hebben een eigen opvraagtaal of een SQL-achtige laag, andere niet. Het is dus geen vaste regel dat je SQL niet kunt gebruiken.