Storia: Nel 2016 stavo perseguendo una laurea in informatica all’Università di Albany e ho dovuto seguire un corso di introduzione ai database.
Nel corso, ho imparato due cose:
Base di dati relazionali e non relazionali, ma non ho mai veramente imparato la differenza tra i due, così ho voluto riaccendere la mia curiosità con i database e le differenze tra i due.
- Definito da E.F Codd nel 1970, un database relazionale è un database digitale basato sul modello relazionale dei dati. I dati sono immagazzinati in tabelle contenenti righe (che rappresentano una voce) e colonne (che immagazzinano e ordinano un tipo specifico di informazione). Le relazioni sono stabilite attraverso le chiavi Primarie ed Estere.
Lingue: SQL (Structured Query Language), MySQL, PostgreSQL, sqlite3
Svantaggi:
- Può gestire molte query complesse, transazioni di database e analisi di routine dei dati.
- ACID (Atomity, Consistency, Isolation, Durability): Insieme di proprietà che assicurano transazioni di database affidabili.
Svantaggi:
- Non può memorizzare immagini complesse o molto grandi, numeri, disegni e prodotti multimediali
- Può diventare molto costoso con la manutenzione e nuovi server
Grande! Ma cosa succede se i nostri set di dati sono troppo grandi o non strutturati?
Database non relazionali o NoSQL
Cos’è un database non relazionale?
- I database non relazionali esistevano già alla fine degli anni ’60, ma il termine non è stato usato fino al 1998 da Carlo Strozzi che ha guidato lo sviluppo del NoSQL.
- “Un database NoSQL (originariamente riferito a “non SQL” o “non relazionale”) fornisce un meccanismo per la memorizzazione e il recupero dei dati che è modellato con mezzi diversi dalle relazioni tabulari utilizzate nei database relazionali.” – Wikipedia
Tipi di database NoSQL:
Column Store: Utilizza il concetto di keyspace che contiene tutte le famiglie di colonne che contengono righe e colonne per memorizzare e organizzare i dati.