Sobes.tech
Junior

Jakie rodzaje baz danych istnieją?

sobes.tech AI

Odpowiedź od AI

Bazy danych są klasyfikowane według kilku kryteriów, główne typy:

  1. 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.
  2. 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.
  3. 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.
  4. Szeregi czasowe:

    • Optymalizowane do przechowywania i analizy danych w porządku chronologicznym.
    • Przykłady: InfluxDB, TimescaleDB.
  5. Wielomodelowe:

    • Obsługują kilka modeli danych jednocześnie (np. dokumentowy i grafowy).
    • Przykłady: ArangoDB, OrientDB.
  6. 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).
  7. 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.
  8. 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)