De meeste applicaties en programma’s moeten vandaag de dag ergens hun data opslaan. Voor web apps is een database dan ook een ongeloofelijk belangrijk deel van het geheel.

Er zijn een paar factoren om rekening mee te houden bij het kiezen van een database. Het belangrijkste aspect zijn misschien wel het belangrijkste aspect, maar flexibiliteit en ondersteuning van hostingproviders zijn vaak net zo cruciaal. Een opensource database is om vele redenen je beste keuze.

Een opensource database zal bijvoorbeeld je budget met rust laten, maar je vaak ook vrij laten in hoe je de software gebruikt. Net als een opensource Content Management System (CMS) zoals WordPress kunnen ook andere opensource tools enorme kracht en functionaliteit leveren. Sterker nog, enkele van de meest populaire (en ondersteunde) databases zijn opensource oplossingen.

Laten we eens kijken naar verschillende opensource databasesoftware en een paar verschillende “smaken” bekijken.

Bekijk onze videogids voor de beste open source databasesoftware

Een introductie tot opensource databasesoftware

Een database is een backend opslag voor een applicatie, zoals bijvoorbeeld een web app (wat het primaire app type is waarnaar we in dit stuk zullen verwijzen). De database zelf zal op je server staan, samen met de andere backend elementen zoals de kernbestanden van je site, alle media die je gebruikt en de serverconfiguratie bestanden.

In algemene zin is de database een van de eindpunten voor je site. Bijvoorbeeld:

  • De pagina’s van je site zullen HTML en PHP gebruiken om met de server te praten.
  • De server zal namens jou toegang krijgen tot de database (een naadloos proces), gegevens ophalen of pushen en deze terugsturen naar de frontend.
  • Je site zal de content weergeven of bijwerken op basis van de database.

Het is een fundamenteel stukje technologie voor je site en server. Als zodanig wil je zoveel mogelijk flexibiliteit in, en kennis van je database hebben.

Dit brengt je eerste overweging naar voren: of je kiest voor een opensource database of een eigen database.

Een opensource database wordt voor 100% aan je ter beschikking gesteld en je hebt dus volledig overzicht en controle over de codebase en potentieel. Daarentegen zal een volledig gesloten zakelijke oplossing niet hetzelfde niveau van diepte of flexibiliteit bieden, tenzij de ontwikkelaar ervoor kiest om dit in te schakelen.

Sommige databases werken op een “source-available” basis, zoals MongoDB:

Het MongoDB logo.
Het MongoDB logo.

Dit vormt een uitstekende middenweg voor sommige ontwikkelaars. Er zijn veel fans van de “NoSQL” database, maar die fans zullen nog steeds beperkingen ondervinden in hoe ze een source-available of closed source database kunnen gebruiken. Aan de andere kant zal een opensource optie beter aan je behoeften kunnen worden aangepast.

Hoe (en waar) een opensource database wordt gebruikt

Het is goed te weten dat het licentietype het niet per se beperkt tot de applicaties waarvoor je het kunt gebruiken. Toch heeft een opensource database een paar verschillende use cases die goed aansluiten bij de licentie:

  • WordPress: WordPress’ opensource core werkt goed met een opensource database, vooral vanwege het ontbreken van beperkingen. Dit betekent dat je een krachtige en op maat gemaakte applicatie kunt maken voor jouw behoeften, vooral wanneer je met de REST API werkt.
  • Key-value storage: Je zult merken dat key-value storage een zware taak is die soms de behendigheid van een deskundige developer nodig heeft bij het optimaliseren ervan. Met een opensource databaseoplossing kan een ontwikkelaar in de code graven en die aanpassingen tot in de perfectie verfijnen.
  • Nichetechnologieën: Veel technologische applicaties profiteren van andere opensource tools zoals databases. Artificial intelligence (AI), grafieken en verschillende niches kunnen werken met een opensource database, net zoals WordPress (zonder beperking) kan. En ze kunnen gebruik maken van de flexibiliteit van de database zelf.
  • Data science: Data science is een ander gebied waar een opensource database goed werkt. Nogmaals, populaire talen op dit gebied, zoals Python en R, werken het beste met MySQL, MariaDB en MongoDB, maar minder met zakelijke oplossingen.
  • Gegevensopslag: Een opensource database kan veiliger zijn dan een zakelijke database (vanwege de zichtbare codebase), dus het is ook geschikt voor privacygerichte gegevensopslag. Dit wordt verbeterd wanneer je de database combineert met andere op privacy gerichte oplossingen, wat zorgt voor een opmerkelijk veilige installatie die schaalbaar is – tegen lage kosten.

