NoSQL-databases geven bewust de vaste, gedeelde tabelstructuur van het relationele model op, en krijgen daarvoor in de plaats een datamodel dat specifiek is gekozen om bij een bepaald soort probleem te passen. Documentdatabases slaan elk record op als een flexibel, zelfstandig document, key-value stores halen data op via niets anders dan één enkele lookup-sleutel, en graafdatabases stellen de relaties tussen records voor als het primaire ding dat daadwerkelijk wordt opgeslagen, in plaats van die relaties te behandelen als een bijzaak die is toegevoegd bovenop afzonderlijke tabellen.
Een vast gedeeld schema wordt een echte beperking voor onregelmatige data of eenvoudige lookups
Het vaste tabelschema van een relationele database vereist dat elk record van hetzelfde type exact dezelfde structuur deelt, wat een echte, praktische beperking wordt wanneer data van nature onregelmatig is, een productcatalogus waarbij verschillende producttypes daadwerkelijk verschillende attributen hebben, bijvoorbeeld, of wanneer het primaire doel van een applicatie extreem snelle, eenvoudige opzoeking is in plaats van complexe relationele queries die tegelijkertijd veel afzonderlijke tabellen doorkruisen.
Er bestaan drie echt verschillende NoSQL-modellen omdat ze drie echt verschillende problemen oplossen
Documentdatabases passen goed bij onregelmatige, zelfstandige records, waarbij elk record wordt opgeslagen als een flexibel document zonder elk record te dwingen tot een identieke gedeelde vorm. Key-value stores passen goed bij extreem snelle, eenvoudige opzoekingen, zoals een sessiecache, waarbij nooit iets ingewikkelders nodig is dan het ophalen van één waarde via één exacte sleutel. Graafdatabases passen goed bij data waarbij de relaties tussen records, niet alleen de records zelf, dat is wat daadwerkelijk efficiënt bevraagd moet worden, waarbij de verbindingen van een sociaal netwerk het duidelijkste veelvoorkomende voorbeeld zijn.
Waar we nog niet zeker van zijn
Dat NoSQL-databases de gedeelde structuur van het relationele model inruilen voor een model dat past bij een specifiek probleem, is gevestigde, onomstreden databasetechniek. Wat echt een levendige, actief bediscussieerde technische afweging is, is het kiezen van het juiste NoSQL-model, of het in plaats daarvan kiezen van een relationele database, voor een gegeven echte applicatie, aangezien een documentdatabase uiteindelijk relationele-stijl joins nodig kan hebben die onhandig worden herbouwd in applicatiecode naarmate de data van een applicatie na verloop van tijd daadwerkelijk meer onderling verbonden raakt, en vooraf voorspellen of dat voor een specifieke nieuwe applicatie zal gebeuren blijft een echte, imperfecte beoordeling in plaats van iets wat een vaste regel kan beslissen.
Dit valt onder NoSQL-modellen (Document, Key-Value, Graaf), een van de zeven onderwerpen binnen Databases, een van de zeven domeinen binnen Informatica, een van de zeventien vakken waarover de app je kan overhoren.