Caratteristiche e differenze tra DDL, DML e DCL in SQL

Caratteristiche e differenze tra DDL, DML e DCL in SQL

Il linguaggio SQL

La sigla SQL, acronimo di Structured Query Language ovvero linguaggio di richiesta strutturato, è ormai diventata sinonimo di linguaggio standard per la definizione, l’interrogazione e l’aggiornamento di database relazionali. Nasce nel 1974 nei laboratori dell’IBM. Nasce come strumento per lavorare con database che seguano il modello relazionale. A quel tempo però si chiamava Sequel. Nel 1975 viene sviluppato un prototipo chiamato Sequel-XRM; con esso si eseguirono sperimentazioni che portarono, nel 1977, a una nuova versione del linguaggio, che inizialmente avrebbe dovuto chiamarsi Sequel/2 ma che poi divenne, per motivi legali, SQL. Su di esso si sviluppò il prototipo System R, che venne utilizzato da IBM per usi interni e per alcuni suoi clienti. Ma, dato il suo successo, anche altre società iniziarono subito a sviluppare prodotti basati su SQL. Nel 1981 IBM iniziò a vendere alcuni prodotti relazionali e nel 1983 rilasciò DB2, il suo DBMS relazionale diffuso ancor oggi. SQL divenne subito lo standard industriale per i software che utilizzano il modello relazionale. L’ANSI lo adottò come standard fin dal 1986, senza apportare modifiche sostanziali alla versione inizialmente sviluppata da IBM. Nel 1987 la ISO fece lo stesso. Questa prima versione standard è denominata SQL/86. Negli anni successivi si realizzarono altre versioni, che furono SQL/89, SQL/92 e SQL/2003. Tale processo di standardizzazione mirava alla creazione di un linguaggio che funzionasse su tutti i DBMS (Data Base Management Systems) relazionali, ma questo obiettivo non fu raggiunto. Infatti, i vari produttori implementarono il linguaggio con numerose variazioni e, in pratica, adottarono gli standard ad un livello non superiore al minimo, definito dall’Ansi come Entry Level.

Database e Linguaggio SQL

Differenza tra DDL, DML e DCL

Essendo un linguaggio dichiarativo, SQL non richiede la stesura di sequenze di operazioni (come ad es. i linguaggi imperativi), ma piuttosto di specificare le proprietà logiche delle informazioni ricercate.

Esso si divide in tre sottoinsiemi:

  1. Data Definition Language (DDL), linguaggio di definizione dei dati, viene utilizzato per definire lo schema della base di dati. Le definizioni dello schema vengono memorizzate in una base di dati speciale, detta Dizionario dei dati (Data Dictionary). Il DDL opera sia a livello esterno, sia a livello logico, sia a livello interno; in particolare, le istruzioni che definiscono il livello esterno prendono talvolta il nome di view definition (definizione delle viste, cioè degli schemi dell’utente), mentre le definizioni che definiscono il livello interno prendono il nome di DCL (device control language, o linguaggio per il controllo dei dispositivi).
  2. Data Manipulation Language (DML), viene utilizzato per manipolare la base di dati, cioè per svolgere le seguenti funzioni: Estrarre informazioni dalla base di dati, cioè formulare un’interrogazione comunque complessa sulla base di dati ed ottenere la riposta all’interrogazione; modificare il contenuto della base di dati, cioè svolgere operazioni di inserimento di nuovi dati, cancellazioni di dati preesistenti, e modifica di specifici valori di dati preesistenti. I comandi utilizzati sono: SELECT per la ricerca, INSERT per l’inserimento, UPDATE per l’aggiornamento e DELETE per la cancellazione.
  3. Data Control Language (DCL), linguaggio utilizzato per fornire o revocare agli utenti i permessi necessari per poter utilizzare i comandi DML e DDL, oltre agli stessi comandi DCL (che servono per poter a sua volta modificare i permessi su alcuni oggetti).

Caratteristiche e differenze tra DDL, DML e DCL in SQL

Infine, una caratteristica importante del linguaggio SQL è il suo grado di proceduralità: un linguaggio è procedurale se il programmatore deve specificare in modo esatto quale metodo di accesso ai dati dovrà essere utilizzato per ritrovare l’informazione; un linguaggio è non procedurale se l’utente deve solo indicare quale informazione dovrà essere ritrovata, e viceversa omettere di indicare il modo in cui l’informazione verrà ritrovata. In tal caso, il sistema determina in modo automatico il cammino di accesso ai dati.

 

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *