Een van de meest fundamentele keuzes die u moet maken bij het ontwikkelen van een applicatie, is of u een SQL- of NoSQL-database wilt gebruiken om de gegevens op te slaan. Conventionele SQL (d.w.z. relationele) databases zijn het product van decennia van technologische evolutie, goede praktijken en real-world stresstests. Ze zijn ontworpen voor betrouwbare transacties en ad-hocvragen, de basisvaardigheden van zakelijke applicaties. Maar ze worden ook belast met beperkingen - zoals een star schema - waardoor ze minder geschikt zijn voor andere soorten apps.
NoSQL-databases ontstonden in reactie op die beperkingen. NoSQL-systemen slaan gegevens op en beheren deze op manieren die een hoge operationele snelheid en grote flexibiliteit van de kant van de ontwikkelaars mogelijk maken. Velen zijn ontwikkeld door bedrijven als Google, Amazon, Yahoo en Facebook die op zoek waren naar betere manieren om inhoud op te slaan of gegevens te verwerken voor grote websites. In tegenstelling tot SQL-databases kunnen veel NoSQL-databases horizontaal worden geschaald over honderden of duizenden servers.