Data Intelligence · Text-to-SQL 📅 8 Maggio 2026 ⏱ 9 min di lettura

Text-to-SQL: cos'è e come interrogare il database aziendale in italiano

Immagina di poter chiedere al tuo database "Quali sono i clienti che non hanno ordinato negli ultimi 90 giorni?" e ricevere la risposta in pochi secondi, senza scrivere una sola riga di SQL. Questa è la promessa del Text-to-SQL — e oggi, con i modelli linguistici moderni, non è più fantascienza ma una tecnologia concretamente deployabile nelle PMI italiane.

Cos'è il Text-to-SQL (e cosa non è)

Il Text-to-SQL, noto anche come NL2SQL (Natural Language to SQL), è una tecnologia che traduce domande in linguaggio naturale — italiano, inglese, o qualsiasi altra lingua — in query SQL eseguibili su un database relazionale. L'utente non deve conoscere la struttura del database né la sintassi SQL: scrive o dice cosa vuole sapere, e il sistema genera automaticamente la query corretta e restituisce i dati.

Non è un semplice chatbot. A differenza di un assistente AI generico che risponde a spanne, un sistema Text-to-SQL interroga i dati reali del database e restituisce numeri esatti, aggiornati al secondo. Non stima, non allucina: legge.

Non sostituisce il DBA. Per query complesse, analisi statistiche avanzate o ottimizzazioni di performance, il database administrator rimane indispensabile. Il Text-to-SQL è pensato per gli utenti business — commerciali, responsabili di produzione, direttori — che devono accedere ai dati ogni giorno senza aprire un ticket all'IT.

Come funziona tecnicamente

Il processo avviene in tre fasi, tutte automatiche e trasparenti per l'utente finale:

1. Schema understanding

Prima ancora che l'utente faccia una domanda, il sistema analizza e "capisce" la struttura del database: nomi delle tabelle, colonne, tipi di dati, chiavi primarie e foreign key, relazioni tra tabelle. Questo schema viene arricchito con metadati aggiuntivi: sinonimi aziendali ("fatturato" = colonna tot_importo, "cliente" = tabella anagrafica_clienti), descrizioni in linguaggio naturale delle entità, esempi di domande frequenti. Più il contesto è ricco, più il sistema è accurato.

2. Generazione della query SQL

La domanda dell'utente e lo schema contestualizzato vengono passati al modello linguistico. Il modello genera la query SQL corrispondente, tenendo conto del dialetto specifico del database (PostgreSQL, MySQL, SQL Server, Oracle). Per domande ambigue, il sistema può chiedere chiarimenti prima di procedere — esattamente come farebbe un analista umano.

3. Validazione, esecuzione e risposta

Prima di eseguire la query, il sistema la valida sintatticamente e verifica i permessi dell'utente. Solo query in sola lettura (SELECT) vengono eseguite — il sistema non può mai modificare o cancellare dati. I risultati vengono poi formattati in una risposta leggibile: tabelle, grafici, testo descrittivo, a seconda del tipo di dato restituito.

Esempio concreto: L'utente scrive "Mostrami il fatturato per agente nell'ultimo trimestre, ordinato dal più alto al più basso". Il sistema genera: SELECT agente, SUM(importo_totale) AS fatturato FROM ordini WHERE data_ordine >= '2026-01-01' GROUP BY agente ORDER BY fatturato DESC — l'esegue e mostra una tabella con i risultati.

Casi d'uso nelle PMI italiane

Il Text-to-SQL non serve a fare report che si fanno già bene con Excel o PowerBI. Serve a rispondere alle domande estemporanee, quelle che arrivano durante una riunione o una telefonata con un cliente, e che oggi richiedono di aspettare che qualcuno dell'IT elabori il dato.

Accuratezza: aspettative realistiche

La domanda più comune è: "quanto è affidabile?" La risposta onesta dipende da tre fattori.

