Introduzione
Nel precedente articolo abbiamo esplorato come il ruolo del Database Administrator (DBA) sia mutato in risposta alle evoluzioni tecnologiche e ai cambiamenti nei requisiti aziendali. Abbiamo assistito all'impatto trasformativo del cloud computing, che ha spostato molte delle responsabilità tecniche tradizionalmente a carico dei DBA verso soluzioni automatizzate e gestite come il Database as a Service (DBaaS). Questo ha liberato i DBA da compiti routinari, permettendo loro di concentrarsi su aspetti più strategici della gestione dei dati quali la sicurezza, la privacy e l'ottimizzazione delle prestazioni.
Con l'introduzione del General Data Protection Regulation (GDPR) e di altre normative sulla privacy, i DBA sono ora chiamati a garantire non solo la sicurezza dei database da intrusioni e furti, ma anche la loro conformità con le leggi vigenti sulla protezione dei dati, una sfida che richiede una profonda conoscenza delle normative e delle migliori pratiche di sicurezza. Al contempo, l'avvento dell'intelligenza artificiale (AI) e del machine learning (ML) sta ridefinendo ulteriormente questo ruolo, offrendo nuove opportunità per ottimizzare le operazioni, migliorare l'analisi dei dati e implementare soluzioni predittive capaci di anticipare problemi e tendenze.
In quest'era digitale, l'integrazione dell'AI nei sistemi di gestione dei dati SQL Server apre un panorama di possibilità che spaziano dall'automazione avanzata alla generazione di insight, richiedendo agli amministratori di database una rinnovata comprensione e adattabilità. L'obiettivo di questo articolo è esaminare come gli strumenti e le tecnologie basati sull'AI possano essere integrati nella routine lavorativa del DBA, svelando soluzioni già esistenti e prospettive future che potrebbero riscrivere le regole del gioco.
Una nuova generazione di strumenti
Il termine Intelligenza Artificiale è diventato ubiquo nel settore IT, con l'AI generativa che si pone al centro dei riflettori. Questo tipo di tecnologia ha rivoluzionato il settore, spingendo giganti come OpenAI, Google e Meta a investire massicciamente in nuovi strumenti e tecnologie. OpenAI, in stretta collaborazione con Microsoft, ha sviluppato i modelli GPT che alimentano ChatGPT, ampliando significativamente le capacità analitiche e operative dei DBA. Google, già un pioniere nell'IA e nel machine learning, ha lanciato il modello Gemini, elevando ulteriormente il livello delle tecnologie a disposizione dei professionisti IT. D'altra parte, Meta offre un approccio diverso con il suo modello Llama, disponibile open source, che permette alle aziende di gestire l'AI sui propri server, lasciando così spazio per effettuare degli esperimenti.
Questi avanzamenti non solo definiscono nuove frontiere per l'automazione e la gestione dei dati ma introducono anche una serie di sfide e opportunità. I DBA sono ora chiamati a navigare tra queste opzioni per scegliere gli strumenti più adatti alle necessità aziendali. Questa evoluzione nell'AI offre la possibilità di esplorare soluzioni innovative come la generazione automatizzata di codice e dashboard intelligenti per il monitoraggio delle prestazioni dei database, promettendo miglioramenti significativi in termini di efficienza e precisione.
Generazione di documentazione
La generazione di documentazione rappresenta un caso d’uso particolarmente interessante per l’utilizzo dell’intelligenza artificiale generativa. Prendiamo in considerazione un caso immaginario di un cliente che ha numerosi pacchetti SSIS (SQL Server Integration Services) creati e modificati da una persona che non lavora più in azienda. Tale persona non ha mai redatto una singola pagina di documentazione, rendendo la comprensione dei pacchetti quasi impossibile. I file SSIS sono costituiti da un grande volume di XML, che fondamentalmente è testo. Tradizionalmente, ci sono due opzioni principali per affrontare questa problematica:
- Acquisto di soluzioni commerciali: Questo approccio richiede l'acquisto di software specifico che può generare documentazione dettagliata per i pacchetti SSIS. Questo metodo, tuttavia, implica una serie di passaggi burocratici come la ricerca di fornitori, la valutazione dei prodotti e l'ottenimento delle approvazioni necessarie, rendendo il processo spesso lungo e dispendioso.
- Analisi manuale: L'alternativa è l'analisi manuale di ogni singolo pacchetto SSIS attraverso un ambiente di sviluppo. Questo metodo è estremamente laborioso e richiede una notevole quantità di tempo e sforzo, con il DBA che deve esaminare ogni pacchetto individualmente per redigere la documentazione.
Per chi non fosse pratico del contenuto di un pacchetto SSIS, in Script 1 è riportato un esempio di un pacchetto molto basico per il trasferimento di dati tra due tabelle all’interno di un database SQL Server.

