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.
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-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.
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.
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.
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.
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.
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:
Er zijn vier hoofdsoorten NoSQL-databases:
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.