De rode draad die door al deze use cases heen loopt, is dat een opensource database weinig beperkingen biedt. Hierdoor kun je de kracht van de databasesoftware benutten en aanpassen aan jouw behoeften.

Dit brengt ons bij waarom het gebruik van een opensource database goed voor jou zou kunnen werken.

Waarom je een opensource database wilt gebruiken

Natuurlijk is een database op zich een essentieel onderdeel van elke webapp. Het zou een uitdaging zijn om iets nuttigs te maken zonder. Het is echter mogelijk dat je de directe voordelen niet ziet bij het kiezen van een opensource database.

Je zult merken dat je een opensource database zou gebruiken om dezelfde redenen als je zou kiezen voor een opensource CMS zoals WordPress. Bijvoorbeeld:

  • De informatie die je in de database bewaart is van jou, zonder compromis of beperking.
  • Je kunt bovenop de databasesoftware bouwen, net zoals WordPress. Dit opent bijna oneindige mogelijkheden voor wat je kunt bereiken en biedt spannende opties.
  • Een opensource database is een geweldige manier om een app en bedrijf op te schalen en te laten groeien zonder dat je je zorgen hoeft te maken over licenties of hogere aanschafkosten. Je kunt je focussen op het voor jou laten werken van de database in plaats van het bestrijden van licenties.

Op dit punt kun je waarschijnlijk zien hoe een opensource database de winnaar is boven propriëtaire of andere source-available oplossingen. Laten we, met dit in gedachten, ingaan op enkele van de beste opties op de markt.

Het beste in opensource databasesoftware: 10 voorbeelden

De volgende lijst bevat enkele opensource databases, maar deze is niet compleet. Er zullen veel meer opties zijn dan we ooit zouden kunnen opnemen in onze lijst, dus we hebben onze topkeuzes samengesteld.

Onze eerste vermelding is misschien wel de meest prominente optie voor een opensource database, dus laten we daar beginnen.

1. MySQL

Als je even de tijd neemt om databases voor apps op te zoeken, zal MySQL bovenaan veel lijsten staan. Het is in deze lijst hetzelfde omdat het lange tijd een standaardoptie was voor veel ontwikkelaars.

Het MySQL logo.
Het MySQL logo.

Oracle ontwikkelde het als een relationeel database management systeem (RDMS). Dit betekent dat je tabellen gebruikt om gegevens op te slaan, en die opgeslagen gegevenstypen kunnen op de een of andere manier worden gekoppeld.

De kern van MySQL was om een ouder (maar populair) eigen databasesysteem als startpunt te nemen, de meeste compatibiliteit te behouden en de resultaten opensource te maken. Omdat ontwikkelaars ernaar kunnen overstappen zonder MySQL opnieuw te leren, is het al tientallen jaren een hoofdbestanddeel binnen app development.

Veel van de functionaliteit die je in veel databases aantreft, weerspiegelt MySQL of ervan afgeleid. Je gebruikt bijvoorbeeld Structured Query Language (SQL) om relationeel met de database te werken en gebruikt bijna elke programmeertaal om verbinding te maken met de database zelf.

Je hoeft niet veel te weten over SQL om MySQL te gebruiken, en de leercurve is niet steil. Je kunt werken met de database vanaf de opdrachtregel, en MySQL heeft een hoge compatibiliteit met bijna elk besturingssysteem (OS) die je zult gebruiken.