Di fronte a queste sfide, l'AI generativa offre un'alternativa rivoluzionaria che può semplificare e accelerare il processo di documentazione. Fornendo il file dtsx come input al modello, è possibile generare automaticamente documentazione comprensibile e accurata, riducendo così il carico di lavoro manuale e il bisogno di soluzioni software costose. Questo tipo di innovazione non solo aumenta l'efficienza, ma permette anche alle aziende di gestire meglio le risorse legacy come i pacchetti SSIS in assenza delle competenze originali che li hanno creati.
Dando in input il testo come fornito nello Script 1 insieme ad una breve descrizione dell’output desiderato, ad esempio:

otteniamo l’output come illustrato nello Script 2.
Generazione di Codice
La generazione di codice mediante l'intelligenza artificiale illustra perfettamente l'importanza del "prompt engineering". Essere specifici nei prompt inviati al modello AI può significativamente alterare la qualità e l'applicabilità dell'output generato. Un problema comune tra gli utenti meno esperti è la mancanza di specificità nei prompt, che porta a risultati deludenti quando il modello non interpreta automaticamente tutti i concetti non esplicitati nella richiesta.
L'efficacia dell'interazione con il modello migliora con l'uso: iniziando con istruzioni generali, gli utenti possono affinare progressivamente la loro richiesta attraverso un dialogo iterativo fino a raggiungere la soluzione desiderata. Implementare "binari" attraverso la definizione di un concetto specifico (system prompt) può guidare il modello a concentrarsi esclusivamente su una porzione di task desiderati, migliorando la pertinenza delle risposte. Questa è una pratica che non solo migliora la rilevanza delle risposte ma stabilisce anche confini chiari per l'interazione con il modello.
GitHub ha innovato ulteriormente in questo ambito con il suo GitHub Copilot, sviluppato in collaborazione con OpenAI. Copilot utilizza una variante del modello GPT per suggerire completamenti di codice direttamente nell'IDE, supportando una gamma di linguaggi di programmazione e framework. L'uso di questi strumenti in contesti di sviluppo, come mostreremo nell'esempio pratico con Azure Data Studio, può significativamente ridurre i tempi di sviluppo e migliorare l'accuratezza del codice generato. Lo scopo principale dello strumento è quello di suggerire completamenti di codice in vari linguaggi di programmazione e framework direttamente all'interno dell'editor di codice (di recente il plugin è supportato anche dalle nuove versioni di SQL Server Management Studio) ed in modo non invadente.
Esempio di funzionamento
Supponiamo che il DBA debba creare un database (Figura 1), due tabelle ed una vista utilizzando il plugin di GitHub Copilot su Azure Data Studio. Per semplicità chiameremo le tabelle SourceTable (Figura 2) e DestinationTable (Figura 3) per dare continuità all’esempio precedente. Inseriremo dei dati casuali all’interno di ciascuna tabella (Figura 4) per poter infine generare una vista (Figura 5).

Figura 1 – Creazione del database ‘IntegrazioneAI’.

Figura 2 – Creazione della tabella SourceTable, specificando il solo nome dei campi.
Figura 3 – Creazione della tabella DestinationTable, specificando il solo nome dei campi.
Figura 4 – Inserimento di dati ‘casuali’ all’interno delle tabelle appena create.

Figura 5 – Creazione di una vista che possa rappresentare la persona, prelevando dati da entrambe le tabelle appena create.
Questo semplice esempio pratico vuole dimostrare come l’introduzione di strumenti basati sull’AI nella generazione di codice offre ai DBA la possibilità di ridurre drasticamente il tempo speso nella scrittura manuale del codice, migliorando la precisione e permettendo di dedicare più tempo all’ottimizzazione ed alla strategia.
Tuttavia, è importante ricordare che questi strumenti non sono perfetti, il che è un vantaggio poiché stimolano ancora l'intervento umano per affinamenti e personalizzazioni, risparmiando però tempo prezioso nella fase iniziale di sviluppo. Utilizzare questi strumenti in conformità con le politiche organizzative garantisce al DBA un equilibrio efficace tra automazione e controllo umano.
Flowchart
Nel contesto della progettazione di sistemi informativi, sviluppare un modello di dati solido è fondamentale. Questo processo, noto come modellazione dei dati, è essenziale per definire come le informazioni vengono raccolte, memorizzate e interconnesse all'interno del sistema. Un elemento cruciale di questa fase è l'uso dei Diagrammi delle Relazioni Entità (Entity Relationship Diagram: ERD), che non solo aiutano a visualizzare la struttura del database ma fungono anche da strumenti di comunicazione tra i vari stakeholder del progetto. Un approccio strutturato di questo tipo assicura che il database sia progettato per supportare efficacemente le operazioni dell'applicazione, garantendo al contempo la scalabilità e la manutenibilità del sistema nel tempo.
Nel prossimo esempio, utilizzeremo Mermaid per sviluppare un diagramma ERD per un nuovo applicativo per la gestione dei prestiti di libri in una biblioteca, evidenziando la potenza e l'efficacia di questo metodo.
Supponiamo di voler creare un modello di dati per una nuova applicazione destinata a gestire i prestiti di libri. Cominceremo con campi come posizione, collezione, titolo, utente, e ISBN, senza specificare inizialmente come questi si relazionino tra loro. Dopo aver definito questi campi, procederemo a generare il diagramma, mostrando visivamente le relazioni attraverso Mermaid, il cui codice e risultati saranno presentati nel seguito. Di seguito la descrizione della richiesta, come input del modello di AI:
“Crea un diagramma Mermaid ERD. Sto cercando di creare un modello di dati per una nuova applicazione con l'obiettivo di tenere traccia dei libri prestati in una libreria. Cominciamo con i seguenti campi: posizione, collezione, titolo, utente, isbn.”
Va notato che la descrizione fornita non è sufficientemente dettagliata per definire le relazioni tra i campi menzionati. Ci siamo intenzionalmente limitati ad un elenco di campi senza però specificare come questi si relazionino tra di loro. L’output è visibile in codice in Script 3 e la sua rappresentazione grafica in Figura 6.

