I database sono un masterpiece di qualsiasi applicazione software. Sono necessari per sviluppare qualsiasi tipo di software: siti web, embedded systems, applicazioni di intelligenza artificiale, sistemi in tempo reale, IoT e via discorrendo.
In passato era molto più semplice scegliere un database, ma nell’era moderna, con la digitalizzazione di qualsiasi tipo di dat,o la scelta del database relazionale si rivela cruciale.
Ma andiamo per gradi. Cos’è un database relazionale?
Abbreviato in RDBMS, un database relazionale è un tipo di database di archiviazione che fornisce accesso a data points correlati tra loro. I database relazionali sono basati sul modello relazionale, un modo intuitivo e diretto di rappresentare i dati nelle tabelle. In un database relazionale ogni riga della tabella è un record con un ID univoco chiamato chiave. Le colonne della tabella contengono gli attributi dei dati e ogni record di solito ha un valore per ogni attributo, rendendo facile stabilire le relazioni tra i data points.
Vediamo esempi di database relazionale.
Un database relazionale può essere composto da due tabelle, utilizzate, ad esempio, da una farmacia per elaborare lo stoccaggio dei medicinali. La prima tabella raccoglie le informazioni sul farmaco e, quindi, ogni record include nome, principio attivo, prezzo e azienda di produzione. Ogni attributo si trova nella colonna corrispondente e il database assegnerà un ID univoco a ciascuna riga. Nella tabella numero 2, ci saranno le informazioni riguardo lo stoccaggio, ed ogni record includerà l’ID del farmaco, il prodotto, la quantità da stoccare.
Queste due tabelle hanno solo una cosa in comune, l’ID identificativo, presente nella colonna. Grazie a questa colonna, però, il database relazionale può creare una relazione tra le tabelle. Quando viene elaborata la richiesta di stoccaggio dei medicinali, il database viene tirato in causa e può consultare la tabella contenente le informazioni riguardanti lo stoccaggio estraendone le informazioni necessarie grazie alla colonna ID in comune tra le due tabelle.
I 3 database relazionali più utilizzati, ad oggi sono:
- Oracle DB – Oracle è il sistema di gestione di database relazioni commerciali più utilizzato. Molto popolare e superiore ai suoi rivali elabora i dati più velocemente e nel complesso è il RDBMS più famoso. Integra una grossa quantità di linguaggi come C, C++, Java e mette a disposizione utili funzionalità come JSON da linguaggio SQL.
- MySQL – rimane uno dei database più popolari da utilizzare nel 2022. Molto frequente il suo utilizzo nello sviluppo di applicazioni web. Si tratta di un sistema stabile e robusto. Scritto in C e C++ utilizza un linguaggio di query strutturato. MySQL 8.0 è la versione più recente.
- MS SQL Server – Microsoft offre un ottimo supporto per uno dei migliori software di database sul mercato, sia in locale che in cloud. È in sintonia con i sistemi Linux e Windows. MS SQL è un database multi-modello che supporta dati strutturati (SQL) e semi strutturati (JSON). Non è avanzato come il già citato Oracle ma ha subito notevoli update nel corso degli anni.
Ce ne sono tanti altri che andrebbero citati (PostgreSQL, MariaDB, ecc…), ma è importante focalizzarsi su quelli che sono i più utilizzati, specialmente lato backend. Avere un sistema di gestione del database relazionale efficiente ci permette di avere uno sviluppo senza intoppi e con il massimo supporto dal nostro database.
Perché preferire i database relazionali a quelli non relazionali?
I database non relazionali sono quelle banche di dati flessibili e scalabili che vengono utilizzati in modo massiccio dai social o nel cloud computing. Il database non relazionale è più performante solo in determinate situazioni. Conosciuti nell’ambiente come NoSQL vengono gestiti tramite documenti anziché tabelle, sfruttando la logica di catalogazione dei documenti anziché le comuni interrogazioni sulle query di MySQL. I dati vengono raccolti in documenti e associati a un’entità. L’applicazione valuta l’informazione contenuta nell’entità dentro il documento. La forza di questo principio è proprio che tutto quello che serve all’applicazione risiede nel documento già precompilato.
La flessibilità di questi database NoSQL è data dalla capacità di elaborare terabyte su terabyte di dati grazie alla catalogazione in documenti (i famosi file JSON), ma non risultano essere la prima scelta nel caso in cui si deve andare a lavorare con database di piccola taglia, come, ad esempio, per applicazioni web (esclusi i social network) oppure diversi campi dell’IoT. Un esempio di database NoSQL molto diffuso è MongoDB.