La gestione dei database: dalla definizione di database alle normative sulla protezione dei dati.

La gestione dei database è il nostro lavoro ma anche la nostra passione. Ecco una guida introduttiva ma esaustiva all'amministrazione dei database. Sei vuoi saperne di più o hai un'esigenza particolare, prenota una consulenza con i nostri esperti.

Cos'è un database?

Iniziamo dando una risposta alla domanda "cos'è un database: un database è un archivio di dati strutturato in modo omogeneo e organizzatoche consente da una parte di gestire ed aggiornare le informazioni in modo razionale, dall'altra di eseguire ricerche anche complesse, garantendo quindi accesi anche multipli ai dati veloci e contemporanei. Quasi tutte le applicazioni informatiche, dai gestionali aziendali alle app per smarthphone, utilizzano un database, la cui efficienza è fondamentale per il corretto funzionamento delle applicazioni stesse. 


I database vengono gestiti tramite appositi motori, detti DBMS (acronimo di database management system). I più utilizzati al mondo sono Oracle, MySQL e SQL Server di Microsoft, tutti database relazionali. Un altro software molto diffuso per la creazione e la gestione di database, è Microsoft Access.


Cosa significa gestire un database e perché è importante?

Gestire un database significa assicurare le funzionalità, la sicurezza, le prestazioni, la scalabilità e l'alta disponibilità dei sistemi, in modo che  le applicazioni abbiano un ambiente di supporto ai dati che sia il migliore possibile e che siano in grado di accedere i dati in tempi il più brevi possibile. Infatti, i database sono parti fondamentali delle infrastrutture informatiche aziendali, preposte alla gestione dei dati.  Grazie ad un buono stato di salute dei database che i software aziendali utilizzano come archivio, si ottengono i maggiori vantaggi nel lavoro quotidiano. Al contrario, un database non configurato in maniera ottimale può causare diversi problemi alle applicazioni, come ad esempio lentezza dei gestionali aziendali, anche estrema.


Per fare questo, sono fondamentali sia la configurazione iniziale che il mantenimento nel tempo delle prestazioni. Un'analisi preliminare potrà individuare le reali necessità del sistema, in modo da poter ottimizzare anche i costi con una soluzione scalabile nel tempo e non sovradimensionata.


Uno dei compiti primari di un database administrator, o DBA per amor di brevità, è assicurarsi che i database siano stabili, ottimizzati e veloci. In questo modo, tutte le applicazioni aziendali che si appoggiano a tali database potranno utilizzare un ambiente di supporto ai dati che sia il migliore possibile e saranno in grado di accedere ai dati in tempi brevi. Inoltre, particolare attenzione va posta nella sicurezza, per fare in modo che i dati aziendali non vengano danneggiati, trafugati o perduti.


La gestione dell'infrastruttura da parte dell'amministratore del database ne garantirà il buon funzionamento, utilizzando gli operatori più appropriati le scegliendo le configurazioni più idonee per ciascuna funzione, ed evitando quelle incorrette o controproducenti come l'Autoshrink. 


I diversi aspetti della gestione database

La gestione di un database non si limita ad un solo aspetto, ma comprende diverse attività che vanno portate avanti di concerto per tutta la durata della vita di un'infrastruttura database. Dall'amministrazione del database vera e propria si passa all'Health Check periodico e al monitoraggio del database e dell'infrastruttura IT, ma anche altre attività come migrazioni, risoluzione di problemi e gestione degli utenti e della sicurezza. 


Lo scopo principale della gestione dei database è anticipare e prevenire i problemi, in modo da ridurre progressivamente gli interventi con carattere di urgenza che vengono richiesti quando si verifica un malfunzionamento o è già avvenuta una perdita di dati.


Database Administration: la figura professionale del DBA

Il DBA o Database Administrator è la figura che si occupa della gestione quotidiana dei database.  In particolare, deve garantire le performance, l’integrità e la sicurezza di un database. Per soddisfare questi aspetti, viene coinvolto continuamente in problematiche legate alla pianificazione e sviluppo dell'infrastruttura database e al troubleshooting di eventi problematici segnalati dagli utenti o dai sistemi di monitoraggio.


Questo ruolo non è destinato a sparire con il veloce sviluppo tecnologico in corso, bensì a modificare i propri compiti, acquisire competenze sempre maggiori ed approfondite nei campi dell’architettura di un database, nei pattern implementativi che garantiscono più efficienza, nei suoi meccanismi interni. Il ruolo del DBA sarà infatti sempre più strategico e fondamentale, con cambiamenti come l'avvento del cloud e la continua evoluzione dei servizi offerti.


