Luca Corradi
Luca Corradi

Co-Founder

Immagine di copertina

Database relazionali e non

La maggior parte dei progetti software si basa sull’utilizzo di uno o più database, ovvero contenitori di dati a cui il programma può accedere per salvare o richiedere informazioni. Ogni informazione salvata nel database può essere connessa ad altre e letta in qualsiasi momento tramite query, richieste da parte del programma al database. Ad oggi sono presenti due diversi tipi di database: i database relazionali (SQL) ed i database non relazionali (noSQL). Queste due categorie differiscono principalmente dalla struttura in cui i dati vengono salvati.
In questo articolo spiegheremo le principali caratteristiche di queste due tipologie ed i casi d’uso più comuni per entrambe.

Database relazionali (SQL)

I database relazionali sono caratterizzati dall’utilizzo di tabelle per il salvataggio dei dati, strutture fisse e ben organizzate. Questa tipologia di database è perfetta infatti quando si ha a che fare con informazioni ben delimitate e strutturate, facilmente riconducibili a tabelle. I database SQL risultano fondamentali quando è indispensabile garantire la massima integrità sui dati e tutte le proprietà ACID, ovvero:

  • Atomicità una transazione (piccolo insieme di azioni che il database deve eseguire) deve essere assimilabile ad un’unità atomica. Viene eseguita solamente se tutte le azioni che la compongono sono correttamente eseguite, altrimenti fallisce e ritorna al punto iniziale.
  • Consistenza il database deve sempre rimanere in uno stato coerente. Ogni transazione deve infatti iniziare e finire in uno stato consistente.
  • Isolamento Nessuna transazione può influenzare l’esistenza di qualsiasi altra transazione. In un sistema di database in cui più di una transazione viene eseguita in parallelo, tutte le transazioni verranno eseguite in modo sequenziale come un’unica transizione del sistema.
  • Durabilità: dopo che una transazione è stata conclusa con esito positivo, il suo risultato deve essere persistente anche in caso di errori di sistema.

Tra i database relazionali più utilizzati troviamo per esempio SQL server, sviluppato da Microsoft, e PostgreSQL. In molti dei nostri progetti utilizziamo proprio queste tecnologie, che permettono di mantenere grandi moli di dati al sicuro e di richiederli in modo veloce ed efficiente.

Database non relazionali (noSQL)

I database noSQL si distinguono dai precedenti nel modo in cui i dati vengono salvati. Le tabelle sono infatti sostituite da strutture dati differenti e più flessibili. Tra i più comuni database non relazionali troviamo i seguenti:

  • Chiave - Valore: con questa metodologia i dati sono salvati come una coppia formata da una chiave e un valore, utilizzando una tabella hash. Per garantire maggior sicurezza solitamente la chiave è nota, mentre il valore associato è sconosciuto.
  • Documenti in questo caso il concetto di database composto da coppie chiave-valore viene esteso a documenti, i quali possono essere organizzati in raccolte di documenti. Con questa modalità possono essere gestite coppie chiave-valore nidificate ed è possibile eseguire query su qualsiasi attributo all’interno di un documento.
  • Grafo: qui i dati sono rappresentati tramite nodi di un grafo ed i loro collegamenti sono le relazioni che intercorrono tra le diverse informazioni. I database a grafo offrono archiviazione e navigazione semplificate attraverso relazioni complesse.
  • I database non relazionali sono perfetti quando si cerca maggior flessibilità e scalabilità, questo però a discapito di alcune proprietà ACID, sempre presenti nei DB SQL. Ad oggi sono presenti moltissimi tool che forniscono questa tecnologia, tra i più conosciuti vi sono sicuramente Azure Cosmos DB, di Microsoft, e MongoDB.

    I due tipi di database appena descritti non sono mutualmente esclusivi, possono infatti essere usati all’interno dello stesso progetto. La scelta del DB si basa sulle esigenze specifiche del software che si sta sviluppando ed è una decisione da valutare coerentemente con gli sviluppi previsti per il progetto. Il team di esperti di Atobit può aiutarti a gestire passo passo tutto il tuo progetto e la scelta del database e strutture adeguate.

    • Database

    Condividi l'articolo

    Leggi altri articoli

    Il mondo IT è sofisticato, lo sappiamo.

    Bisogno di aiuto?

    Scrivici per una consulenza gratuita.