Wat is NoSQL?

Definitie van NoSQL

De term 'NoSQL' verwijst naar niet-relationele soorten databases waarin data worden opgeslagen in een indeling die verschilt van relationele tabellen. NoSQL-databases kunnen echter worden doorzocht met behulp van idiomatische taal-API's, declaratieve SQL en QBE's (Query by Example). Daarom worden ze ook wel 'niet alleen SQL'-databases genoemd.

Waarvoor wordt een NoSQL-database gebruikt?

NoSQL-databases worden veel gebruikt in realtime webapplicaties en big data, omdat de belangrijkste voordelen een hoge schaalbaarheid en hoge beschikbaarheid zijn.

NoSQL-databases hebben ook de voorkeur van ontwikkelaars, omdat ze zich van nature lenen voor een flexibel ontwikkelingsparadigma door zich snel aan te passen aan veranderende vereisten. Met NoSQL-databases kunnen gegevens worden opgeslagen op manieren die intuïtiever en gemakkelijker te begrijpen zijn of een betere benadering vormen van de manier waarop de gegevens door applicaties worden gebruikt. Daardoor zijn minder transformaties nodig bij het opslaan of ophalen met behulp van NoSQL-achtige API's. Bovendien kunnen NoSQL-databases optimaal profiteren van de cloud om zo te zorgen voor minimale uitvaltijd.

SQL versus NoSQL

SQL-databases zijn relationeel terwijl NoSQL-databases niet-relationeel zijn. Het relationele databasebeheersysteem (RDBMS) is de basis voor gestructureerde querytaal (SQL), waarmee gebruikers data in zeer gestructureerde tabellen kunnen openen en bewerken. Dit is het basismodel voor databasesystemen zoals MS SQL Server, IBM DB2, Oracle en MySQL. Maar met NoSQL-databases kan de syntaxis voor gegevenstoegang verschillen van database tot database.

Relationele database versus NoSQL-database

Om NoSQL-databases te begrijpen, is het belangrijk om te weten wat het verschil is tussen RDBMS en niet-relationele databasesoorten.

De data in een RDBMS worden opgeslagen in databaseobjecten die tabellen worden genoemd. Een tabel is een verzameling gerelateerde ingevoerde gegevens en bestaat uit kolommen en rijen. Voor deze databases moet het schema vooraf worden gedefinieerd. Alle kolommen en de bijbehorende gegevenssoorten moeten dus van tevoren bekend zijn zodat applicaties gegevens naar de database kunnen schrijven. Ze slaan ook informatie op door meerdere tabellen te koppelen via het gebruik van sleutels, waardoor een relatie tussen meerdere tabellen ontstaat. In het eenvoudigste geval wordt een sleutel gebruikt om een specifieke rij op te halen zodat deze kan worden onderzocht of gewijzigd.

Maar gegevens in NoSQL-databases kunnen ook worden opgeslagen zonder het schema vooraf te definiëren. Dit betekent dat u snel verder kunt, iteraties kunt uitvoeren en het gegevensmodel al doende kunt definiëren. Dit kan handig zijn voor specifieke zakelijke vereisten, of het nu grafiekgebaseerd, kolomgericht, documentgericht of als sleutelwaardeopslag is.

Tot voor kort waren relationele databases de meest gebruikte modellen. Ze worden nog steeds veel gebruikt door veel bedrijven, maar voor de huidige verscheidenheid, snelheid en omvang van gegevens is soms een heel andere database nodig als aanvulling op de relationele database. Het gebruik van NoSQL-databases, ook wel 'niet-relationele databases', is dan ook op sommige gebieden groter geworden. Vanwege hun vermogen om horizontaal en snel uit te schalen, kunnen niet-relationele databases veel verkeer aan, waardoor ze ook zeer aanpasbaar zijn.

Wanneer moet u kiezen voor een NoSQL-database?

Dit is een goede keuze voor bedrijven en organisaties die snel moeten innoveren om flexibel te blijven en op elke schaal te blijven werken. NoSQL-databases bieden flexibele schema's en ondersteunen ook een verscheidenheid aan datamodellen die ideaal zijn voor het bouwen van applicaties die grote datavolumes en lage latentie of responstijden vereisen, bijvoorbeeld online gamen en e-commercewebapplicaties.