Come è possibile notare in Script 3, il diagramma è a tutti gli effetti un paragrafo di codice. Recentemente, il concetto di diagram as code (diagramma come codice) ha guadagnato popolarità, trasformando il modo in cui i diagrammi vengono creati e gestiti. Questo approccio permette di trattare i diagrammi come se fossero artefatti software, rendendoli facilmente archiviabili in repository come GitHub, confrontabili attraverso diff, e modificabili attraverso revisioni incrementali. Utilizzare un linguaggio di definizione come Mermaid per sviluppare questi diagrammi permette di integrarli direttamente in strumenti di diagrammazione automatizzati, migliorando l'efficienza del processo e facilitando una collaborazione più efficace all'interno dei team.
Questa tecnica non solo semplifica la modifica, la condivisione e la collaborazione sui diagrammi ma potenzia anche l'interazione dinamica con questi strumenti visivi, essenziali per la progettazione di una base dati.
Privacy dei Dati Sensibili
Fornire dati sensibili ad un modello sul cloud potrebbe non essere la soluzione preferibile per tutte le aziende. Se si vuole gestire un modello generativo localmente è necessario optare per un modello open-source, come Llama di Meta: modelli proprietari come GPT fornito da OpenAI non sono liberamente scaricabili.
Questo solleva una problematica che Azure e OpenAI stanno cercando di risolvere. La preoccupazione di non voler condividere informazioni dettagliate dei database con qualsiasi fornitore di servizi cloud di modelli linguistici è assolutamente lecita. Esiste tuttavia una differenza significativa tra l’esecuzione locale di un modello e quella in cloud. Se si esegue un modello localmente, si è limitati dalle risorse hardware disponibili, il che rende difficile l’esecuzione di modelli di grandi dimensioni.
In questi casi, l'uso del cloud diventa decisamente vantaggioso. Azure Open AI è un esempio di come si possa utilizzare il cloud mantenendo un certo livello di controllo e sicurezza.
Come riponiamo la nostra fiducia in Microsoft per gestire account di archiviazione e database SQL su Azure, è possibile estendere tale fiducia anche all'uso di Azure Open AI, con la garanzia che Microsoft non utilizzerà i dati per fini impropri né accederà a dati sensibili per addestrare ulteriormente i modelli GPT. Potrebbe accadere invece che servizi ad uso gratuito come ChatGPT utilizzino le conversazioni per scopi di miglioramento del modello.
Conclusione
In questo articolo, abbiamo esaminato il potenziale trasformativo dell'intelligenza artificiale nel campo della gestione dei database, ponendo particolare attenzione a come gli strumenti AI possano essere sfruttati per migliorare le operazioni quotidiane dei Database Administrators (DBA). Sebbene l'AI non sia ancora pronta per sostituire completamente il ruolo umano, il suo impatto sul miglioramento della produttività e della precisione è innegabile.
Guardando al futuro, è chiaro che la professione del DBA sarà sempre più influenzata dalle innovazioni tecnologiche. I professionisti IT dovranno non solo familiarizzare con gli strumenti basati sull'AI, ma anche sviluppare una profonda comprensione di come queste tecnologie possano essere integrate e sfruttate per trasformare i processi esistenti. La capacità di adattarsi e di integrare nuove soluzioni tecnologiche diventerà un vantaggio competitivo cruciale, riflettendo l'importanza dell'aggiornamento continuo delle competenze in un ambiente lavorativo in rapida evoluzione.
Pertanto, incoraggiamo tutti i DBA e i professionisti IT a sperimentare attivamente con l'AI e a rimanere al passo con le ultime tendenze tecnologiche. Solo attraverso l'apprendimento continuo e l'innovazione si può sperare di rimanere rilevanti e competitivi nel panorama professionale del futuro.
di Matteo Ambrosini, pubblicato il 14 gennaio 2026