Condividi tramite


Structured Query Language (SQL)

Un tipico DBMS consente agli utenti di archiviare, accedere e modificare i dati in modo organizzato ed efficiente. Originariamente, gli utenti dei DBMS erano programmatori. Per accedere ai dati memorizzati era necessario scrivere un programma in un linguaggio di programmazione come il COBOL. Sebbene questi programmi fossero spesso scritti per presentare un'interfaccia amichevole a un utente non tecnico, l'accesso ai dati stessi richiedeva i servizi di un programmatore esperto. L'accesso casuale ai dati non era pratico.

Gli utenti non erano del tutto soddisfatti di questa situazione. Anche se potevano accedere ai dati, spesso dovevano convincere un programmatore di DBMS a scrivere un software speciale. Ad esempio, se un reparto vendite voleva vedere il totale delle vendite effettuate nel mese precedente da ciascuno dei suoi venditori e voleva che queste informazioni fossero ordinate in base all'anzianità di servizio di ciascun venditore nell'azienda, aveva due possibilità: o esisteva già un programma che permetteva di accedere alle informazioni esattamente in questo modo, oppure il reparto doveva chiedere a un programmatore di scrivere un programma del genere. In molti casi si trattava di una soluzione più laboriosa di quanto valesse e sempre costosa per richieste una tantum o ad hoc. Man mano che sempre più utenti desideravano un accesso semplice, il problema diventava sempre più grande.

Per consentire agli utenti di accedere ai dati su base ad hoc è stato necessario fornire loro un linguaggio con cui esprimere le proprie richieste. Una singola richiesta a un database viene definita come una query; un linguaggio di questo tipo viene chiamato linguaggio di query. A questo scopo sono stati sviluppati molti linguaggi di query, ma uno di questi è diventato il più popolare: Structured Query Language, inventato da IBM negli anni Settanta. È più comunemente conosciuto con il suo acronimo, SQL, e si pronuncia sia come "ess-cue-ell" che come "sequel". SQL è diventato uno standard ANSI nel 1986 e uno standard ISO nel 1987; oggi è utilizzato in moltissimi sistemi di gestione di database.

Sebbene SQL abbia risolto le esigenze ad hoc degli utenti, la necessità di accedere ai dati da parte dei programmi informatici non è venuta meno. Infatti, la maggior parte dell'accesso al database era (ed è) programmatico, sotto forma di report e analisi statistiche programmate regolarmente, programmi di inserimento dati come quelli utilizzati per l'inserimento degli ordini e programmi di manipolazione dei dati, come quelli utilizzati per riconciliare i conti e generare ordini di lavoro.

Anche questi programmi utilizzano SQL, utilizzando una delle tre tecniche seguenti:

  • SQL incorporato, in cui le istruzioni SQL sono incorporate in un linguaggio host come il C o il COBOL;

  • Moduli SQL, in cui le istruzioni SQL vengono compilate in DBMS e chiamate da un linguaggio host;

  • Call-level interface, o CLI, che consiste in funzioni chiamate per passare le istruzioni SQL al DBMS e per recuperare i risultati dal DBMS.

Nota

È un caso storico che si usi il termine call-level interface invece di interfaccia di programmazione dell'applicazione (API), un altro termine per indicare la stessa cosa. Nel mondo dei database, API viene utilizzato per descrivere lo stesso SQL: SQL è l'API di un DBMS.

Tra queste scelte, SQL incorporato è quella più comunemente utilizzata, anche se la maggior parte dei principali DBMS supporta CLI proprietarie.

Questa sezione descrive gli argomenti seguenti: