Lo sviluppatore SQL è una figura centrale nei processi informatici che trasformano l’enorme massa di dati a disposizione delle aziende in preziose informazioni, fondamentali per prendere decisioni accurate e basate su criteri oggettivi. A questo lungo processo partecipano numerose figure tecniche tra cui il data engineer, il data architect e il data scientist. Tra le competenze imprescindibili per queste figure c’è il saper programmare correttamente con il linguaggio SQL.
I database relazionali
Molto spesso i dati sono archiviati in database relazionali (leggi qui cosa sono) caratterizzati dall’utilizzo di un’unità logica di rappresentazione tanto semplice quanto potente: le tabelle. I dati infatti sono organizzati in righe e colonne di tabelle, ogni colonna ha un’unica intestazione e un particolare tipo associato. Sono esempi di tipo i numeri interi, i numeri decimali, le date, le immagini e i testi. La presenza di un tipo per ogni colonna è un concetto fondamentale, esso infatti garantisce un primo livello base di qualità dei dati agendo da vincolo su ciò che potrà essere presente nel database. Ad esempio specificando che la colonna DataFattura è di tipo “data” viene garantito che in quella colonna potranno essere inserite soltanto delle date valide e non altri valori errati che comprometterebbero le analisi statistiche successive.
Il linguaggio SQL
Il linguaggio SQL, acronimo di Structured Query Language, è utilizzato per estrarre e lavorare con le informazioni salvate in tabelle di database relazionali. L’SQL è un linguaggio di programmazione (qui trovi pdf per imparare le basi) potente e flessibile che segue un paradigma dichiarativo: ciò vuol dire che lo sviluppatore deve usare il linguaggio per dichiarare cosa si deve fare e non come. Questo approccio rende la sintassi dell’SQL semplice, comprensibile e performante in quanto l’esecuzione di algoritmi ottimizzati è demandata al motore di esecuzione del database e non è a carico dello sviluppatore.
D’altra parte l’SQL deve essere usato sapientemente e con attenzione in quanto spesso dovrà essere utilizzato per estrarre solamente determinate informazioni che rispettano condizioni di business molto particolari e stringenti. Facciamo un esempio per capire meglio: raramente ci verrà chiesto di calcolare dati statistici sull’intero archivio storico delle fatture di un’azienda. Più spesso gli utenti del business ci chiederanno di selezionare “le fatture del primo trimestre dell’anno precedente dove la percentuale di sconto è maggiore del 5% e il pagamento è avvenuto con un ritardo tra i 5 e i 10 giorni”. A questo link trovi un corso di formazione per imparare a utilizzare il linguaggio SQL e a scrivere query corrette ed efficienti.
I Sistemi di gestione dei Database
Sul mercato sono presenti diversi DBMS (Database management system) che permettono di creare e popolare un database relazionale ed estrarre informazioni da esso tramite il linguaggio SQL. Tra i più noti ricordiamo SQL Server, Oracle, MySQL e PostgreSql. In ognuno di questi sistemi il linguaggio SQL si declina in un particolare dialetto come T-SQL, PL-SQL, pgSQL. Ognuno di questi linguaggi ha delle proprie peculiarità e caratteristiche avanzate. Tuttavia i costrutti principali dell’SQL restano gli stessi in tutte queste declinazioni. Soprattutto ciò che resta identico è il paradigma di programmazione e la potenza e flessibilità propri del linguaggio SQL.