Over het algemeen is MySQL geweldig voor de meeste use cases, omdat het een solide, snel en betrouwbaar manusje van alles is. Vanwege deze reden en de positionering ten opzichte van andere oplossingen door de jaren heen, zullen de meeste hosts MySQL databases ondersteunen. Er zijn echter ook een paar nadelen waarmee je rekening moet houden:

  • Hoewel MySQL in de meeste gevallen efficiënt is, kan het langzamer zijn voor grote databasegrootten.
  • Bovendien kunnen de debuggingstools verbeteren in vergelijking met andere (zelfs zakelijke) oplossingen.
  • Er zijn gevallen van gegevenscorruptie, hoewel het geen ernstig probleem is.

Het is moeilijk om te veel minpunten te noemen, omdat MySQL over het algemeen een solide en betrouwbare database is die geschikt wordt voor de meeste applicaties. Sommige gebruikers kijken echter naar andere producten om redenen die we hierna zullen bespreken.

2. MariaDB

Hoewel Oracle MySQL op het moment van schrijven bezit en het deze nog steeds aanbiedt als een opensource oplossing, is zijn reputatie niet als een opensource pleitbezorger. Toen de overname plaatsvond, heeft een van de oprichters MySQL afgesplitst om MariaDB te maken:

Het MariaDB logo.
Het MariaDB logo.

Het is een opensource database die we ondersteunen bij Kinsta, en het is ook een optie binnen DevKinsta:

Het kiezen van MariaDB binnen DevKinsta.
Het kiezen van MariaDB binnen DevKinsta.

Omdat het een afsplitsing van MySQL is, is de compatibiliteit bijna 1:1. De ontwikkelaars van MariaDB houden er ook van om compatibiliteit dicht bij de afsplitsing te houden. Als zodanig kun je MariaDB gebruiken als een “drop-in” vervanging voor MySQL met bijna geen gevolgen en er zonder gedoe naartoe migreren.

Hoewel MariaDB een afsplitsing van MySQL is, lijkt het nog steeds zijn pad te banen. Er zijn een paar unieke kenmerken van de opensource database die je moet kennen:

  • MariaDB gebruikt de Aria opslag-engine om complexe SQL query’s af te handelen. Dit geeft de database een snelheidsboost ten opzichte van MySQL.
  • Je kunt dynamische rijen gebruiken voor tabelkolommen, wat de flexibiliteit en het aanpassingsvermogen ten goede komt.
  • Er zijn enkele gespecialiseerde opslag engines voor specifieke use cases die je niet in MySQL zult vinden. Je kunt bijvoorbeeld gedistribueerde opslag, gedistribueerde transacties en nog veel meer implementeren.

Vanwege de nauwe compatibiliteit kun je MariaDB overal waar je MySQL gebruikt zonder veel in te boeten gebruiken. Als zodanig kun je het beschouwen als “alles voor alle apps”, net als zijn afsplitsing. Het is echter vermeldenswaard dat de compatibiliteit maar één kant op is, dus je moet een kant kiezen: MySQL of MariaDB. Deze opensource database dwingt loyaliteit af!

3. PostgreSQL

Als alles wat je kent PHP en WordPress is, weet je waarschijnlijk niet veel over PostgreSQL. Het is echter een relationele, opensource database die veel ontwikkelaars gebruiken in de datawetenschaps-, grafische en AI-industrie, omdat het ideaal is voor Python en Ruby applicaties (hoewel je ook PHP zou kunnen gebruiken).

Het PostgreSQL logo.
Het PostgreSQL logo.

Vergeleken met de robuuste spijkerbroekstof van MySQL lijkt PostgreSQL meer op fijne zijde omdat het een doordachte, opensource database is die veel geweldige features biedt:

  • Je kunt asynchrone replicatie implementeren.
  • Er is ingebouwde ondersteuning voor documentopslag in JSON stijl, key-value storage en XML.
  • Je kunt full-text zoeken in je database.
  • Verschillende ingebouwde gegevenstypen zijn van onschatbare waarde voor sommige applicaties, zoals geolocatie, arrays en bereiken.

