Torna all'elenco degli articoli Articoli
Tempo di lettura: 9 minuti

La storia di SQL - Come tutto ebbe inizio

Chi ha creato SQL e perché? Scopritelo in questo articolo!

State imparando SQL? O state per fare il primo passo verso il lavoro con i database? Ottima decisione! In ogni caso, vale la pena di conoscere la storia di SQL: da dove viene, chi l'ha ideato e perché.

Ecco una breve storia dell'SQL, a partire dal suo concetto fondamentale: il database.

Ted Codd e il modello relazionale dei dati

I primi database computerizzati sono apparsi alla fine degli anni Sessanta. All'epoca si trattava di un'importante area di ricerca. Molti informatici si concentrarono sul miglioramento del funzionamento dei database. Uno di loro era Edgar Frank (Ted) Codd, un informatico inglese impiegato all'IBM. Negli anni '40 partecipò al progetto Selective Sequence Electronic Calculator, il primo computer elettromeccanico al mondo.

Ma ciò per cui Codd è veramente famoso è un articolo pubblicato nel 1970, intitolato A Relational Model of Data for Large Shared Data Banks (Un modello relazionale di dati per grandi banche dati condivise), che diede inizio all'era dei database relazionali in informatica. Per questo motivo Codd viene spesso definito il capostipite di SQL. Nel 1981 ha ricevuto il Premio Turing, la più alta onorificenza in campo informatico, talvolta definita il "Premio Nobel dell'informatica".

All'epoca in cui Codd scrisse il suo articolo, i database gerarchici e di rete erano dominanti. Erano anche piuttosto inflessibili. Per estrarre i dati dal database, bisognava essenzialmente scrivere un programma per computer: i dati non erano accessibili ai non programmatori. Qualsiasi modifica del modello richiedeva cambiamenti nei modelli di accesso ai dati: in altre parole, i programmi di accesso ai dati dovevano essere riscritti.

IBM

Nel suo articolo, Codd propose un'idea completamente nuova: modellare i dati con la nozione matematica di relazioni. (Il modello relazionale di Codd permetteva una maggiore flessibilità rispetto ai modelli gerarchici e di rete. Si potevano aggiungere nuove relazioni senza modificare quelle esistenti. Grazie alle sue idee, lavorare con i database è diventato molto più semplice.

Sistema R

Il modello di Codd non ebbe un successo immediato. IBM non era entusiasta di implementare i suoi suggerimenti. All'epoca aveva IMS, un database gerarchico di grande successo. Non volevano compromettere le entrate derivanti da IMS costruendo un prodotto concorrente. (Solo nel 1973 IBM avviò System R, un progetto di ricerca per esplorare le idee di Codd sul modello di dati relazionale. Codd non lavorò a stretto contatto con il team di System R; è difficile capire perché fu estromesso da un progetto basato sul suo stesso lavoro. Due persone coinvolte nello sviluppo di System R, Don Chamberlin e Ray Boyce, erano incaricate di creare il linguaggio di interrogazione.

Un linguaggio di interrogazione per database relazionali

Giunti nell'articolo di Codd

I join nell'articolo di Codd

Nel suo articolo fondamentale, Codd propose una serie di operazioni che potevano essere utilizzate per estrarre i dati dalle relazioni. Queste operazioni possono essere considerate il primo linguaggio di interrogazione per i database relazionali. Naturalmente, la sintassi era completamente diversa da quella dell'SQL che conosciamo oggi; Codd utilizzò una notazione matematica per questo linguaggio. La maggior parte delle operazioni proposte da Codd possono essere eseguite nell'attuale SQL, solo con una notazione diversa.

All'epoca, Don Chamberlin stava lavorando su database gerarchici e aveva studiato il linguaggio per interrogare questi database. Comprese immediatamente l'impatto del modello di dati di Codd. Nel 1995 ha ricordato che:

"Per me e Ray, l'esposizione al modello di dati relazionale al simposio di ricerca di Codd fu una rivelazione. Per la prima volta, abbiamo potuto vedere come una query che avrebbe richiesto un programma complesso nel linguaggio DBTG potesse essere ridotta a poche semplici righe utilizzando uno dei linguaggi relazionali di Codd. Per noi due divenne un gioco inventare query e sfidarci a esprimerle in vari linguaggi di interrogazione." [1]

