NoSQL-databases maken geen gebruik van het relationele tabelmodel. Deze categorie omvat documentdatabases, key-value-databases, grafdatabases en wide-column-databases. Elk type database lost een ander probleem op. Documentdatabases zoals MongoDB bewaren records in JSON-achtige vorm. Key-value-databases zoals Redis koppelen sleutels aan waarden voor snelle zoekopdrachten. Grafdatabases zoals Neo4j modelleren relaties tussen entiteiten. Wide-column-databases zoals Cassandra verwerken enorme schrijfvolumes over gedistribueerde knooppunten. De rode draad is flexibiliteit. NoSQL-databases versoepelen de schema-beperkingen die relationele databases opleggen.
Die flexibiliteit is zowel aantrekkelijk als risicovol. Een documentdatabase accepteert records met verschillende velden. Daardoor is het eenvoudig om het datamodel te ontwikkelen zonder migraties. Het maakt het echter ook gemakkelijk om inconsistente data te creëren. De applicatie moet regels afdwingen die de database zelf niet hanteert. NoSQL-databases schalen bovendien gemakkelijker horizontaal dan traditionele relationele systemen. Ze verdelen data over meerdere servers, wat hoge verkeersbelastingen en grote datasets aankan. De keerzijde is consistentie. Veel NoSQL-databases bieden uiteindelijke consistentie in plaats van sterke consistentie. Verschillende knooppunten kunnen gedurende korte tijd verschillende waarden zien. Dat is acceptabel voor een socialmediafeed, maar niet voor een banksaldo. De juiste keuze hangt af van de data en de garanties die de applicatie nodig heeft.
NoSQL-databasetypen
- Document — JSON-achtige records, flexibel schema
- Sleutel-waardeparen — eenvoudige paren, snelle zoekopdrachten
- Graaf — knooppunten en relaties
- Brede kolom — gedistribueerd, hoge schrijfsnelheid
- Tijdreeksen — geoptimaliseerd voor gegevens met tijdstempels
NoSQL is niet beter dan SQL. Het is anders. De juiste tool hangt af van het probleem.
Comments
No comments yet. Be the first to share a thought.
Leave a comment