Toch wil je voorzichtig omgaan met PostgreSQL, omdat het niet zo geschikt is als andere oplossingen voor read-heavy applicaties. Als je regelmatig rapporten van bestaande gegevens moet maken, kan de documentopslag van PostgreSQL te lijden hebben onder zo’n grote gegevensset.

Ditzelfde documentopslagmodel is echter ideaal als je functionaliteit in NoSQL stijl op hybride basis wilt opnemen De native ondersteuning voor key-value en documentopslag bespaart je tijd waardoor je snel vooruitgang kunt boeken met een project.

4. Redis

Redis verschilt van de rest van de opensource databases op deze lijst, omdat je het bijna voor geen enkele van dezelfde applicaties kunt gebruiken.

Het Redis logo.
Het Redis logo.

Het is een database waarmee je gegevens kunt structureren als key-value paren. Je zult merken dat dit vergelijkbaar is met associatieve arrays in PHP of woordenboeken in Python – het is een manier om gegevens te koppelen om er later snel naar te verwijzen:

<?php
$type = array("Charmander"=>"fiery", "Squirtle"=>"soggy", "Snorlax"=>"sleepy");
echo "Snorlax is " . $type['Snorlax'] . " all the time.";
?>

“Snelheid” is hier de cruciale term omdat Redis een go-to database is voor caching. Hier zijn een paar redenen voor:

  • Redis is een “in-memory” opslagoplossing – volledig in RAM – wat betekent dat de lees-schrijfsnelheden razendsnel zijn.
  • Binnen een paar minuten leer je de basis van Redis en kun je direct beginnen met het opslaan van objecten.
  • Je kunt vervaltijden instellen voor strings, wat een cruciaal onderdeel is van caching.
  • Een nieuwe Pub/Sub feature gebruikt Redis als buffer voor berichten tussen een afzender en ontvanger. In plaats van dat deze eindpunten een directe verbinding maken, zal een afzender posten naar een speciaal Redis “kanaal”, dat het vervolgens naar de ontvanger verplaatst (en vice versa).

Dit alles betekent dat Redis geweldig is voor gedistribueerde gegevens en het implementeren van caching. Het zal niet de beste zijn voor complexere applicaties, maar dit behoort niet tot zijn taak. In plaats daarvan gebruik je het naast een andere database zoals MariaDB om het de rest van je app te laten ondersteunen.

5. SQLite

Voor deze relationele opensource database zit de sleutel tot het belangrijkste verkoopargument in de naam: SQLite is een kleine, lichtgewicht bibliotheek die een database-engine biedt.

Het SQLITE logo.
Het SQLITE logo.

Je vindt deze database vaak in kleinere apparaten zoals smartphones omdat het zo licht van gewicht is. In feite bestaat de hele database uit één <code>.sqlite</code> bestand dat overal op je systeem kan staan. Je hoeft geen serversoftware te installeren of verbinding te maken met andere services om SQLite te gebruiken.

Ondanks dat de database zo’n lichtgewicht tool is, kun je nog steeds een databasegrootte hebben van honderden terabytes, met een maximale rijgrootte van een gigabyte. Zelfs met zulke grote bestanden blijft SQLite snel.

Je zult merken dat er veel goede use cases zijn om SQLite als je database te gebruiken:

  • Ontwikkelaars van eenvoudige apps zullen SQLite waarderen omdat het een no-nonsense, directe oplossing is.
  • Het is geschikt voor Internet of Things (IoT) applicaties waar geen systeembeheerder of ontwikkelaar klaar staat (of klaar kan staan).
  • SQLite kan geschikt zijn voor websites met weinig verkeer, omdat die behoeften eenvoudig zijn.
  • Hoewel we het hier vooral over web-apps hebben, kunnen desktop apps ook SQLite gebruiken om de prestaties hoog te houden.

Gezien de structuur van SQLite zal het niet zo goed werken voor sites met veel verkeer, omdat de prestaties niet optimaal zullen zijn. Bovendien ontbreken er een paar features in deze lichtere opensource database die belangrijk kunnen zijn. Je kunt de database bijvoorbeeld niet opvragen met een client zoals MySQL of MariaDB.

