Base di dati relazionali e non relazionali

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.

Esempio di un modello di database relazionale

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.

Ogni riga contiene una famiglia di colonne

Database: Apache HBase, Cassandra

Key-Value Store: Utilizza un array associativo (mappa o dizionario) come modello di dati fondamentale. I dati sono rappresentati come una collezione di coppie chiave-valore e una chiave apparirà al massimo una volta nella collezione. È possibile memorizzare un valore, come un intero, una stringa, una struttura JSON o un array, insieme a una chiave utilizzata per fare riferimento a quel valore.

Ogni riga ha un proprio ID e valori

Database: Redis, Amazon DynamoDB

Graph: È un database che utilizza strutture a grafo per rappresentare e memorizzare i dati. Questo permette agli utenti la capacità di attraversare rapidamente tra tutti i valori connessi e trovare intuizioni nelle relazioni.

Tutti i film in cui recita Kevin Bacon

Database: neo4J, OrientDB, Titan

Database orientato al documento: Un database orientato ai documenti, o document store, è un programma per computer progettato per immagazzinare, recuperare e gestire informazioni orientate ai documenti, note anche come dati semi-strutturati.

Database: MongoDB, Couchbase

Avantaggi:

  • Grandi volumi di dati strutturati, semi-strutturati e non strutturati
  • Programmazione orientata agli oggetti che è facile da usare e flessibile (MongoDB è fondamentalmente scritto in javascript)
  • Efficiente, architettura scale-out invece di costosa architettura monolitica

Svantaggi:

  • Meno supporto poiché i database NoSQL sono di solito open-source
  • Amministrazione: I database NoSQL richiedono competenze tecniche per l’installazione e la manutenzione.
  • Meno maturo. I database NoSQL sono ancora in crescita e molte caratteristiche sono ancora in fase di implementazione.

Quale usare?

Le aziende utilizzano una miscela di database tradizionali e non relazionali per soddisfare le loro esigenze e necessità di business.

Base di dati relazionali:

I database relazionali tradizionali sono molto bravi a mantenere sicure le transazioni di dati e a fare query complesse per acquisire informazioni. Le aziende che sono già strutturate e che non stanno sperimentando una crescita massiccia molto probabilmente si atterranno ai database tradizionali.

Base di dati non relazionali:

Grande per memorizzare grandi quantità di dati con poca struttura. Le aziende che crescono ad un ritmo rapido come le startup utilizzano più database non relazionali per la loro scalabilità e flessibilità. Abbinati al cloud, i database non relazionali possono anche far risparmiare alle aziende un sacco di soldi.

Data Fun Facts:

  1. I dati stanno crescendo più velocemente che mai ed entro l’anno 2020, circa 1,7 megabyte di nuove informazioni saranno create ogni secondo per ogni essere umano sul pianeta.
  2. Per allora, il nostro universo digitale accumulato di dati crescerà da 4,4 zettabyet oggi a circa 44 zettabyte, o 44 mila miliardi di gigabyte.
  3. Stiamo assistendo a una crescita massiccia di dati video e foto, dove ogni minuto vengono caricate fino a 300 ore di video solo su YouTube.
  4. Quest’anno, saranno spediti oltre 1,4 miliardi di smartphone – tutti pieni di sensori in grado di raccogliere tutti i tipi di dati, per non parlare dei dati creati dagli utenti stessi.
  5. Entro cinque anni ci saranno oltre 50 miliardi di dispositivi intelligenti connessi nel mondo, tutti sviluppati per raccogliere, analizzare e condividere i dati.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.