Vandaag de dag wordt met een database in de praktijk een zogenoemde relationele database bedoeld. Dat is niet altijd zo geweest: ook voordat het relationele model in 1970 werd bedacht, waren er elektronische databases, zoals IMS en IDMS.
Dat uiteindelijk het relationele model toch de standaard is geworden, is niet vreemd: bij dit model stond de opbouw en de organisatie van een database los van de manier van opslag. Gegevens worden op een gestandaardiseerde manier opgeslagen, buiten de applicatie die de gegevens gebruikt. De inhoud van een database is daardoor veel toekomstbestendiger en kan makkelijker op een andere manier worden gebruikt dan waarvoor de gegevens oorspronkelijk zijn opgeslagen.
Toch voldoet het relationele model niet altijd. Relationele databases blinken niet uit in het verwerken van grote hoeveelheden gegevens of het serveren van gegevens onder hoge druk, tenzij fors wordt geïnvesteerd in hardware. Ook is een relationele database soms simpelweg niet nodig, omdat informatie bijvoorbeeld maar op één manier wordt opgeslagen en complexe query's op data niet nodig zijn. In andere gevallen biedt een relationele database te weinig functionaliteit, bijvoorbeeld bij het leggen van een groot aantal verbanden tussen punten.
Voor dit soort doeleinden zijn NoSQL-databases bedoeld. NoSQL is een verwijzing naar SQL, een door IBM ontwikkelde taal voor het werken met gegevens in een relationele database. SQL is de gangbare taal die wordt gebruikt om te werken met relationele databases. Onder andere MySQL, Microsofts SQL Server, Oracle Database en PostgreSQL leunen zwaar op SQL.
Bij de term NoSQL staat 'No' niet voor 'geen', maar voor not only, waarmee wordt bedoeld dat relationele databases niet overal geschikt voor zijn. Een sluitende definitie van NoSQL is bijna niet te geven, al is er één eigenschap die ze verenigt: ze verschillen op een of meer punten van traditionele relationele databases.
Een IMS-database