NoSQL

META Nummer 2018/3

NoSQL

Geschreven door Nastasia Vanderperren
Gepubliceerd op 09.04.2018

De SQL in NoSQL staat voor Structured Query Language, een taal waarmee je data in relationele databanken bevraagt, bewerkt en aanmaakt. NoSQL staat voor geen SQL of not only SQL en omvat een diverse familie niet-relationele databanken. Een relationele databank zoals MariaDB of MySQL beschrijft zaken in tabellen die met kruisverwijzingen — de relaties — aan elkaar gekoppeld zijn. Hoe complexer je datastructuur, hoe meer tabellen nodig zijn om data in de oorspronkelijke vorm op te nemen. Dit maakt relationele databanken minder geschikt om complexe, fragmentaire data te beheren. Data moeten eerst geherstructureerd worden, wat tijd en inhoudelijke compromissen vraagt.

NoSQL databanken bestaan al even lang als relationele databanken, maar werden pas echt populair met de opkomst van het semantische web en big data. Ze zijn namelijk veel beter met rommelige data want ze hebben geen vooraf vastgelegde datastructuur nodig. Er zijn voor ons drie belangrijke soorten NoSQL databanken.

Key-value stores

Dit zijn de eenvoudigste databanken. Informatie wordt bewaard als een lijst met id’s, bv. het ISBN-nummer 9789463187367, en waardes, bv. het boek Het Archief. Informatie terugvinden gebeurt via het opzoeken van de id.

Key-value stores zoals Redis worden vooral gebruikt om vluchtige informatie, bv. de inhoud van je winkelkarretje in een webwinkel, snel terug te vinden. Het zijn erg performante databanken, maar voor archiefinventarissen zijn ze te beperkt. Je kunt geen relaties tussen data leggen.

Document stores

Document stores kunnen wel relaties leggen. Alle data over een object worden in één document bewaard, zonder dat ze gesplitst moeten worden in verschillende tabellen. Zo’n document bestaat uit een verzameling van hiërarchisch geneste key-value paren — waarbij de key de attribuutnaam is (titel) en de value de waarde (Het Archief) — die de datastructuur weergeven. Door verschillende van die key-value paren in één document te plaatsen, kun je alle metadata over één boek of één archief in één document steken.

Document stores zoals MongoDB hebben dus geen vooraf gedefinieerde datastructuur nodig. Elk document in de databank kan zijn eigen structuur hebben en alle keys zijn afzonderlijk doorzoekbaar. Dat maakt ze erg geschikt om fragmentaire data goed doorzoekbaar te maken.

Graph stores

Een graph store is een databank die data opslaat als knopen en bogen. De knoop is het object, de boog is de relatie die twee of meer objecten met elkaar verbindt. De relatie tussen objecten is even belangrijk als de objecten zelf. Dit is een heel krachtig instrument om de betekenis van je data semantisch correct weer te geven. Het is ook een flexibel instrument omdat je eenvoudig nieuwe concepten en relaties kunt toevoegen.

Graph stores zoals Neo4j zijn erg geschikt om de betekenis en rijkdom van je data te behouden, maar ze vereisen wel een mapping van je data naar het systeem van knopen en bogen. Je zult dus betekenisvolle relaties moeten definiëren tussen de verschillende data, zodat je later op basis van die relaties zoekvragen kunt stellen aan je databank.

Besluit

NoSQL databanken zijn dus beter geschikt om rijke, gefragmenteerde data efficiënt doorzoekbaar te maken. Naargelang je noden kies je voor een key-value, document of graph store. Een nadeel is het ontbreken van een universele zoektaal zoals SQL voor relationele databanken. Elke NoSQL databank heeft immers zijn eigen zoektaal.

>    www.projectcest.be/wiki/software

Waarom lid van de VVBAD worden?

  • Deel zijn van het netwerk van experten en collega's
  • Mee de belangen van de informatiesector behartigen
  • Korting krijgen op de activiteiten van de VVBAD
  • Toegang krijgen tot vakinformatie
  • Participeren in de verenigingsbesturen
Word lid
© Vlaamse Vereniging voor Bibliotheek, Archief & Documentatie vzw
Statiestraat 179 | B-2600 Berchem (Antwerpen)
Tel: (+32) 03 281 44 57 | email: vvbad@vvbad.be