6. Neo4j

De meeste opensource databases op deze lijst zijn relationeel. Voor de verandering is Neo4j op grafieken gebaseerd.

Het Neo4j logo.
Het Neo4j logo.

Dit is fantastisch voor enkele van de modernere web apps die je vandaag de dag tegenkomt. Neo4j is zo ongeveer de enige oplossing die je zult vinden voor het implementeren van een op grafieken gebaseerde database (tot dusver).

Gegevens worden over het algemeen niet netjes aangeleverd in een geordende reeks tabellen, rijen en kolommen. Dit wordt geregeld via relationele databases. Het is echter moeilijk om met SQL de organische connectiviteit te repliceren voor moderne web apps, zoals sociale netwerken. Dit is is ongestructureerd, waardoor het het tegenovergestelde is van SQL.

Hierdoor is Neo4j een unieke database voor bijna elke applicatie die het aankan, en biedt het veel voordelen:

  • Het is fantastisch om tabelgegevens in grafieken om te zetten en de resulterende analyses te ondersteunen.
  • Neo4j is ook geweldig voor transactionele applicaties.
  • Er is een speciale querytaal (Cypher) om je te helpen gegevens te bereiken en er optimaal mee te werken.

Prestaties kunnen echter een probleem zijn vanwege de manier waarop de database is gestructureerd. Je kunt bijvoorbeeld alleen “hash indexen” gebruiken om gegevens te sorteren, in tegenstelling tot de bereikindexen van andere oplossingen. Dit kan je systeembronnen belasten en de prestaties beïnvloeden.

Als je echter een op grafieken gebaseerde database wilt implementeren, kan Neo4j aan jouw behoeften voldoen. Het is een eersteklas opensource database, op voorwaarde dat je het gebruikt zoals het bedoeld is.

7. OrientDB

We zeiden dat er “zo ongeveer” geen andere op grafieken gebaseerde opensource databases waren, maar dit laat wat ruimte over voor anderen. OrientDB is daar een van. Hoewel het in de loop der jaren van eigenaar is veranderd, blijft het een uitstekende manier om een op grafieken gebaseerde database voor je web app te implementeren.

Het OrientDB logo.
Het OrientDB logo.

OrientDB kan verschillende modellen gebruiken, zoals objecten, grafieken, documenten en key-values. Toch wordt het geclassificeerd als een NoSQL oplossing en zijn er directe verbindingen met records, dus de kern ervan is een op grafieken gebaseerde database.

Het belangrijkste voordeel van OrientDB is de flexibiliteit en schaalbaarheid. Net als Neo4j is het snel, maar er zijn kanttekeningen te plaatsen bij de prestaties. OrientDB is echter flexibeler en ontwikkelt andere indexeringsmechanismen om gebruikers te helpen.

Je zult merken dat OrientDB net zo capabel is als Neo4j voor dezelfde reeks toepassingen, bijvoorbeeld sociaal netwerken, bankieren en financiën, verkeersbeheer en meer.

8. CouchDB

Apache — het servertype — ontwikkelt ook CouchDB. Net als SQLite is dit een kleine, onopvallende opensource database die een workhouse oplossing is voor talloze projecten.

De CouchDB website.
De CouchDB website.

De focus van deze opensource database is betrouwbaarheid. Het idee is dat gegevens zich in een cluster van meerdere gedistribueerde nodes bevinden. Sommige van deze nodes zullen offline zijn en ze zullen gegevens “vasthouden” totdat ze weer online zijn. De volledige gegevens worden vervolgens naar het cluster gevoerd en gedistribueerd naar de andere nodes in het netwerk.

Om dit verder uit te leggen, stel je een database voor, die gegenereerde gegevens op een mobiel apparaat bevat. Er is geen garantie dat dit apparaat toegang krijgt tot een online verbinding, dus de gegevens blijven daar totdat het “knooppunt” weer online is.

Daarom is CouchDB een door en door geharde en betrouwbare database die een belangrijke overweging zou moeten zijn als je offline tolerantie nodig hebt.

