La gestione dei database (database management system – DBMS) e di altri di sistemi di dati sta diventando un elemento sempre più rilevante nel mercato IT, in quanto nell’era del digitale le aziende si ritrovano ad acquisire, trattare ed analizzare un volume ed una varietà di dati sempre maggiore, che necessitano di sistemi e soluzioni in grado di automatizzare e ottimizzare l’esecuzione di tali processi.

I database management system vantano ormai una lunga tradizione nella storia dell’information technology, con radici che risalgono agli anni Sessanta, quando Charles Bachman propose il primo “Integrated Data Store”, presto seguito dal primo “Information Management System” dei mainframe IBM, un DBMS gerarchico il cui schema architetturale risulta ancora oggi per molti versi attuale.

Da allora sono seguite molte evoluzioni, in particolare negli anni Settanta, quando Edgar Codd (IBM) ha introdotto i database relazionali, a cui sono seguiti i DBMS dedicati (RDMBS), come Ingres, sviluppato presso la University of California at Berkeley.

Negli anni Novanta, la crescente diffusione del digitale ha dato un notevole impulso alle tecnologie relative alla gestione dei dati. Sono arrivati i primi DBMS per database NoSQL, che hanno finalmente variato uno scenario che tuttora vede la prevalenza dei database SQL relazionali.

Vediamo cosa sono i database management system (DBMS), cercando di comprendere perché sono così diffusi nei sistemi IT di tutti i settori di business.

Cos’è una database management system o DBMS

Il soggetto principale è costituito dal database, un archivio di informazioni raccolte e utilizzate dalle organizzazioni per soddisfare differenti esigenze di business. Il database management system (DBMS) è costituito dal software che consente di gestire, accedere e modificare le informazioni contenute nei database.

Il database management system non è riferibile ad un’unica attività, ma una serie di azioni e sistemi chiamati e gestire i dati lungo il loro intero ciclo di vita.

La trasformazione digitale ha fatto sì che i dati siano in continuo aumento, e le organizzazioni sono chiamati a gestirli in maniera sempre più accurata, per evitare di incorrere in una serie di inefficienze capaci di avere una ricaduta negativa sul business, a seguito di cali di performance e problemi legati alla disponibilità, alla conformità e alla sicurezza informatica.

Per tali ragioni la gestione dei database è diventata sempre più un’attività “ombrello”, che sovrintende numerose tecniche e metodi che le organizzazioni intraprendono per governare i loro dati in maniera efficiente. Tra le azioni basilari di un DBMS, ritroviamo infatti:

  • Calcolo e pianificazione dello storage in funzione della crescita del volume di dati previsto
  • Implementazione di una solida soluzione di backup e disaster recovery
  • Archiviazione, partizione, replicazione e mascheramento dei dati
  • Monitoraggio delle performance relativo all’utilizzo dei dati da parte delle applicazioni

Come funziona

Il database management system (DBMS) è un sistema di gestione che fornisce il controllo e la visibilità su tutti gli aspetti utili a garantire l’integrità e le prestazioni dei database (DB) presenti in azienda.

Per soddisfare tali esigenze, il DBMS organizza i file presenti nei DB e gestisce l’accesso da parte degli utenti autorizzati, secondo le policy previste. In altri termini, il DBMS consente agli utenti di leggere, creare e modificare i file a seconda dei privilegi di cui dispongono, provvedendo a garantire la coerenza dei dati, archiviarli e recuperarli quando necessario.

Il DBMS non sostituisce di per sé la figura professionale del DB manager / admin ma lo aiuta a svolgere al meglio il suo compito, automatizzando tutte le procedure necessarie per garantire la disponibilità e il controllo di qualità sui dati aziendali.

Le diverse tipologie

I database management system attualmente più diffusi nei sistemi IT sono il Relational DBMS, il NoSQL DBMS, il NewSQL DBMS, l’in-memory DMBS, il columnar DBMS, il multimodel DBMS.

Sono disponibili on-prem, in cloud o in modalità ibrida, che prevede ad esempio l’hardware del sistema DB nel data center aziendale e il sistema di gestione disponibile in cloud, per garantire una maggior comodità di accesso. Vediamoli in una sintesi di dettaglio.

RDBMS

Si tratta della tipologia di database management system più diffusa e a volte vengono definiti anche SQL DBMS. Utilizzano dati tabellari in righe con i valori espressi nelle colonne. Gli RDBMS sono disponibili sia con software open source (es. PostgreSQL) che proprietario, come nel caso di Oracle, MySQL, Microsoft SQL Server e IBM DB2.

NoSQL database management system

Ne esistono di vari tipi, per trattare altrettante tipologie di database, ed hanno in comune la capacità di trattare strutture di dati poco definite, che possono evolvere rapidamente nel tempo.

NewSQL

Si tratta di sistemi per database relazionali di moderna concezione, capaci di gestire database SQL con le stesse performance scalabili dei sistemi NoSQL. Sono di fatto dei sistemi per database SQL relazionali, con un’architettura fault-tolerant, che dispone oltretutto del supporto ACID (atomicity, consistency, isolation, durability) per garantire la consistenza dei dati.

In-memory DBMS

Prevendono lo storage, la gestione e la manipolazione dei dati nella memoria principale del sistema, per ottenere importanti benefici sul piano della performance, a cominciare dalla sensibile riduzione delle latenze, dal momento che viene bypassata la lettura su disco e vengono complessivamente utilizzate meno risorse di sistema.

