Junior
Quali tipi di database esistono?
sobes.tech AI
Risposta dell'AI
I database sono classificati secondo diversi criteri, i principali tipi:
-
Relazionali (orientati SQL):
- I dati sono memorizzati in tabelle con righe e colonne.
- Le relazioni tra le tabelle sono definite da chiavi primarie e esterne.
- Si utilizza il linguaggio SQL per le query.
- Esempi: PostgreSQL, MySQL, Oracle, SQL Server.
-
NoSQL (non relazionali):
- Si distinguono da quelli relazionali per schemi flessibili e scalabilità orizzontale.
- Esistono diversi modelli di dati:
- Chiave-valore: Redis, Memcached.
- Documentali: MongoDB, Couchbase.
- Colonne larghe: Cassandra, HBase.
- Grafici: Neo4j, ArangoDB.
-
In-memory (in RAM):
- I dati sono memorizzati direttamente in RAM per un accesso rapido.
- Possono essere relazionali o NoSQL.
- Esempi: Redis, Memcached, SAP HANA.
-
Serie temporali:
- Ottimizzati per l'archiviazione e l'analisi di dati in ordine cronologico.
- Esempi: InfluxDB, TimescaleDB.
-
Multimodello:
- Supportano più modelli di dati contemporaneamente (ad esempio, documentale e grafico).
- Esempi: ArangoDB, OrientDB.
-
Spaziali:
- Ottimizzati per l'archiviazione e le query di dati con coordinate geografiche.
- Spesso sono estensioni di DB relazionali o NoSQL (ad esempio, PostGIS per PostgreSQL).
-
Master-Slave:
- Pattern architetturale per la replica dei dati. Un nodo (master) gestisce le scritture, altri (slave) leggono solo e si sincronizzano con il master. Usato per scalare le letture e garantire alta disponibilità.
-
Sharding:
- I dati sono distribuiti su più nodi indipendenti (shard). Usato per scalabilità orizzontale e gestione di grandi volumi di dati.
Tabella comparativa tra database relazionali e non relazionali (principali differenze):
| Caratteristica | Relazionali (SQL) | NoSQL (non relazionali) |
|---|---|---|
| Schema | Rigido, predefinito | Flessibile, dinamico |
| Scalabilità | Verticale (più difficile orizzontale) | Orizzontale (più semplice) |
| Integrità dei dati | ACID (di solito) | BASE (più frequente) |
| Modello di dati | Tabelle | Chiave-valore, documentale, grafico, ecc. |
| Linguaggio di query | SQL | Diversi (API, specifici) |