Dat gezegd hebbende, het belangrijkste positieve van CouchDB is ook het nadeel. Het moet redundante kopieën van gegevens opslaan, waardoor de bestandsgrootte groter wordt. Bovendien zul je merken dat de schrijfsnelheden niet snel zijn, dus het is niet geschikt voor gevallen waarin snel moet worden gereageerd.

Als een offline-first opensource database die is ontworpen voor betrouwbaarheid, is CouchDB echter een koploper voor apps die bij dit plaatje passen.

9. FirebirdSQL

FirebirdSQL is niet zo bekend als andere databases op deze lijst, maar het kan een cruciale rol spelen in specifieke scenario’s.

Het FirebirdSQL logo.
Het FirebirdSQL logo.

Je zult merken dat FirebirdSQL bijna allemaal dezelfde features en functionaliteit heeft als andere op SQL gebaseerde databases, en dat het volledige compatibiliteit biedt met MySQL. Dit is waarschijnlijk de reden waarom je niet veel voorstanders van de database zult vinden – er zijn te veel overeenkomsten met andere platforms. Het kan echter op verschillende manieren op zichzelf staan:

  • Het biedt een kleine voetafdruk, wat handig is waar de ruimte belangrijk is.
  • Je kunt FirebirdSQL gebruiken als database voor een desktop app die moet worden geschaald, zoals LibreOffice.
  • De database is platformonafhankelijk en heeft weinig hardware nodig. Dit maakt het een solide oplossing wanneer je grote databases moet uitvoeren.

Er zijn ook spraakmakende gebruikers van FirebirdSQL, zoals National Rail in het VK. Ondanks de prevalentie van andere oplossingen, zou FirebirdSQL kunnen werken als een lichtgewicht maar krachtige opensource database voor jouw project.

10. BigchainDB

We geven je één keer raden in welke branche en applicatie BigchainDB lijkt uit te blinken! Deze opensource oplossing vereist een gedistribueerde database en combineert blockchaintechnologie om de ervaring te verbeteren.

Het BigchainDB logo.
Het BigchainDB logo.

Net als de belangrijkste elementen van blockchain, gebruikt BigchainDB onveranderlijkheid, decentralisatie en “multiassets” om je te helpen bij het beheren van gegevens.

Je kunt je netwerk aanpassen op basis van uitgebreide machtigingsinstellingen, aangepaste middelen en meer. De database kan ook werken met gedecentraliseerde instellingen, hoewel op beveiliging of privacy gerichte applicaties de beste use cases bieden.

Je zult bijvoorbeeld merken dat het een geweldige bondgenoot is bij het behouden van intellectuele eigendomsrechten (IP) en het verifiëren van gebruikersreferenties. Je zult daarentegen merken dat BigchainDB niet geschikt is voor meer typische applicaties en inderdaad overkill kan zijn voor veel web apps.

Net als Neo4j of OrientDB, zul je blij zijn als je een strikte use case hebt en BigchainDB nodig hebt. Het kan tal van unieke facetten toevoegen aan je op privacy gerichte webapplicatie, dus het zou naast je centrale opensource database kunnen werken om je aanbod te verbeteren.

Samenvatting

Als je een app in welke vorm dan ook wilt maken, is een database noodzakelijk. Web apps hebben ten minste één database nodig. Mogelijk heb je er meerdere nodig om alle gegevens te bevatten die je voor verschillende use cases verwerkt.

Hoewel er veel databases zijn met verschillende licentietypen, is een opensource database in de meeste gevallen de beste keuze.

Net als opensource oplossingen zoals WordPress, biedt een opensource database je flexibiliteit, schaalbaarheid en beveiliging op kernniveau. Sterker nog, tools zoals MySQL, MariaDB, PostgreSQL en Redis zijn allemaal opensource, populair en worden door veel webhosts ondersteund.

Heb je een favoriete opensource database uit deze lijst? Laat ons weten waarom dit jouw keuze is in de comments hieronder!

Salman Ravoof

Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.