Wat is PostgreSQL en wanneer kies je het?
Auteur: Redactie Domeny.ForSale Gepubliceerd
In het kort: PostgreSQL is een opensource-databasebeheersysteem dat informatie opslaat en applicaties die informatie laat lezen en wijzigen. Het is onder meer geschikt voor webshops, bedrijfssystemen en online diensten waarbij de juistheid van onderling verbonden gegevens belangrijk is. Je kunt het zonder licentiekosten gebruiken, maar het opzetten en onderhouden van de database vraagt om middelen en beheer, of om een betaalde beheerde dienst.
Wat is PostgreSQL en hoe werkt het?
PostgreSQL, ook wel Postgres genoemd, is een objectrelationeel systeem. De basis bestaat uit tabellen: geordende verzamelingen rijen en kolommen die je met elkaar kunt verbinden. Het ‘object’-gedeelte houdt onder meer in dat je eigen gegevenstypen kunt definiëren. Als beginner is het echter vooral belangrijk om tabellen en hun onderlinge relaties te begrijpen.
In de database van een webshop kan één tabel klanten bevatten, een tweede bestellingen en een derde producten. Een bestelling verwijst via een identificatienummer naar een specifieke klant. Daardoor hoef je niet bij elke aankoop alle klantgegevens te kopiëren.
Voor communicatie met de database gebruik je vooral SQL, een taal om gegevens te beschrijven en er bewerkingen op uit te voeren. Een voorbeeldquery die de namen van beschikbare producten ophaalt, kan er zo uitzien:
SELECT naam, prijs
FROM producten
WHERE voorraad > 0
ORDER BY prijs;
PostgreSQL draait meestal als een afzonderlijk serverproces. De applicatie maakt via een geschikte driver verbinding, verstuurt query’s en ontvangt resultaten. De browser van de gebruiker communiceert meestal niet rechtstreeks met de database. Dat doet de backend: het deel van de applicatie dat op de server draait.
Wat waarborgt de juistheid van gegevens?
Een van de belangrijkste functies van PostgreSQL zijn transacties: groepen bewerkingen die als één geheel worden behandeld. Als de bewerkingen niet correct kunnen worden afgerond, kun je de wijzigingen terugdraaien in plaats van gedeeltelijk opgeslagen gegevens achter te laten.
Stel dat iemand het laatste exemplaar van een product koopt. De applicatie moet een bestelling aanmaken en de voorraad verlagen. Met een transactie kun je beide wijzigingen samen vastleggen. Goed ontworpen vergrendeling of een voorwaardelijke update helpt voorkomen dat hetzelfde exemplaar aan twee klanten wordt verkocht. Een database op zich vervangt echter geen correcte applicatielogica.
PostgreSQL ondersteunt de ACID-eigenschappen: principes die zorgen voor een consistente en duurzame uitvoering van transacties. Atomiciteit betekent dat alle bewerkingen worden uitgevoerd of geen enkele. Consistentie betekent dat de vastgelegde regels voor gegevens behouden blijven. Isolatie regelt de invloed van gelijktijdige transacties op elkaar. Duurzaamheid betekent dat vastgelegde wijzigingen behouden blijven volgens de garanties die de systeemconfiguratie biedt.
Ook beperkingen die in de databasestructuur zijn vastgelegd, helpen de juistheid van gegevens te waarborgen. Je kunt afdwingen dat e-mailadressen uniek zijn, lege productnamen verbieden of een vreemde sleutel gebruiken: een regel die vereist dat een bestelling naar een bestaande klant verwijst. Deze beveiligingen werken onafhankelijk van de formulieren op de website.
Waarvoor wordt PostgreSQL gebruikt?
PostgreSQL is nuttig wanneer gegevens een bepaalde structuur hebben, met elkaar samenhangen en op verschillende manieren doorzocht moeten worden. Veelvoorkomende toepassingen zijn:
- Webshops en reserveringssystemen: producten, beschikbaarheid, bestellingen en een wijzigingsgeschiedenis.
- Bedrijfsapplicaties: klantcontacten, documenten, toegangsrechten en werkprocessen.
- Online diensten: gebruikersaccounts, abonnementen en organisatie-instellingen.
- Rapportage: gegevens uit meerdere tabellen combineren en overzichten berekenen.
Naast gewone tekst- en getalkolommen ondersteunt PostgreSQL onder meer JSONB: een opslagformaat voor JSON-documenten waarmee je de inhoud kunt doorzoeken en indexen kunt aanmaken. Dat is bijvoorbeeld handig voor het opslaan van aanvullende productkenmerken die per categorie verschillen. Het betekent echter niet dat je de hele database moet opbouwen als een verzameling documenten zonder vaste structuur.
Uitbreidingen voegen mogelijkheden aan het systeem toe. Een voorbeeld is PostGIS, waarmee je ruimtelijke gegevens kunt verwerken, bijvoorbeeld om punten te vinden die binnen een opgegeven afstand van de locatie van de gebruiker liggen.
PostgreSQL, MySQL of SQLite — wat kies je?
De keuze hangt vooral af van de eisen van de applicatie, niet van de bekendheid van de naam. Als een bestaand systeem een specifieke database vereist, raadpleeg dan eerst de officiële documentatie. Een andere database-engine gebruiken is niet altijd mogelijk zonder de software aan te passen.
| Systeem | Wanneer overwegen |
|---|---|
| PostgreSQL | De applicatie heeft uitgebreide query’s, regels voor gegevensintegriteit of uitbreidingen zoals PostGIS nodig. |
| MySQL | De gekozen applicatie vereist MySQL, of het team heeft al een ingerichte omgeving en ervaring met het beheer ervan. |
| SQLite | Gegevens moeten lokaal worden opgeslagen, zonder afzonderlijke server, bijvoorbeeld in een tool of kleine applicatie. |
MySQL ondersteunt ook transacties via de veelgebruikte InnoDB-engine, en SQLite biedt eveneens transactieondersteuning. Het zijn dus niet per definitie ‘minder veilige’ databases. De verschillen zitten onder meer in de architectuur, gelijktijdige schrijfbewerkingen, functies en het beheer. Er is niet één systeem dat in alle prestatievergelijkingen als winnaar uit de bus komt.
Hoe begin je en wat moet je onderhouden?
Om te leren heb je genoeg aan een lokale installatie van PostgreSQL en een client: een hulpmiddel om query’s te versturen. Dat kan de tekstgebaseerde psql zijn of het grafische pgAdmin. Maak een testdatabase met tabellen voor klanten en bestellingen, verbind die met een vreemde sleutel en oefen vervolgens met het lezen van gegevens en het terugdraaien van transacties.
Bij gebruik in productie moet je zorgen voor updates, toegangsrechten, back-ups en hersteltests. De toegang van de applicatie moet beperkt blijven tot de noodzakelijke bewerkingen. De databasepoort mag niet openbaar toegankelijk zijn zonder goede reden en passende beveiliging. Indexen, structuren die zoekopdrachten versnellen, stem je af op de query’s die daadwerkelijk worden uitgevoerd. Ze maken schrijfbewerkingen ook zwaarder en nemen opslagruimte in beslag.
Een beheerde dienst kan een deel van deze taken overnemen. Controleer vóór aankoop in de documentatie van de aanbieder welke versie wordt ondersteund, welke uitbreidingen beschikbaar zijn, hoeveel verbindingen zijn toegestaan, hoe back-ups worden geregeld en wat herstel kost. Begin de keuze van een database voor een concreet project door te controleren of deze compatibel is met de applicatie en vast te stellen wie verantwoordelijk wordt voor het beheer.
Zie ook: Wat betekent www?