Wanneer moet u niet kiezen voor een NoSQL-database?

NoSQL-databases zijn doorgaans afhankelijk van gedenormaliseerde gegevens en ondersteunen applicaties die minder tabellen (of containers) gebruiken en waarvan de gegevensrelaties niet worden gemodelleerd met behulp van referenties, maar eerder als ingesloten records (of documenten). Veel klassieke backoffice-bedrijfsapplicaties op het gebied van financiën, boekhouding en bedrijfsresourceplanning zijn afhankelijk van sterk genormaliseerde gegevens om gegevensafwijkingen en gegevensduplicatie te voorkomen. Dit zijn meestal de applicaties die niet geschikt zijn voor een NoSQL-database.

NoSQL-databases zijn ook minder geschikt als de complexiteit van query's toeneemt. NoSQL-databases werken uitzonderlijk goed met query's in één tabel. Naarmate de complexiteit van de query's toeneemt, zijn relationele databases echter een betere keuze. NoSQL-databases bieden doorgaans geen complexe joins, query's en nesting van query's in een WHERE-clausule.

In sommige gevallen is het niet nodig om te kiezen voor een relationele of niet-relationele database. Vaak hebben bedrijven gekozen voor databases die een geïntegreerd model bieden, waarin ze een combinatie van relationele en niet-relationele datamodellen kunnen gebruiken. Deze hybride aanpak biedt meer flexibiliteit bij het verwerken van verschillende soorten gegevens, terwijl het ook zorgt voor lees- en schrijfconsistentie zonder dat de prestaties afnemen.

Wat biedt NoSQL dat andere databases niet bieden?

Een van de belangrijkste verschillen tussen NoSQL-databases en andere soorten databases is dat NoSQL-databases doorgaans ongestructureerde opslag gebruiken. NoSQL-databases zijn in de afgelopen twee decennia ontwikkeld en zijn ontworpen voor snelle, eenvoudige query's, enorme hoeveelheden gegevens en regelmatige applicatiewijzigingen. Deze databases maken het programmeren ook veel eenvoudiger voor ontwikkelaars.

Een andere belangrijk verschil is dat NoSQL-databases afhankelijk zijn van een proces genaamd 'sharding' om horizontaal uit te schalen. Dit betekent dat er meer computers kunnen worden toegevoegd om gegevens op meerdere servers te verwerken. Voor verticaal schalen dat in andere SQL-databases wordt aangetroffen, heeft de computer meer kracht en geheugen nodig, wat onhoudbaar kan zijn omdat er steeds meer opslagruimte nodig is.

Door de manier van horizontaal schalen met NoSQL-databases kunnen extreem grote hoeveelheden gegevens op een efficiëntere manier worden verwerkt, zelfs als de gegevens toenemen. Voor het gemak kunt u verticaal schalen ook zien als het toevoegen van een nieuwe vloer aan uw huis, terwijl horizontaal schalen kan worden vergeleken met het bouwen van een ander huis naast het oorspronkelijke huis.

Voordelen van een NoSQL-database

