NoSQL

In een relationele database ligt de structuur van de data vast. Er wordt een schema gebruikt voor het beschrijven van die structuur. Tabellen en kolommen hebben vaste namen en in eenzelfde kolom mogen geen verschillende soorten data voorkomen. Bij het ontwerpen van een database wordt voor de kolommen in de tabellen aangegeven wat voor soort data daarin opgeslagen gaan worden. Dat kan de ene keer om numerieke en een andere keer om bijvoorbeeld alfanumerieke gegevens gaan. In een kolom kunnen echter nooit verschillende typen data door elkaar worden gebruikt.

Voor het identificeren van een rij wordt een sleutel gebruikt. In een relationele database moet redundantie vermeden en consistentie nagestreefd worden.

Kenmerkend voor een relationele database is dat er met harde gestructureerde data wordt gewerkt. De data die zijn opgeslagen in de database kunnen worden bevraagd en worden bewerkt door SQL-opdrachten.

Er kunnen zich echter situaties voordoen waarbij het niet voor de hand ligt data op te slaan in een relationele database maar waarbij de voorkeur uitgaat naar het gebruik van een zogenaamde NoSQL database. Bijvoorbeeld als er met hele grote hoeveelheden gegevens gewerkt wordt. Dan is het niet handig om die gegevens op te slaan in een RDBMS. No in NoSQL staat overigens voor Not only.

Data in een relationele database staan altijd op dezelfde server. In de NoSQL database worden gegevens over meerdere servers verspreid. Het verspreiden van data over meerdere servers noemen we sharding. Een groot voordeel daarvan is dat gebruikers deze data snel kunnen benaderen.

Zo maakt Twitter voor het opslaan van tweets gebruik van een NoSQL oplossing. De tweets verouderen namelijk snel en alle tweets moeten ook nog eens bewaard blijven. Dankzij NoSQL kunnen de data over meerdere servers verspreid worden die dan aan elkaar worden gekoppeld.

Bij een NoSQL database werken niet alle gebruikers met dezelfde database. Dat wordt mogelijk gemaakt door op verschillende servers telkens een kopie van de oorspronkelijke database op te slaan. Dit principe wordt replication genoemd. Een nadeel van deze manier van werken, is dat de gebruikte gegevens niet altijd up to date zijn.

We hebben gezien dat in een relationele database het gebruikelijk is om alle gegevens in tabellen op te slaan. De structuur van een relationele database staat vast. Een NoSQL database hoeft niet altijd dezelfde vorm te hebben:


In een NoSQL database zijn data minder hard gestructureerd dan in een relationale database. Afhankelijk van het soort gegevens waarmee gewerkt wordt, kan gekozen worden voor opslag in een relationele- of een NoSQL database.