In effetti, Codd propose due diversi linguaggi per il modello relazionale: l'algebra relazionale (la base di questo linguaggio si trovava nel suo articolo originale del 1970) e il calcolo relazionale (noto anche come linguaggio Alpha). Entrambi questi linguaggi utilizzano una notazione matematica con quantificatori e vari operatori matematici. Oggi è possibile vedere idee tratte dall'algebra relazionale di Codd in SQL.

Irv Traiger, che lavorava anch'egli all'IBM in quel periodo, ha aggiunto:

"Glenn Bacon, che aveva il Dipartimento Sistemi, si chiedeva come Ted potesse giustificare il fatto che tutti sarebbero stati in grado di scrivere questo linguaggio basato sul calcolo matematico dei predicati, con quantificatori universali e quantificatori esistenziali e variabili e roba davvero, davvero pelosa." [2]
Albero genealogico di SQL

Il calcolo relazionale/Alfa divenne la base di QUEL, il linguaggio di interrogazione per Ingres (Interactive Graphics Retrieval System), un primo database relazionale sviluppato da Michael Stonebraker all'Università della California, Berkeley. Ingres si è evoluto in molte applicazioni commerciali di database, come PostgreSQL.

Query

Il gioco delle query

Prima ancora che iniziasse il progetto System R, Chamberlin e Boyce idearono un linguaggio che chiamarono SQUARE (Specifying Queries as Relational Expressions). Apprezzavano la potenza delle idee di Codd, che consentivano di utilizzare poche righe per esprimere query complesse che avrebbero richiesto pagine in un database gerarchico. Tuttavia, erano convinti che il loro linguaggio fosse più semplice e accessibile agli utenti normali rispetto all'algebra relazionale e al calcolo relazionale di Codd.

"Ray e io siamo rimasti colpiti dalla compattezza con cui i linguaggi di Codd potevano rappresentare query complesse. Tuttavia, allo stesso tempo, credevamo che sarebbe stato possibile progettare un linguaggio relazionale che fosse più accessibile agli utenti senza una formazione formale in matematica o in programmazione informatica." [1]

SQUARE è stato il fondamento del nuovo linguaggio di interrogazione di System R. SQUARE utilizzava molti pedici e alcune notazioni matematiche. Era difficile da digitare su una tastiera. Chamberlin e Boyce decisero di adattarlo in modo che assomigliasse alla struttura di una frase inglese e fosse più facile da digitare.

"Così abbiamo iniziato a dire che avremmo adattato le idee di SQUARE a un approccio basato su parole chiave più inglesi, più facili da digitare perché basate su strutture inglesi. Lo chiamammo Structured English Query Language e utilizzammo l'acronimo SEQUEL." [2]

Due cose erano importanti per Chamberlin e Boyce nella progettazione di SEQUEL. In primo luogo, volevano che fosse accessibile agli utenti normali che non avessero un background matematico o di programmazione. Lo staff di System R ha persino reclutato un gruppo di studenti per imparare SEQUEL e verificare se la sintassi fosse facile. Inoltre, volevano che il linguaggio contenesse elementi di modifica e definizione dei dati, una novità assoluta per l'epoca.

"Ray e io speravamo di progettare un linguaggio relazionale basato su concetti che sarebbero stati familiari a una popolazione più ampia di utenti. Speravamo anche di estendere il linguaggio per includere gli aggiornamenti del database e le attività amministrative come la creazione di nuove tabelle e viste, che tradizionalmente non rientravano nell'ambito di un linguaggio di query.
[...] Pensavamo di rendere possibile ai non programmatori l'interazione con i database. Pensavamo che questo avrebbe aperto l'accesso ai dati a un'intera nuova classe di persone che avrebbero potuto fare cose mai possibili prima perché non sapevano programmare." [2]

