Junior
Welke soorten databases bestaan er?
sobes.tech AI
Antwoord van AI
Databases worden volgens verschillende criteria geclassificeerd, de belangrijkste types:
-
Relationeel (SQL-georiënteerd):
- Gegevens worden opgeslagen in tabellen met rijen en kolommen.
- Relaties tussen tabellen worden gedefinieerd door primaire en externe sleutels.
- SQL wordt gebruikt voor query's.
- Voorbeelden: PostgreSQL, MySQL, Oracle, SQL Server.
-
NoSQL (niet-relationeel):
- Verschillen van relationele door flexibele schema's en horizontale schaalbaarheid.
- Er bestaan verschillende datamodellen:
- Key-Value: Redis, Memcached.
- Documentgericht: MongoDB, Couchbase.
- Wide-column: Cassandra, HBase.
- Grafen: Neo4j, ArangoDB.
-
In-memory (in RAM):
- Gegevens worden direct in RAM opgeslagen voor snelle toegang.
- Kunnen relationeel of NoSQL zijn.
- Voorbeelden: Redis, Memcached, SAP HANA.
-
Tijdreeksen:
- Geoptimaliseerd voor opslag en analyse van gegevens in chronologische volgorde.
- Voorbeelden: InfluxDB, TimescaleDB.
-
Multimodel:
- Ondersteunen meerdere datamodellen tegelijk (bijvoorbeeld document- en grafmodel).
- Voorbeelden: ArangoDB, OrientDB.
-
Ruimtelijk:
- Geoptimaliseerd voor opslag en query's van gegevens met geografische coördinaten.
- Vaak uitbreidingen van relationele of NoSQL-databases (bijvoorbeeld PostGIS voor PostgreSQL).
-
Master-Slave:
- Architectuurpatroon voor gegevensreplicatie. Eén knooppunt (master) behandelt schrijfacties, anderen (slaves) lezen alleen en synchroniseren met de master. Gebruikt voor schaalvergroting en hoge beschikbaarheid.
-
Sharding:
- Gegevens worden verdeeld over meerdere onafhankelijke knooppunten (shards). Gebruikt voor horizontale schaalvergroting en grote datavolumes.
Vergelijkingstabel tussen relationele en niet-relationele databases (belangrijkste verschillen):
| Kenmerk | Relationeel (SQL) | Niet-relationeel (NoSQL) |
|---|---|---|
| Schema | Strikt, vooraf gedefinieerd | Flexibel, dynamisch |
| Schaalbaarheid | Verticaal (moeilijker horizontaal) | Horizontaal (gemakkelijker) |
| Gegevensintegriteit | ACID (meestal) | BASE (meestal) |
| Datamodel | Tabellen | Key-Value, document, grafiek, etc. |
| Querytaal | SQL | Divers (API, specifiek) |