NoSQL is de verzamelnaam voor tegenhangers van de SQL-standaard op gebied van databases, maar wordt door IT-managers vaak niet goed begrepen. De term suggereert namelijk een categorie van anti-SQL of anti-relationele databaseproducten, maar betekent Not Only SQL (Niet Alleen SQL). Hiermee impliceert het geen vervangend product voor SQL te leveren, maar een aanvulling op relationele databases.
Producten in de NoSQL-categorie, en dat zijn er momenteel al zo’n 120, verschillen van traditionele SQL/relationele databases in het opzicht dat ze geen relationeel model gebruiken, vaak schemaloos werken (en daardoor weinig eisen stellen aan de organisatie en structuur van de data), eenvoudig via een API zijn aan te sturen en vertrouwen op eventueel consistente transacties (in plaats van gegarandeerde consistente transacties). Bovendien is een NoSQL-database in tegenstelling tot SQL horizontaal schaalbaar.
Populair, maar niet perfect
NoSQL geniet met name onder ontwikkelaars veel populariteit. Onder deze groep zijn CouchDB, Cassandra en MongoDB populaire (open-source) implementaties vanwege hun veelzijdigheid. In het bedrijfsleven wordt de ontwikkeling van genoemde voorbeelden nauwlettend gevolgd, aangezien NoSQL een stuk eenvoudiger in gebruik is en kostenbesparend kan werken. Een nadeel is de onnauwkeurigheid, wat NoSQL voor een financiële database eigenlijk per definitie ongeschikt maakt.
Volgens Max Schireson, directeur van NoSQL-leverancier 10gen/MongoDB, lijdt het geen twijfel dat relationele databases zullen blijven bestaan en ook in de toekomst dezelfde belangrijke rol binnen de ondernemingsmuren zullen innemen. Maar hij ziet mogelijkheden voor het gebruik van NoSQL naast SQL voor bepaalde applicaties.
Prima voor ‘numbercrunching’ op grote schaal
Als een applicatie bijvoorbeeld verkooporders verwerkt en absoluut zeker moet zijn van de transacties, dan kun je het beste een relationele database met ondersteuning voor ACID-transacties gebruiken. Maar als het gaat om miljoenen gebeurtenissen in korte tijd, zoals bijvoorbeeld de analyse van clickstreams op een site, om een online sales catalogus te optimaliseren, dan kun je prima kiezen voor een NoSQL-database. Het missen van een paar van deze gebeurtenissen is namelijk niet kritisch en stelt je in staat een schaalbare applicatie met gedeelde data te maken, wat uiteindelijk flink in de kosten kan schelen en een snelle responstijd oplevert.
Afgelopen jaar zijn verschillende grote websites overgestapt van traditionele databases op SQL-basis naar NoSQL-databases. Bekende voorbeelden zijn: digg, Twitter (beiden van MySQL naar Cassandra) LinkedIn (van Oracle en MySQL naar Voldemort), Craigslist (van MySQL naar MongoDB) en natuurlijk Facebook (van MySQL naar HBase).