← Tutti gli episodi
Copertina di Il linguaggio delle domande: dire cosa, non come
Stagione 19 · Episodio 003

Il linguaggio delle domande: dire cosa, non come

29 agosto 2026 5:01
0:00 5:01

Ciao, e benvenuto nella terza puntata della diciannovesima stagione. Nella scorsa puntata abbiamo organizzato i dati in tabelle ordinate. Ma avere i dati ben disposti non basta: dobbiamo poterli interrogare, fare domande e ottenere risposte. E qui entra in gioco una delle idee più belle e potenti di tutto il mondo delle basi di dati, un'idea così elegante che merita una puntata intera. È l'idea di dire cosa vuoi, senza dover dire come ottenerlo. Oggi capiamo questo modo dichiarativo di interrogare i dati, e perché è tanto geniale.

Partiamo da come si potrebbe pensare, ingenuamente, di cercare qualcosa nei dati, per poi vedere quanto è diverso il modo delle basi di dati. Un modo istintivo sarebbe dare istruzioni passo passo: scorri tutte le righe della tabella, per ognuna controlla se soddisfa questa condizione, se sì mettila da parte, poi ordina i risultati, e così via. È un modo procedurale: descrivi minuziosamente ogni passo che la macchina deve compiere per arrivare al risultato. Tu ti fai carico del come, del procedimento dettagliato. È faticoso, ed è facile sbagliare o essere inefficienti.

Le basi di dati offrono qualcosa di radicalmente diverso e migliore, ed è il cuore di questa puntata. Invece di descrivere i passi, tu descrivi il risultato che vuoi, e lasci che sia la base di dati a capire come ottenerlo. Non dici scorri, controlla, metti da parte, ordina. Dici semplicemente: voglio tutti i clienti che si trovano in Italia e che hanno fatto un acquisto il mese scorso, ordinati per nome. Descrivi cosa vuoi, la forma del risultato, e basta. Come recuperarlo, con quali passaggi, in che ordine, attraverso quali scorciatoie, lo decide la base di dati, per conto suo. Tu dichiari l'obiettivo; lei trova la strada.

Questo modo di interrogare si chiama dichiarativo, ed è opposto al modo procedurale, quindi voglio fissare bene la differenza, perché è profonda. Nel modo procedurale, tu dici come fare: dai la ricetta passo passo. Nel modo dichiarativo, tu dici cosa vuoi: descrivi il piatto che desideri, e lasci che sia il cuoco a sapere come prepararlo. È la differenza tra spiegare a qualcuno ogni singolo movimento per raggiungere una destinazione, e semplicemente dirgli portami là, lasciando che scelga lui il percorso. Il dichiarativo sposta il peso del come dalle tue spalle a quelle della macchina, che è molto più adatta a gestirlo.

Voglio farti apprezzare quanto sia potente e liberatorio questo spostamento, perché cambia tutto. Quando descrivi solo cosa vuoi, il tuo lavoro diventa enormemente più semplice e chiaro: ti concentri sull'obiettivo, sul risultato che ti serve, senza impantanarti nei dettagli di come ottenerlo. E c'è di più: siccome è la base di dati a decidere il come, può scegliere il modo più efficiente per farlo, molto meglio di quanto potresti fare tu a mano. Lei conosce la struttura dei dati, sa quali scorciatoie esistono, e sceglie la strada migliore per rispondere alla tua domanda. Delegando il come a chi lo sa fare meglio, ottieni codice più semplice e spesso più veloce.

C'è un legame profondo con un tema ricorrente di questo podcast, che voglio evidenziare perché è la stessa idea sotto altra forma. Ricordi quante volte abbiamo lodato l'idea di descrivere il risultato che vuoi, lasciando al sistema il compito di realizzarlo? L'abbiamo incontrata parlando di Kubernetes, dove dichiari lo stato desiderato e il sistema lo realizza. La ritroviamo qui, nell'interrogare i dati: dichiari cosa vuoi, e la base di dati lo realizza. È un modo di pensare potente e ricorrente in informatica: alzare il livello, smettere di micro-gestire i passi e limitarsi a esprimere l'intento, lasciando che i dettagli siano gestiti sotto. Riconoscere questa idea comune, sotto forme diverse, è uno dei piaceri del capire in profondità.

Voglio anche darti un'immagine mentale che riassume la bellezza di tutto questo, e che tornerà utile. Pensa alla base di dati come a un assistente esperto a cui affidi una richiesta. Tu non gli spieghi come fare il suo lavoro: gli dici cosa ti serve, e ti fidi che lui, con la sua competenza, trovi il modo migliore per procurartelo. Un bravo assistente non vuole che tu gli dica ogni passo: vuole capire il tuo obiettivo, e poi lo raggiunge a modo suo, meglio di come faresti tu. La base di dati è esattamente questo: un assistente competente a cui esprimi il desiderio, non il procedimento. E questa delega è ciò che rende l'interrogazione dei dati così potente e piacevole.

Per oggi ci fermiamo qui. Interrogare i dati non si fa dando istruzioni passo passo, in modo procedurale, ma descrivendo il risultato che vuoi, in modo dichiarativo: dici cosa desideri, e lasci che sia la base di dati a capire come ottenerlo. È la differenza tra dettare la ricetta e descrivere il piatto. Questo spostamento del come dalle tue spalle a quelle della macchina rende il tuo lavoro più semplice e spesso più efficiente, perché lei sa scegliere la strada migliore. È la stessa potente idea dello stato desiderato che abbiamo visto altrove: esprimi l'intento, non i passi. Nella prossima puntata scopriamo come collegare i dati tra loro senza ripeterli: le relazioni. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.