Wat is een relationele database?
Dit is een database die gegevens met een verbindingspunt ertussen opslaat en levert. Met behulp van tabellen worden gegevens dan met elkaar verbonden: dit heet een relationeel model.

Definitie van een relationele database
Relationele Database Management Systemen (RDBMS) zijn het meest voorkomende model op de markt. Veel webservices en bedrijfsapplicaties werken met dit type databases om hun gegevens te structureren en er essentiële informatie uit te halen. Sommige grote cloudbedrijven hebben hun eigen modellen ontwikkeld (bijvoorbeeld Db2 als eigendom van IBM, Oracle Database en Microsoft SQL Server). Veel van de RDBMS-projecten behoren echter tot de open source:
- MySQL is het meest gebruikte systeem ter wereld. Hoewel het in 2009 door Oracle is overgenomen, was het van oorsprong een gratis en vrij te gebruiken project. Als gevolg van deze overname hebben ontwikkelaars een volgend systeem gemaakt dat nog steeds opensource is: MariaDB;
- PostgreSQL is ook een vrij toegankelijke oplossing. De ontwikkeling ervan wordt verzorgd door een team van onafhankelijke ontwikkelaars. Het werkt iets anders dan MySQL, omdat het een object-relationeel (ORDBMS) model is;
- SQLite is een publieke library die het specifieke kenmerk heeft dat het direct in een programma wordt gehost, niet in client-servermodus.
Het acroniem SQL is afgeleid van de taal met die naam: Structured Query Language. Dit is de standaardinterface voor een relationele database. De instructies van deze taal worden gebruikt om de gegevens te structureren en de gewenste informatie te organiseren.
Architectuur van een relationele database
De organisatie van deze databases is gebaseerd op de stelling die Edgar F. Codd in 1971 bewees: het relationele model. Zijn stelling bepaalt dat elk "natuurlijk" verzoek vertaald kan worden in relationele algebra en dus in een query-taal die een computer begrijpen kan (via SQL). In dit model bestaat een relatie (of een tabel) uit meerdere attributen die in meerdere rijen en kolommen zijn gerangschikt, zogenaamde tupels. De hele tabel wordt gezien als een verzameling tupels. Neem het volgende voorbeeld:

