Junior
Wat zijn NoSQL-databases?
sobes.tech AI
Antwoord van AI
NoSQL (Not Only SQL) is een klasse van niet-relationele databasesystemen die structuren gebruiken die verschillen van de traditionele tabellen met een vast schema. Ze zijn ontworpen voor het werken met grote hoeveelheden ongestructureerde, semi-gestructureerde en polystystrucurele gegevens, en bieden flexibele schaalbaarheid en hoge beschikbaarheid.
Belangrijkste categorieën van NoSQL-databases:
- "Key-Value" (Key-Value Stores): Slaan gegevens op in paren van sleutel en waarde, waarbij de sleutel de waarde uniek identificeert.
# Voorbeeld van gegevensrepresentatie in een key-value store user_data = { "user:123": {"name": "Alice", "age": 30}, "product:456": {"name": "Laptop", "price": 1200} } - "Kolomgeoriënteerd" (Columnar Databases): Slaan gegevens op per kolom, niet per rij. Geoptimaliseerd voor analytische query's en verwerking van grote gegevensvolumes.
- "Document" (Document Databases): Slaan gegevens op in de vorm van documenten (bijvoorbeeld JSON, BSON, XML). Het gegevensschema is flexibel.
// Voorbeeld van een document in een document database { "_id": "prod_abc", "name": "Smartphone", "brand": "XYZ", "specs": { "display": "6.5 inch", "camera": "48MP" }, "tags": ["electronics", "mobile"] } - "Grafen" (Graph Databases): Ontworpen voor het opslaan en verwerken van gegevens die worden weergegeven in de vorm van knooppunten (vertices) en randen (relaties). Gebruikt voor het analyseren van relaties.
Verschillen met relationele databases (SQL):
| Kenmerk | Relationeel (SQL) | NoSQL |
|---|---|---|
| Gegevensschema | Vast, strikt | Flexibel, dynamisch |
| Schaalbaarheid | Verticaal (verhoog de servercapaciteit) | Horizontaal (toevoegen van servers) |
| Normalisatie | Hoog (redundantie verminderen) | Laag (gegevens dupliceren voor prestaties) |
| ACID-transacties | Over het algemeen volledige ondersteuning | Variabele ondersteuning (soms BASE) |
| Query-taal | SQL | Verschilt (vaak API, specifieke talen) |
NoSQL-databases worden gekozen voor scenario's die hoge schaalbaarheid, schema-flexibiliteit, snelle verwerking van grote gegevensvolumes (Big Data), werken met semi-gestructureerde/niet-gestructureerde gegevens of specifieke datamodellen (bijvoorbeeld grafen) vereisen.