Linguaggio SQL: Differenza tra DDL, DML, DCL e DQL

Linguaggio SQL: Differenza tra DDL, DML, DCL e DQL

Database, DBMS e RDBMS

Il termine database, tradotto in italiano con banca dati o base di dati indica un insieme di dati riguardanti uno stesso argomento, o più argomenti correlati tra loro, strutturata in modo tale da consentire l’uso dei dati stessi (e il loro aggiornamento) da parte di applicazioni software. La base di dati, oltre ai dati veri e propri, deve contenere anche le informazioni sulle loro rappresentazioni e sulle relazioni che li legano.

Un DBMS (Database Management System) è un sistema software in grado di gestire una collezione di dati che sono condivisi da più applicazioni e utenti. Un DBMS deve:

  • gestire una grande quantità di dati.
  • gestire la condivisione dei dati tra diversi utenti ed applicazioni.
  • gestire le transazioni.
  • garantire l’affidabilità dei dati, cioè la capacità di ripristino a fronte di malfunzionamenti (resilienza), meccanismi di salvataggio (backup) e ripristino (recovery).
  • offrire una “visione strutturata” dei dati in base al modello logico usato.
  • garantire la privatezza dei dati in base a dei meccanismi di autorizzazione.

Un RDBMS (Relational Database Management System) è un sistema relazionale per la gestione di basi di dati ed indica un DBMS basato sul modello relazionale ed è stato introdotto da Edgar F.Codd. I requisiti minimi per cui un DBMS può essere chiamato RDBMS sono:

  • deve presentare i dati all’utente sotto forma di relazioni (una presentazione a tabelle può soddisfare questa proprietà).
  • deve fornire operatori relazionali per manipolare i dati in forma tabellare.

Linguaggio SQL

SQL (Structured Query Language) è un linguaggio creato per l’accesso a informazioni memorizzate nei database. L’SQL nasce nel 1974 ad opera di Donald Chamberlin, nei laboratori dell’IBM e il suo DBMS relazionale più diffuso ancora oggi.

Database e Linguaggio SQL

Più nel dettaglio, SQL è un linguaggio standardizzato per database basati sul modello relazionale (RDBMS), progettato per le seguenti operazioni:

  1. creare e modificare schemi di database: DDL, Data Definition Language;
  2. inserire, modificare e gestire dati memorizzati: DML, Data Manipulation Language;
  3. interrogare i dati memorizzati: DQL, Data Query Language;
  4. creare e gestire strumenti di controllo e accesso ai dati: DCL, Data Control Language.

Struttura SQL

Essendo un linguaggio dichiarativo, SQL non richiede la stesura di sequenze di operazioni (come ad es. i linguaggi imperativi), piuttosto di specificare le proprietà logiche delle informazioni ricercate. Esso si divide in quattro sottoinsiemi:

  1. DDL (Data Definition Language) – DDL serve a creare, modificare o eliminare gli oggetti in un database. Sono i comandi DDL a definire la struttura del database e quindi dei dati ivi contenuti. Ma non fornisce gli strumenti per modificare i dati stessi: per tale scopo di usa il DML. L’utente deve avere i permessi necessari per agire sulla struttura del database e questi permessi vengono assegnati tramite il DCL (Data Control Language).
  2. DML (Data Manipulation Language) – DML fornisce i comandi per inserire, modificare, eliminare o leggere i dati all’interno delle tabelle di un database. La struttura di questi dati deve già essere stata definita tramite il DDL. Esempi di comandi sono SELECT,INSERT, UPDATE, DELETE ecc.
  3. DCL (Data Control Language) – DCL serve a fornire o revocare agli utenti i permessi necessari per poter utilizzare i comandi DML e DDL, oltre agli stessi comandi DCL (che gli servono per poter a sua volta modificare i permessi su alcuni oggetti).
  4. DQL (Data Query Language) – DQL serve per creare query sui database e sui sistemi informativi da parte degli utenti oltre a rendere possibile l’estrazione di informazioni dal database interrogando la base dei dati interfacciandosi dunque con l’utente e le sue richieste di servizio.

Linguaggio SQL: Differenza tra DDL, DML, DCL e DQL

Operatori SQL

Infine, gli operatori, messi a disposizione da SQL standard si dividono in quattro categorie:

  • Operatori di confronto
  • Operatori aritmetici
  • Operatori condizionali
  • Operatori logici

Differenza tra DDL, DML, DCL e DQL

Ricapitolando, in informatica SQL (Structured Query Language) `e un linguaggio standardizzato per database basati sul modello relazionale (RDBMS) che racchiude un insieme di linguaggi:

  1. DDL (Data Definition Language)
    Permette di creare, modificare o eliminare gli oggetti in un database ovvero agire sullo schema di database. Ad esempio i comandi CREATE TABLE.., DROP TABLE.., ecc.
  2. DML (Data Manipulation Language)
    Consente di leggere, inserire, modificare o eliminare i dati in un database. Ad esempio i comandi INSERT INTO.., DELETE FROM.., ecc.
  3. DCL (Data Control Language)
    Utilizzato per fornire o revocare agli utenti i permessi necessari per poter utilizzare i comandi Data Manipulation Language (DML) e Data Definition Language (DDL), oltre agli stessi comandi DCL (che servono a loro volta a modificare i permessi su alcuni oggetti). Ad esempio i comandi GRANT.. ON.. TO.. ecc.
  4. DQL (Data Query Language)
    Usato per creare query sui database e sui sistemi informativi da parte degli utenti. Serve per rendere possibile l’estrazione di informazioni dal database interrogando la base dei dati interfacciandosi dunque con l’utente e le sue richieste di servizio. Ad esempio i comandi SELECT.. FROM.. WHERE.. ecc.

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 *