Elk element in de relatie wordt als volgt gekoppeld aan een gegevenstype (waarde) door een relatieschema:
Relatie = (Attribuut1: Type1, Attribuut2: Type2 ,… , Attribuutn: Typen)
Zo kunnen we een bepaald element definiëren en het de waarden van een tupel geven om de tabel samen te stellen. Een relationele database is dus niets anders dan een verzameling van verschillende tabellen waartussen relaties worden gelegd.
Hoe werkt een relationele database?
Om deze databases te beheren, communiceren de gebruikers met de beheerinterface via een taal: SQL. Deze is gebaseerd op relationele algebra. Alle opdrachten worden in SQL gegeven en beschrijven de details van elke stap in de ontwikkeling van de database. Met deze taal kunt u de gewenste gegevens selecteren, de locatie ervan in de database aangeven, ze laten interageren, en nog veel meer.
Dit zijn de belangrijkste kenmerken.
Sleutels
Dit is een set attributen die een specifieke gegevensset identificeren. Laten we bijvoorbeeld de tabel hierboven gebruiken: A1 + A2 kan bepalen welke klanten in de tweede helft van het jaar een nieuwe auto hebben gekocht, waarbij A1 de koop van het voertuig en A2 de aankoopperiode registreert. Geen van de geselecteerde attributen kan echter onbepaald zijn. Anders bestaat de combinatie niet. Elke tabel heeft een primaire sleutel die geëxporteerd kan worden naar een andere tabel (als vreemde sleutel) om datasets te koppelen.
Als twee tabellen zijn gekoppeld door middel van vreemde sleutels, kunnen ze echter nog steeds maar één verzoek beantwoorden. Als u informatie wilt kunnen ophalen waarbij meerdere tabellen betrokken zijn, dan moet u de functie JOIN gebruiken.
JOIN
Met deze bewerking kan men in meerdere tabellen tegelijk zoeken. De geselecteerde gegevens worden verzameld en gefilterd op basis van de door de gebruiker gedefinieerde voorwaarden.
De SQL-functie JOIN is een essentieel hulpmiddel bij databases met meerdere tabellen om bruikbare en hoogwaardige informatie te kunnen genereren.
Er zijn drie belangrijke soorten JOIN:
- INNER JOIN;
- OUTER JOIN;
- SELF JOIN.
Tabellen met gegevens worden zelden afzonderlijk benut. We zijn vooral geïnteresseerd in een verzameling van gegevens, die verdeeld zijn over verschillende tabellen en samen een precieze betekenis hebben. Daartoe moeten de gegevens vooraf genormaliseerd worden.
Normalisatie
Voor het tegelijk opvragen van gegevens uit meerdere tabellen zouden logischerwijs meerdere verzoeken aan de diverse tabellen moeten worden gericht. Dit kost echter tijd, is niet praktisch en kan dubbele resultaten opleveren. Dit kan de verwerking van de gegevens beïnvloeden.
Hiervoor is normalisatie belangrijk. Als u de gerelateerde gegevens verwerkt door de datasets te doorzoeken die gekoppeld zijn met de eerder vermelde vreemde sleutels, dan kunt u één enkel verzoek uitvoeren.
Verschillen met andere databasemodellen
Niet alle databases zijn gebaseerd op dit tabelmodel. Ze kunnen delen ervan overnemen, maar hebben eigen kenmerken. In de jaren tachtig ontstond het objectgeoriënteerde model. Dit veranderde de manier waarop informatie werd opgeslagen volledig. In de jaren 2000 werd het NoSQL-model geïntroduceerd. Dit bood juist een alternatief voor het relationele databasemodel. Het doel was om praktischere databases te ontwikkelen voor geavanceerde analyses, zoals big data. Al deze modellen hebben eigen kenmerken en voordelen.
Objectgeoriënteerde database
Hiermee kunt u gegevens opslaan als objecten. Onder "object" wordt een groep gegevens verstaan waarbij ook de interface is gedefinieerd om deze informatie te gebruiken.
Het ODBMS-systeem wijst automatisch een identificatiecode (ID) toe aan elk object. Hiermee kan het object op verschillende manieren benaderd worden. Het belangrijkste verschil met de relationele database is dat twee afzonderlijke objecten met dezelfde waarden andere ID’s kunnen hebben. Dat kan niet bij een tupel, die alleen geïdentificeerd kan worden door een waarde.
Ze hebben ook hun eigen taal: OQL (Object Query Language).
Documentgeoriënteerde database
De opslag in deze databases wijkt volledig af van het relationele model. Het is gebaseerd op heterogene gegevens van afzonderlijk verwerkte documenten (en niet meer in tabellen). Dit kan variëren van tekstdocumenten in JSON, YAML of XML tot ongestructureerde gegevens, zoals bestanden met afbeeldingen, video's of audio.
Deze documenten worden opgeslagen als combinaties van sleutel en waarde. Let op: hier is het begrip sleutel hetzelfde als een attribuut. Het heeft dus niets te maken met de sleutels van de relationele database.
Men kan allerlei documenten in verzamelingen groeperen. Daarmee kunnen ze worden geclassificeerd. Query's voor het manipuleren van documentgeoriënteerde databases nemen de vorm van functies, bijvoorbeeld in JavaScript. Deze database is dus bijzonder geschikt voor het beheer van grote hoeveelheden informatie.
Voordelen en nadelen van relationele databases
Hoewel relationele databases verreweg het meest worden gebruikt, hebben ze ook hun beperkingen. Wat de basis vormt voor hun kracht maakt, kan ook hun zwakheid zijn bij bepaalde soorten data (bijvoorbeeld grote hoeveelheden, multimedia, objecten).
De voordelen
- Het model met tabellen: het is heel eenvoudig op te stellen. Het toont snel en eenvoudig klantgegevens of voorraden.
- Lage redundantie van gegevens: met normalisatie voorkomt u dat er fouten worden geïntroduceerd in de informatie die u met uw database verwerkt en wordt de consistentie verbeterd.
- Verwerking van kwantitatieve gegevens: hiermee kunt u waarden aan attributen koppelen.
- Standaardtaal voor query’s (SQL): de applicaties kunnen binnen verschillende webprojecten worden ontwikkeld en uitgevoerd en bieden een betere compatibiliteit.
De nadelen
- Niet alle gegevens kunnen worden weergegeven in tabellen: abstracte en ongestructureerde gegevens zijn niet geschikt voor een relationele database.
- De gegevens kunnen niet hiërarchisch worden gerangschikt: in tegenstelling tot objectgeoriënteerde databases. Daarom kunt u uw analyses niet specifieker maken met bijvoorbeeld subtupels of een bepaalde klasse tupel.
- Gegevenssegmentatie: als gevolg van de normalisatie zijn de gegevens op allerlei plekken opgeslagen. Dit leidt in de applicatie tot complexe query's op meerdere tabellen. Dit grote aantal gelijktijdige verzoeken aan meerdere tabellen vermindert de prestaties bij analyses en verhoogt de rekentijd.
In het algemeen zijn het de populairste databases ter wereld. Ze zijn echter niet geschikt voor heterogene gegevens of bepaalde toepassingsgebieden, zoals big data.
Relationele databases bij OVHcloud
We bieden een breed scala aan databases aan. Daarin zijn twee relationele modellen beschikbaar:
- MySQL: de leider van de relationele databases. U kunt het ook krijgen in een "managed" modus, waardoor u geen beheer en monitoring van uw database meer hoeft te doen;
- PostgreSQL: dit is een relationeel databasemodel dat in staat is om grote workloads te verwerken. Het is ook beschikbaar in een “managed” modus;
- We bieden ook private SQL-databases zoals MariaDB aan voor uw webhosting.
U kunt al onze gemanagede databases bekijken, die ontworpen zijn voor een gemakkelijk en volledig veilig beheer van uw gegevens. Al deze databases worden in onze datacenters gehost en hebben hoge veiligheidsstandaarden. Zo garanderen we de soevereiniteit en vertrouwelijkheid van uw gegevens.