La gestione dei database: da cos'è un database alle normative sulla protezione dei dati.

Gestire database è il nostro core business, ma anche la nostra passione. Ecco una guida introduttiva ma completa all'amministrazione dei database. Vuoi saperne di più? 

Contattaci

Cos'è un database?

Un database è un archivio di dati strutturato in modo omogeneo che consente da una parte di gestire ed aggiornare le informazioni in modo razionale, dall'altra di eseguire ricerche anche complesse. 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.


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ù possibile brevi. Un database non configurato in maniera ottimale può causare diversi problemi alle applicazioni, come ad esempio lentezza dei gestionali aziendali.


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.


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 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 di un database e al troubleshooting di eventi 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. 


L’amministratore di database ideale 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.


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 passaggi 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.
     

Monitoraggio del 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, il prodotto che utilizziamo da anni 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 di questi 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 come DBA, effettuare una serie di controlli a seconda della complessità e delle dimensioni del sistema.

Inoltre, c'è da considerare un aspetto ulteriore: 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, 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 dati 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, ecco perché.


Aggiornare un database

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. È sicuramente una delle impostazioni più importanti di un database ed è spesso ignorata o non configurata correttamente ma, se usata consapevolmente, può  portare ad inaspettati benefici in termini di performance.


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. 


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.