Nella scelta di un database (db) una delle prime decisioni da prendere è se affidarsi a un modello relazionale (SQL) o non (NoSQL): soluzioni entrambe valide a seconda dell’uso. Andiamo allora ad analizzare i punti più importanti che ci porteranno a decidere quale database farà al caso nostro.

 

Il linguaggio 

SQL nasce nel 1974 come strumento per lavorare con database che seguono il modello relazionale. Il che gli ha dato la possibilità, nel corso degli anni, di essere ampiamente riconosciuto e utilizzato rispetto a NoSQL, apparso per la prima volta nel 1998. 

Pur risultando versatile e particolarmente adatto per query complesse, SQL limita l’utente a lavorare all’interno di uno schema tabellare predefinito e richiede tempo per organizzare e studiare i dati prima di poter essere utilizzato. Gli schemi dinamici dei database NoSQL permettono invece la rappresentazione di strutture alternative, spesso una accanto all’altra, incoraggiando una maggiore flessibilità. A caratterizzarlo è dunque l’enfasi sulla pianificazione e la libertà nell’aggiunta di nuovi attributi o campi, oltre alla possibilità di una sintassi varia tra i database. Va d’altro canto rilevato che i linguaggi NoSQL, mancando dell’interfaccia standard che fornisce SQL, rendendo le query più complesse e difficili da eseguire.

 

La scalabilità

Per scalabilità di un sistema si intende la possibilità di raggiungere un incremento di prestazioni direttamente proporzionale, grosso modo, all’aumento delle risorse.

La maggior parte dei database SQL ha una scalabilità di tipo verticale, incrementando le capacità di elaborazione dell’hardware, oppure di tipo orizzontale, aggiungendo repliche per i carichi di lavoro di sola lettura. I database NoSQL sono in genere di tipo orizzontale: il sistema riesce cioè a parallelizzare il carico di lavoro. Si caratterizzano inoltre per una maggior fault-tolerance, vale a dire che l’errore in un nodo non pregiudica totalmente il funzionamento dell’applicazione.


La struttura

Gli schemi di un database SQL rappresentano sempre dati relazionali, tabulari, con regole di coerenza e integrità. Contengono tabelle con colonne (attributi) e righe (record), e le chiavi hanno relazioni logiche vincolate. I database NoSQL generalmente rientrano in una delle quattro grandi categorie.

SQL o NoSQL, guida ragionata alla scelta del database.

 

Le proprietà

Affinché le transazioni operino in modo corretto sui dati è necessario che i meccanismi basati sulla tecnologia SQL presentino quattro proprietà, cosiddette ACID.

 

I modelli NoSQL aderiscono invece al teorema CAP, in base al quale è impossibile per un sistema informatico distribuito fornire simultaneamente tutte e tre le seguenti garanzie. 

 

La community

I database SQL rappresentano la stragrande maggioranza delle domande sulle varie community. Essendo più facili da utilizzare, sono infatti preferiti da chi è alla prime armi con la programmazione. Le tecnologie NoSQL presentano invece forum più piccoli e più frammentati. Il che è dovuto anche alla presenza di diverse implementazioni, a seconda del software utilizzato. Richiedono inoltre un tempo maggiore per essere studiati con attenzione.

 

Database SQL e NoSQL: quando usare l’uno o l’altro

In linea di massima, NoSQL è consigliabile per:

Questi i casi in cui SQL risulta più appropriato:

 

Fare le giuste scelte tecnologiche è essenziale fin dalle prime fasi del progetto. Noi di Baasbox saremo felici di guidarti in questo percorso, contattaci.

Contattaci

 

 

Cosmin Zaharia, Developer di Baasbox e aspirante data scientist, ama passeggiare e prendersi cura del proprio habitat, circondandosi di piante. Alterna il tempo libero tra un buon libro e una partita a scacchi.