Junior
Jakie rodzaje baz danych istnieją?
sobes.tech AI
Odpowiedź od AI
Bazy danych są klasyfikowane według kilku kryteriów, główne typy:
-
Relacyjne (zorientowane na SQL):
- Dane przechowywane są w tabelach z wierszami i kolumnami.
- Relacje między tabelami są definiowane przez klucze główne i obce.
- Do zapytań używa się języka SQL.
- Przykłady: PostgreSQL, MySQL, Oracle, SQL Server.
-
NoSQL (nierelacyjne):
- Różnią się od relacyjnych elastycznymi schematami i skalowaniem poziomym.
- Istnieją różne modele danych:
- Klucz-wartość: Redis, Memcached.
- Dokumentowe: MongoDB, Couchbase.
- Kolumnowe szerokie: Cassandra, HBase.
- Grafowe: Neo4j, ArangoDB.
-
W pamięci (RAM):
- Dane przechowywane są bezpośrednio w RAM dla szybkiego dostępu.
- Mogą być relacyjne lub NoSQL.
- Przykłady: Redis, Memcached, SAP HANA.
-
Szeregi czasowe:
- Optymalizowane do przechowywania i analizy danych w porządku chronologicznym.
- Przykłady: InfluxDB, TimescaleDB.
-
Wielomodelowe:
- Obsługują kilka modeli danych jednocześnie (np. dokumentowy i grafowy).
- Przykłady: ArangoDB, OrientDB.
-
Przestrzenne:
- Optymalizowane do przechowywania i zapytań danych z współrzędnymi geograficznymi.
- Często są rozszerzeniami relacyjnych lub NoSQL baz danych (np. PostGIS dla PostgreSQL).
-
Master-Slave:
- Wzorzec architektoniczny dla replikacji danych. Jeden węzeł (master) obsługuje zapisy, inne (slave) tylko odczytują i synchronizują się z masterem. Używany do skalowania odczytów i zapewnienia wysokiej dostępności.
-
Sharding:
- Dane rozproszone na kilka niezależnych węzłów (shardów). Używany do skalowania poziomego i obsługi dużych wolumenów danych.
Tabela porównawcza relacyjnych i nierelacyjnych baz danych (główne różnice):
| Cecha | Relacyjne (SQL) | Nierelacyjne (NoSQL) |
|---|---|---|
| Schemat | Sztywny, z góry zdefiniowany | Elastyczny, dynamiczny |
| Skalowalność | Pionowa (trudniejsza pozioma) | Pozioma (łatwiejsza) |
| Integralność danych | ACID (zazwyczaj) | BASE (częściej) |
| Model danych | Tabele | Klucz-wartość, dokumentowe, grafowe, itd. |
| Język zapytań | SQL | Różnorodne (API, specyficzne) |