Il Data Scientist e il linguaggio SQL

SQL

Ovunque ci muoviamo lasciamo tracce digitali, che vengono memorizzate in database sparsi nei sistemi più disparati: dai log dell’home banking, alla carta fedeltà del supermercato, ai log di SMS, di telefonate, della navigazione effettuata con lo smartphone, ai dati del navigatore satellitare, all’utilizzo di Facebook ovvero WhatsApp, solo per citarne alcuni. E’ un mondo a disposizione del data mining, in cui esperti e professionisti competenti in ambito statistico elaborano dati per individuare profili, tendenze, abitudini, o prevedere comportamenti futuri e altro ancora. Oggi viene ricercata la figura del Data Scientist, che prevede competenze di vario tipo, talvolta presenti più che in un singolo individuo, in un gruppo che collabora. Gartner definisce così la figura del Data Scientist:

The data scientist role is critical for organizations looking to extract insight from information assets for “big data” initiatives and requires a broad combination of skills that may be fulfilled better as a team, for example: Collaboration and team work is required for working with business stakeholders to understand business issues. Analytical and decision modeling skills are required for discovering relationships within data and detecting patterns. Data management skills are required to build the relevant dataset used for the analysis.

Gli strumenti per svolgere questo mestiere sono moltissimi, da quelli open source a software proprietari. Indubbiamente uno degli skill fondamentali, come si legge a fine citazione, è il Data Management. Se siamo interessati a questo profilo lavorativo, una competenza come il linguaggio SQL diventa essenziale.

SQL: Structured Query Language: un linguaggio strutturato per interrogare i dati. In realtà, non permette solo di interrogare i dati. Il linguaggio si suddivide in tre aree:

  • Data Definition Language
  • Data Manipulation Language
  • Data Query Language

Per fornire una prima idea approssimativa, il DDL (Data Definition Language) riguarda la creazione di tabelle; il DML (Data Manipulation Language) la gestione dei dati intesa come inserimento (Insert), modifica (Update) ed eliminazione (Delete); il DQL (Data Query Language) l’interrogazione di una o più tabelle, opportunamente correlate tra loro tramite JOIN.

L’SQL in quanto linguaggio è software-independent. I diversi produttori di software hanno poi declinato tale linguaggio in un proprio dialetto, che ha creato delle varianti. Da ciò deriva il fatto che un’istruzione SQL non è sempre riutilizzabile in un altro ambiente che usa SQL, perché potrebbe non essere correttamente interpretata.

Il linguaggio SQL non contiene istruzioni che consentono di determinare un flusso, non è un linguaggio di programmazione. Ecco perché diversi produttori di software hanno aggiunto a SQL un linguaggio procedurale: per citarne solo alcuni, in Microsoft si usa T-SQL (Transact SQL), in Oracle  PL-SQL (Programming Language SQL), in MySQL SQL/PSM (SQL/Persistent Stored Module).

Se non sappiamo quale ambiente software dovremo utilizzare, è però fondamentale almeno conoscere il linguaggio SQL in sé: a tempo debito approfondiremo la sintassi e studieremo l’SQL calato nella nostra specifica realtà lavorativa. Nel frattempo, cerchiamo di imparare il linguaggio SQL.

Per provare il linguaggio SQL, vai sul sito W3Schools.