Qualità della contestualizzazione dello schema: un database con nomi di colonne criptici (col_a7, flg_x) e nessuna documentazione richiede un lavoro di arricchimento prima che il sistema funzioni bene. Un database ben modellato, con nomi descrittivi e relazioni chiare, parte già con una baseline di accuratezza molto alta.

Complessità delle domande: domande semplici con filtri e aggregazioni di base raggiungono il 95%+ di accuratezza. Domande che richiedono join complessi su 5+ tabelle o logiche di business molto specifiche scendono intorno all'80–85% e richiedono esempi contestuali aggiuntivi.

Dominio aziendale: nei primi mesi di utilizzo, il sistema apprende il vocabolario specifico dell'azienda grazie al feedback degli utenti. Dopo 2–3 mesi, l'accuratezza sulle domande tipiche del dominio si attesta solitamente tra l'88% e il 95%.

Text-to-SQL on-premise vs servizi cloud

I principali provider cloud (Google, Microsoft, AWS) offrono servizi Text-to-SQL pronti all'uso. La differenza rispetto a un sistema on-premise riguarda esclusivamente un fattore: dove vanno i dati.

Quando usi un servizio cloud, le domande degli utenti — che spesso contengono dati sensibili di business — vengono inviate ai server del provider per essere elaborate. Lo schema del tuo database, che descrive l'intera struttura dei tuoi dati, viene caricato su sistemi terzi. Per molte PMI italiane con dati personali di clienti o fornitori, questo pone immediatamente un problema di conformità GDPR.

Un sistema on-premise come quello che implementiamo noi gira interamente sui server dell'azienda. Le domande, lo schema, le query e i risultati non escono mai dall'infrastruttura interna. La qualità dei risultati è equivalente — i modelli open-source di ultima generazione raggiungono le performance dei servizi proprietari su database aziendali standard.

Come si integra con i sistemi esistenti

Il Text-to-SQL non richiede di migrare il database, cambiare applicativi o modificare la struttura dei dati. Si connette al database esistente in sola lettura tramite un driver standard (JDBC, ODBC o connessione nativa). L'integrazione tipica richiede 3–5 giorni di configurazione e si espone tramite:

Domande frequenti

Cos'è il Text-to-SQL?

Il Text-to-SQL (o NL2SQL) è una tecnologia che trasforma domande scritte in linguaggio naturale — italiano incluso — in query SQL eseguibili sul database aziendale. L'utente chiede "quante vendite abbiamo fatto a Milano nel primo trimestre?" e il sistema genera ed esegue automaticamente la query corretta, restituendo la risposta in forma leggibile.

Il Text-to-SQL funziona con qualsiasi database?

Sì, con i principali database relazionali: PostgreSQL, MySQL, Microsoft SQL Server, Oracle, SQLite. Il sistema apprende la struttura dello schema specifico dell'azienda (nomi tabelle, colonne, relazioni) e genera query compatibili con il dialetto SQL del database in uso.

Quanto è accurato un sistema Text-to-SQL?

Con una buona configurazione dello schema e dei sinonimi aziendali, i sistemi moderni raggiungono un'accuratezza dell'85–95% sulle domande tipiche degli utenti. I risultati migliorano significativamente nei primi mesi di utilizzo grazie al feedback degli utenti e al fine-tuning sul vocabolario aziendale specifico.

È sicuro far usare il Text-to-SQL ai dipendenti?

Sì, se configurato correttamente. Il sistema genera solo query SELECT (sola lettura), non può modificare o cancellare dati. Si possono applicare filtri per ruolo: ogni utente vede solo i dati a cui ha diritto di accesso, esattamente come nel database originale.

Vuoi vedere il Text-to-SQL sul tuo database?

Ti mostriamo come funziona su un campione dei tuoi dati reali. 30 minuti, nessun impegno, risposta concreta a "funziona nel mio caso?"

Prenota la demo gratuita →