Columnar database management system

Si occupano di gestire database tabellari con una sostanziale differenza rispetto ai modelli tradizionali, in quanto i dati sono disposti sulle colonne, anziché sulle righe. Si tratta di un sistema frequentemente utilizzato nei data warehouse, che trattano un elevato numero di dati simili tra loro.

Multimodel DBMS

I multimodel DBMS comprendono indistintamente tutti i database management system capaci di gestire più modelli di database, tra quelli precedentemente citati. Il vantaggio fondamentale che tali sistemi offrono è infatti la possibilità di gestire vari database senza dover prevedere più DBMS.

Tra gli esempi diffusi sul mercato, IBM Db2 è un DBMS relazionale, ma prevede anche funzioni da columnar DBMS. Altri sistemi sfruttando proprietà multimodel grazie ad una serie di add-on opzionali, per supportare ad esempio DB Oracle, MongoDB o PostgreSQL.

Che funzionalità deve avere un DBMS?

In commercio esistono varie tipologie di DBMS, ognuno dotato delle proprie caratteristiche, utili a soddisfare molteplici esigenze che possono manifestarsi sui vari sistemi IT. Tuttavia, si può affermare che un DBMS sia in grado di garantire almeno le seguenti funzioni fondamentali nella gestione di un sistema di dati:

  • Definire e descrivere i dati contenuti nel sistema e il loro stato di disponibilità
  • Definire e applicare regole e standard per garantire l’integrità dei dati
  • Gestire i backup e le procedure di disaster recovery in caso di incidenti e violazioni dei dati
  • Definire e mantenere le policy di sicurezza e i diritti di accesso da parte degli utenti
  • Garantire accesso simultaneo a più utenti allo stesso database

Per garantire tali funzioni, i DBMS sono sostanzialmente delle piattaforme costituite da vari software (tools), in grado di integrare più componenti funzionali. Tra i principali, possiamo citare:

  • Storage engine: rappresenta il cuore tecnologico del DBMS e si occupa di archiviare i dati, comunicando con il file system del sistema operativo, oltre a costituire il gateway per le query SQL.
  • System catalog (database dictionary): sempre più frequentemente definito metadata catalog, per via del fatto che funge da repository per tutti gli oggetti presenti nel database, di cui contiene tutte le informazioni.
  • Optimization engine: ha compito di processare le query e trasformarle in comandi eseguibili e viene utilizzato per ottimizzare i DB per migliorarne le performance.
  • Query processor: ogni volta che un’applicazione effettua una richiesta di dati (data query) questa viene inoltrata all’optimization engine. Il query processor ha il compito di gestirla e fornire le risposte, facendo a tutti gli effetti da ponte tra il DB e le query.
  • Database access language: è una API consente agli utenti di interfacciarsi con i database per effettuare le richieste di dati. Il più noto è senza dubbio il SQL (structured query language), il data access language dei database relazionali.
  • Log manager: tiene traccia di tutte le operazioni (lettura, creazione, modifica, eliminazione) operate sui dati. Si tratta di informazioni utili soprattutto per i sistemi di backup e recupero dei dati, per ottenere una corretta visibilità sulle versioni più recenti o su quelle che si intende ripristinare.
  • Lock manager: è un componente che consente a più utenti di accedere al database simultaneamente ed è fondamentale nel gestire la modifica dei file quando vi operano almeno due utenti in contemporanea.

Alcuni esempi di database management system

L’impiego di un database management system è ormai un imperativo categorico per la maggior parte delle organizzazioni che possono definirsi davvero data-driven, senza considerare che i big data analytics sono ormai una leva fondamentale per generare valore nel contesto di molti modelli di business.

Se un tempo il DBMS era un sistema di cui erano soliti avvalersi le grandi aziende, ormai il loro utilizzo è sempre più diffuso nell’ambito delle PMI, dove i numeri relativi ai dati e al loro impiego simultaneo è in sensibile aumento, al punto da obbligarne l’ottimizzazione anche per una ragione di controllo dei costi, oltre che di complessità operativa.

A scopo puramente esemplificativo possiamo citare alcuni casi d’uso:

  • Nella manifattura, le aziende ricorrono sistematicamente a un DBMS per tracciare e gestire le supply chain, per avere visibilità delle merci in stock e da ordinare, ai fini di garantire un corretto flusso di continuità alla produzione, monitorare l’inventario e ottimizzare la logistica per ridurre i costi di magazzino.
  • Nel retail i database management system sono molto utilizzati per memorizzare le informazioni sui prodotti, sulle interazioni dei clienti, sull’attività degli store fisici, sugli e-commerce, sull’evasione degli ordini e molti altri aspetti correlabili alla cronologia delle vendite.
  • Nell’ambito dell’industria dei trasporti, i DBMS sono fondamentali per le applicazioni data-intensive che si occupano di schedulare i viaggi e le relative prenotazioni, con tutte le opzioni di modifica, cancellazione previste per i clienti.
  • Applicazioni per monitorare le transazioni, come gli ATM dei sistemi bancomat, che dispongono di un DBMS per tracciare gli utenti e le operazioni da essi effettuate.
  • I DBMS sono fondamentali per garantire la corretta operatività di tutte le linee di business aziendali. Nel caso delle risorse umane, un DBMS consente di gestire il personale e accedere a tutte le informazioni relative a indirizzi, contatti, salari e modalità di pagamento degli stipendi.