De ongekende snelheid en schaal van digitale interactie en dataverbruik in de afgelopen twee decennia heeft bedrijven ertoe gebracht om een ​​modernere, meer dynamische benadering te hanteren voor de manier waarop ze gegevens opslaan en er toegang toe krijgen. Met gebruikers over de hele wereld die vragen om een ononderbroken stroom van content en functies, is het geen wonder dat databases zich snel moesten aanpassen. Met dit in het achterhoofd zijn hier enkele van de belangrijkste redenen waarom ontwikkelaars kiezen voor NoSQL-/niet-relationele databases:

  • Flexibiliteit

    Met SQL-databases worden gegevens opgeslagen in een veel strakkere, vooraf gedefinieerde structuur. Maar met NoSQL kunnen gegevens meer in een vrije vorm worden opgeslagen zonder die strakke schema's. Dit ontwerp maakt innovatie en snelle ontwikkeling van applicaties mogelijk. Ontwikkelaars kunnen zich concentreren op het maken van systemen om hun klanten beter van dienst te zijn zonder zich zorgen te maken over schema's. NoSQL-databases kunnen gemakkelijk elke gegevensindeling verwerken, zoals gestructureerde, semi-gestructureerde en niet-gestructureerde gegevens in één gegevensopslag.
  • Schaalbaar

    In plaats van op te schalen door meer servers toe te voegen, kunnen NoSQL-databases worden opgeschaald door gebruik te maken van standaardhardware. Dit biedt de mogelijkheid om meer verkeer te ondersteunen om aan de vraag te voldoen zonder uitvaltijd. Door uit te schalen kunnen NoSQL-databases groter en krachtiger worden. Daarom zijn ze de voorkeursoptie geworden voor het ontwikkelen van gegevenssets.
  • Krachtige prestaties

    De uitschaalarchitectuur van een NoSQL-database kan bijzonder waardevol zijn wanneer het gegevensvolume of -verkeer toeneemt. Zoals te zien is in de onderstaande afbeelding, zorgt deze architectuur voor snelle en voorspelbare responstijden van minder dan tien milliseconden. NoSQL-databases kunnen ook gegevens opnemen en deze snel en betrouwbaar leveren. Daarom worden NoSQL-databases gebruikt in applicaties die elke dag terabytes aan gegevens verzamelen, terwijl ze ook een zeer interactieve gebruikerservaring vereisen. In de onderstaande afbeelding tonen we een inkomende snelheid van 300 leesbewerkingen per seconde (blauwe lijn) met een 95e latentie in het bereik van 3-4 ms, en een inkomende snelheid van 150 schrijfbewerkingen per seconde (groene lijn) met een 95e latentie in het bereik van 4-5 ms.

    nosql-database

  • Beschikbaarheid

    NoSQL-databases repliceren automatisch gegevens tussen meerdere servers, datacenters of cloudresources. Dit minimaliseert ook weer de latentie voor gebruikers, ongeacht waar ze zich bevinden. Deze functie helpt ook om de last van databasebeheer te verminderen, waardoor er tijd vrijkomt om op andere prioriteiten te concentreren.
  • Zeer functioneel

    NoSQL-databases zijn ontworpen voor gedistribueerde gegevensopslag met extreem grote gegevensopslagbehoeften. Dit maakt NoSQL de ideale keuze voor big data, realtime webapps, klant 360, online winkelen, online gamen, Internet of Things, sociale netwerken en online advertentieapplicaties.

Soorten NoSQL-databases

Er zijn vier hoofdsoorten NoSQL-databases:

  • Sleutelwaarde

    Dit is het meest flexibele soort NoSQL-database omdat de applicatie zonder enige beperking volledige controle heeft over wat er in het waardeveld wordt opgeslagen.
  • Document

    Deze databases, ook wel documentopslag of documentgeoriënteerde databases genoemd, worden gebruikt voor het opslaan, ophalen en beheren van semi-gestructureerde gegevens. Er hoeft niet te worden opgegeven welke velden er in het document moeten staan.
  • Grafiek

    In deze database worden gegevens georganiseerd als knooppunten en relaties, die de verbindingen tussen knooppunten laten zien. Dit ondersteunt een meer uitgebreid en volledige weergave van gegevens. Grafiekdatabases worden toegepast in sociale netwerken, reserveringssystemen en fraudedetectie.
  • Brede kolom

    In deze databases worden gegevens opgeslagen en beheerd in de vorm van tabellen, rijen en kolommen. Ze worden algemeen ingezet in applicaties die een kolomindeling vereisen om schemavrije gegevens vast te leggen.

Probeer Oracle NoSQL Database uit

Met Oracle NoSQL Database Cloud Service kunnen ontwikkelaars eenvoudig applicaties bouwen met behulp van document-, kolom- en sleutelwaarde-databasemodellen, die voorspelbare responstijden van minder dan tien milliseconden leveren met gegevensreplicatie voor hoge beschikbaarheid. De service biedt ACID-transacties, serverloos schalen, uitgebreide beveiliging en lage prijzen voor betalen naar gebruik.

De Oracle NoSQL Database Cloud service maakt nu deel uit van Oracle Cloud Free Tier, dat een gratis, tijdelijke proefversie bevat waarmee u een breed scala aan cloudservices kunt verkennen, evenals een set 'Altijd gratis'-services die nooit vervallen.

Oracle-chatbot
Disconnected