Infine, Chamberlin e Boyce scrissero due articoli su SEQUEL: uno sul DML (Data Manipulation Language, ad esempio SELECT, INSERT e UPDATE) e uno sul DDL (Data Definition Language, utilizzato per creare e modificare la struttura dei database).

"Abbiamo scritto due documenti: uno su SEQUEL/DML e uno su SEQUEL/DDL. La nostra collaborazione era molto stretta. Gli autori dell'articolo su DML erano Chamberlin e Boyce; gli autori dell'articolo su DDL erano Boyce e Chamberlin, senza una ragione particolare; ci siamo semplicemente divisi. Quell'anno volevamo andare a Stoccolma perché era l'anno del Congresso IFIP a Stoccolma. Io avevo un biglietto per Stoccolma grazie al lavoro che avevo fatto a Yorktown, così Ray presentò il documento sul DDL al congresso IFIP di Stoccolma, mentre il documento sul DML lo presentammo al SIGMOD. [...] Si trattava di due documenti gemelli nella nostra stima originale. Li avevamo scritti insieme e pensavamo che avessero un valore e un impatto comparabili. Ma la loro sorte è stata molto diversa. L'articolo sul DDL è stato rifiutato dal Congresso IFIP; Ray non è riuscito ad andare a Stoccolma". [2]

Ed è così che nacque SEQUEL. In seguito SEQUEL fu rinominato in SQL per un problema di marchio.

Sfortunatamente, Ray Boyce morì poco dopo aver gettato le basi di SQL; non riuscì mai a vedere l'impatto che avrebbe avuto. Nel 1974, circa un mese dopo aver presentato un articolo su SEQUEL a una conferenza tecnica ad Ann Arbor, Michigan, morì improvvisamente per la rottura di un aneurisma cerebrale. Aveva solo 26 anni.

È interessante notare che Donald Chamberlin non considerava SQL un buon linguaggio per il modo in cui veniva utilizzato all'epoca. Nel 1995 disse:

"Quando Ray e io stavamo progettando Sequel nel 1974, pensavamo che l'uso predominante del linguaggio sarebbe stato quello di query ad hoc da parte di progettisti e altri professionisti il cui dominio di competenza non era principalmente la gestione delle basi di dati. Volevamo che il linguaggio fosse abbastanza semplice da permettere alle persone comuni di "avvicinarsi e usarlo" con un minimo di formazione. Nel corso degli anni, sono rimasto sorpreso nel constatare che SQL viene utilizzato più spesso da specialisti di database addestrati per implementare transazioni ripetitive come depositi bancari, acquisti con carta di credito e aste online. Sono lieto di vedere il linguaggio utilizzato in una varietà di ambienti, anche se non si è dimostrato così accessibile agli utenti non addestrati come Ray e io speravamo inizialmente." [1]

SQL diventa uno standard industriale

Nel corso degli anni, SQL è diventato uno standard industriale. Per ora è sufficiente dire che SQL è diventato il linguaggio di base per lavorare con i database. È stato riconosciuto da tutte le organizzazioni più importanti e giganti del mercato come Google e Facebook lo utilizzano quotidianamente per molti processi.

Storia di SQL

SQL e i database sono attualmente uno dei settori in più rapida crescita dell'industria informatica. Seguire questa tendenza può dare i suoi frutti. Se volete iniziare a imparare l'SQL da zero, provate il nostro SQL Basics corso. Se conoscete già un po' di SQL e volete imparare ad analizzare meglio il comportamento dei vostri clienti o le tendenze dei ricavi, vi consiglio il corso SQL Reporting.

Indipendentemente dall'offerta di LearnSQL.it, è il momento giusto per imparare SQL. È un linguaggio che ha 40 anni, ma non sta andando da nessuna parte. La conoscenza dell'SQL è una grande competenza che vi sarà utile nel lavoro quotidiano e darà una spinta alla vostra carriera.

Fonti:

1. Chamberlin, Donald D. "Early History of SQL" Accessed 11 Nov 2020 from https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6359709

2. McJones et al. "La riunione di SQL del 1995: People, Projects and Politics" Accessed 11 Nov 2020 from http://www.scs.stanford.edu/~dbg/readings/SRC-1997-018.pdf