La storia di SQL (che si pronuncia facendo lo spelling inglese delle lettere che lo compongono, ovvero “ess-chiu-el”, anche se spesso di sente pronunciarlo come “siquel”) inizia nel 1974 con la definizione, da parte di un gruppo di lavoro dei laboratori IBM guidato da Donald Chamberlin, di un linguaggio per la specifica delle caratteristiche dei database relazionali.
Il linguaggio viene chiamato SEQUEL (Structured English Query Language) e viene implementato in forma prototipale con il nome di SEQUEL-XRM fra il 1974 e il 1975. L’obiettivo del prototipo è quello di permetterne una sperimentazione di contesto, sperimentazione che dura circa due anni e porta ad una prima revisione del linguaggio SEQUEL/2, diventato poi SQL per alcuni motivi legali.
Sulla base di SQL, IBM realizza System R, utilizzato sui propri sistemi e con alcuni clienti scelti, restando però un prodotto interno e non commercializzato in modo diretto. BigBlue decide di cambiare rotta qualche anno dopo, agli inizi degli anni ’80, in particolare con il rilascio di DB2. L’attenzione generale cresce e anche altri player di mercato si interessano al nuovo linguaggio, Oracle e Sybase in primis, e iniziano a commercializzare prodotti basati su dialetti proprietari di SQL, rendendolo di fatto lo standard industriale per quanto riguarda i database relazionali.
Un esempio di Select in DB2
Nel 1986, l’ANSI “adotta” SQL (nel dialetto di IBM) come standard per i database relazionali e nel 1987 diventa standard ISO con il nome di SQL/86, aprendo potenzialmente la strada all’interoperabilità fra i prodotti basati su di esso. Nella pratica, però, tale interoperabilità non è mai stato un elemento di attenzione, anzi, ogni produttore adotta ed implementa nel proprio database solo il cuore del linguaggio SQL (il cosiddetto Entry Level o al massimo l’Intermediate Level), estendendolo in maniera proprietaria a seconda della propria visione e segmento di mercato di riferimento.
Attualmente, l’ultima revisione dello standard è SQL:99, nota anche come SQL3, la cui finalità primaria è quella di trasformare SQL in un linguaggio stand-alone e introdurre nuovi tipi di dato più complessi per permettere, ad esempio, il trattamento diretto di elementi multimediali.