Tipologie di servizio DBA
Sono disponibili diverse modalità di fruizione del servizio di Database Administration Datamaze: a seconda delle esigenze aziendale, è possibile gestire i database da remoto, anche in cloud, e affiancare il DBA aziendale, oppure erogare tutti i servizi DBA in caso questa figura non sia presente internamente. 


Scegliere di esternalizzare i servizi di DBA, con gestione da remoto, presenta numerosi vantaggi, non ultimi un tempo di risposta rapido in qualsiasi momento e costi ridotti.


Come scegliere un DBA

Un DBA professionista è in grado di assicurare un aggiornamento continuo dell'infrastruttura database alle nuove versioni e alle ultime tecnologie. Per fare un esempio molto semplice, possiamo citare SQL Server, che da qualche anno è disponibile anche su cloud, pur essendo nato come DBMS on-premises. Le soluzioni cloud su Azure presentano diverse opzioni di gestione, con costi differenti, per cui una figura specializzata come un DBA è indispensabile per una corretta gestione e prima ancora per scegliere la soluzione più adatta alle esigenze aziendali.


L’amministratore di database si preoccuperà di aggiornare continuamente le proprie competenze, per poter fornire un servizio sempre all’avanguardia e adatto ai progetti aziendali. Appoggiarsi ad un’azienda specializzata consente di poter fare affidamento sui risultati di una formazione continua senza l’onere di doverla portare avanti in azienda.


L'evoluzione del ruolo del DBA

L'ascesa del data engineering e della scienza dei dati ha significativamente ampliato il panorama di operatività dei DBA, in seguito all’introduzione di nuove tecnologie, architetture e paradigmi. Il ruolo del DBA si sta evolvendo in risposta alle sfide poste dall’era del data engineering e della scienza dei dati, in particolare relativamente al cloud, alla sicurezza dei dati, alla privacy e all’integrazione con nuove tecnologie come l’intelligenza artificiale ed il machine learning. Inoltre, l’introduzione delle suddette tecnologie sta ridefinendo il ruolo del DBA, spingendolo ad ampliare le sue competenze e a adattarsi a un contesto in rapida evoluzione. 


Database Health Check

L'analisi dello stato di salute di un database è indispensabile quando si avviano nuove attività su un'infrastruttura esistente, ad esempio nel momento in cui si avvia un servizio di monitoraggio, ma deve anche essere ripetuta in modo regolare per verificare il buon stato di salute dei sistemi. I principali punti di analisi che vanno a costituire un Health Check sono:

  • Analisi approfondita dell’infrastruttura utilizzata dal sistema DBMS. 

  • Assessment delle reali necessità di risorse legate al business. 

  • Verifica dei requisiti indispensabili per garantire la continuità e la sicurezza del business. 


Al termine dell'analisi, viene fornito un documento tecnico che esamina tutti i risultati registrati.

Monitoraggio dei database

Il monitoraggio ha la funzione di tenere costantemente sotto controllo l'infrastruttura, per poter intervenire tempestivamente in caso di necessità. Solitamente con il termine monitoraggio database si intende il monitoraggio attivo 24 ore su 24, che viene eseguito con un apposito servizio di monitoring come PRTG di Paessler o Redgate SQL Monitor, entrambi prodotti che utilizziamo regolarmente e con successo in Datamaze.


Prima di avviare un sistema di monitoraggio è bene prendere in considerazione alcuni aspetti, che andranno a influenzare la scelta non solo dello strumento, ma anche dell'eventuale servizio esterno che si va a scegliere: quali aspetti monitorare, l'apprendimento delle funzionalità dello strumento di monitoring, il settaggio degli allarmi che arrivano via mail sono solo alcuni dei numerosi aspetti fondamentali del monitoraggio.


Oltre al monitoraggio, ci sono una serie di parametri ed impostazioni da controllare periodicamente. Sarà compito dell'amministratore del database, conosciuto anche come DBA, effettuare una serie di controlli a seconda della complessità e delle dimensioni del sistema.


Inoltre, c'è da considerare un'ulteriore possibilità: il monitoraggio del database è solamente un aspetto del monitoraggio dell'infrastruttura IT, che può prevedere di tenere sotto controllo qualsiasi parametro, anche fisico, grazie ad un'amplia gamma di sensori disponibili. Per evitare di perdersi nelle notifiche e per poter sfruttare l'investimento del sistema di monitoraggio, è necessario tenere presente quali sono gli aspetti fondamentali e quali invece risultano secondari e quindi hanno una priorità inferiore.


Progettazione e configurazione di database

Le considerazioni da fare prima di progettare e realizzare un'infrastruttura database sono strettamente correlate all'utilizzo che verrà fatto di quella infrastruttura. Occorre infatti valutare: le tecnologie offerte dal mercato, il disegno delle strutture dati, le caratteristiche necessarie per fare in modo di garantire disponibilità, prestazioni e sicurezza agli utenti. Per essere certi di compiere le scelte corrette, si può rivolgersi ad un servizio di consulenza dedicato


A seconda dei programmi che utilizzeranno i database, delle funzionalità richieste e della struttura produttiva stessa, occorre scegliere e disegnare il corretto modello dati, in grado di rispondere con efficienza, stabilità e rapidità alle richieste dell’infrastruttura informativa.


Uno dei fattori primari da considerare è l’evoluzione dei database nel tempo. Un sistema non ottimizzato o una struttura dati non appropriata funzioneranno in modo magari sufficiente all’inizio, quando il volume di dati da trattare è ridotto. Ma con la crescita delle attività aziendali, i dati diventeranno sempre più numerosi ed eventuali difetti o mancanze in fase di progettazione avranno ripercussioni sempre maggiori, con l’emergere di problematiche come lentezza e applicazioni che si bloccano.


Nel progettare database relazionali con strumenti quali SQL Server di Microsoft, è necessario effettuare la progettazione in modo che i dati registrati in un solo luogo, evitando informazioni ridondanti: questo non solo consente di ottimizzare spazio su disco e risorse, ma anche di facilitare le modifiche dai dati, evitando di lasciare copie del dato obsolete sparse per vari punti del database. Inoltre i dati devono essere formattati in modo da essere restituiti dalle query in modo corretto, per garantirne la coerenza in qualsiasi momento.


Occorre inoltre considerare che potrebbero verificarsi esigenze particolari nella realizzazione dell'infrastruttura, ad esempio durante i progetti di consolidamento di una infrastruttura SQL c'è spesso la necessità di spostare i file dei database di sistema, tra cui il TempDB, su una nuova unità.


Un database progettato correttamente consente ad utenti ed applicativi di accedere alle informazioni (ovvero i dati) in modo sempre efficiente ed accurato.


Una corretta progettazione e configurazione è essenziale per raggiungere gli obiettivi di performance e correttezza dei dati per cui si utilizzano uno o più database, quindi seguire i principi di una progettazione corretta e ottimizzata è fondamentale. Scegliere Datamaze come partner per la progettazione di database conviene davvero, ecco perché.


Aggiornare un database

Al di là degli aggiornamenti periodici e dell'applicazione dei cosiddetti 'service packs', ci sono altri aspetti da tenere in considerazione nell'ambito aggiornamento di un'infrastruttura SQL Server.


La caratteristica di un database denominata "livello di compatibilità" (compatibility level) è stata progettata per consentire di utilizzare database creati su versioni precedenti di SQL Server in favore di una migrazione ad una versione più recente. Si tratta sicuramente di una delle impostazioni più importanti di un database e spesso viene ignorata o non configurata correttamente ma, se usata consapevolmente, può  portare ad inaspettati benefici in termini di performance. Conoscere a fondo queste caratteristiche di compatibilità ci consente di utilizzarle a nostro vantaggio.


Backup e disaster recovery

Una parte essenziale della progettazione di un sistema informativo con relativi database, è la realizzazione di un programma di backup e di un piano di disaster recovery da mettere in atto nel caso ci siano problemi che richiedono il ripristino del database. Infatti, non basta un backup periodico, ma serve avere sempre pronta anche la strategia per ripristinare i dati nel minor tempo possibile. A seconda del DBMS utilizzato, come ad esempio SQL Server od Oracle, sarà differente anche la gestione dei backup.


Sicurezza del database

Il database è il luogo dove vengono custoditi tutti i dati di un'azienda, perciò è fondamentale proteggerlo, mantenendo sempre aggiornato il DBMS, affidandosi a partner ufficiali e preparati e tutelandosi in questo modo contro rischi di intrusione e furto dei dati. Non si tratta di un'ipotesi remota: sono numerose le vulnerabilità che possono venire sfruttate per trafugare dati, come nel caso di ZombieLoad per i processori Intel oppure del backdoor Skip 2.0. La vulnerabilità più diffusa rimane comunque la SQL Injection, contro cui è possibile premunirsi in fase di progettazione, curando la logica del database.


Normative e privacy

Il nuovo regolamento europeo per la protezione dei dati personali, meglio conosciuto come GDPR, fornisce indicazioni specifiche

per quanto riguarda i dati conservati nei database, il modo idoneo di processarli, i diritti dei titolari dei dati e i doveri del proprietario e del gestore del database, nonché del responsabile al trattamento dei dati personali.

Hai bisogno di aiuto nella gestione dei database?
​Prenota un incontro senza impegno per parlare delle tue esigente di data management.