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

Termini essenziali di SQL da conoscere per principianti e professionisti

Lavorare con i database può sembrare scoraggiante per una persona non tecnica. Subito si viene bombardati da nuovi termini che fanno girare la testa. Database, istanza di database, tabella, SQL e altri sono alcuni dei termini di base che è necessario comprendere per poter avere una normale conversazione con i colleghi tecnici. In questo articolo esploreremo la terminologia di base dei database SQL che dovete conoscere per avere successo.

Immaginate di partecipare a una riunione con lo staff di sviluppo e di avere improvvisamente la sensazione di ascoltare del rumore bianco. Capite cos'è un "file", ma tutti gli altri termini che i vostri colleghi vi propinano sono incomprensibili. Non preoccupatevi, ci pensiamo noi.

To start things off, visualize a large office building teeming with activity. Let’s say it’s owned by a fictitious company called SQL Inc. This company’s building has standard architecture with doors, windows, elevators, etc. The building, with all its corporate life, will serve as our analogy for a database to simplify explaining SQL terminology.

Nozioni di base sui database

Sistemi di gestione dei database

Iniziamo con la terminologia di base di SQL. SQL Inc. ha molti edifici (database) dello stesso tipo sparsi per il mondo. Quando vedete uno di questi edifici, sapete che è gestito da SQL Inc. Lo stesso vale per i sistemi di gestione dei database (DBMS). Come suggerisce il nome, questi sistemi gestiscono i database! Ne esistono moltissimi e vanno dai grandi player del mercato come Oracle, Microsoft SQL Server e IBM DB2 ad altri come MySQL, PostgreSQL e così via. I DBMS più grandi sono utilizzati soprattutto dalle grandi aziende che hanno bisogno del supporto e delle funzionalità offerte dagli strumenti di livello enterprise. Gli altri sono utilizzati nelle aziende più piccole e nei progetti open-source.

Transazioni di database

Esistono molti termini SQL legati ai database. Un altro è transazione di database. In poche parole, il compito di un database è creare, leggere, aggiornare e cancellare dati. Nella nostra struttura SQL Inc. questo è analogo alla gestione di documenti aziendali che si compilano, si leggono, si correggono e si scartano. Proprio come esiste una sola versione rilevante di un certo documento nell'organizzazione, esiste una sola versione rilevante e veritiera dei dati in un database (ad esempio, esiste una sola versione di un manifesto dei dipendenti che viene replicato più volte all'interno dell'edificio di SQL Inc.) I database garantiscono l'esistenza di un'unica versione dei dati attraverso le transazioni. Quando nel nostro edificio salta la corrente, tutto il lavoro viene salvato su carta. Quando viene a mancare la corrente in un database funzionante, il modello transazionale del database garantisce che, al momento della riaccensione, il database possa tornare a uno stato stabile precedente.

File del database

Alla fine di un'intensa giornata di lavoro, tutti vanno a casa e il nostro edificio rimane vuoto. Ma il lavoro effettivo che il personale ha generato durante la giornata non va perso: viene archiviato in diversi luoghi dell'edificio. Lo stesso vale per il nostro database. Se mettiamo il nostro database offline, termine che usiamo per indicare il regolare spegnimento del sistema, i dati sono ancora al sicuro nei file del database.

Istanza del database

Durante il giorno il nostro personale è impegnato a modificare e creare documenti. Il loro flusso di lavoro è fluido e attivo; molti dipendenti completano diversi compiti durante la giornata. Questo flusso di lavoro è "vivo" solo durante l'orario di lavoro ed è l'unico processo che può modificare i documenti archiviati nel nostro edificio. Allo stesso modo, l'insieme dei processi che gestiscono i file di un database, e quindi il database stesso, forma un'istanza di database. In termini più tecnici, un'istanza di database è un insieme di processi e strutture di memoria temporanea che permettono al sistema di database di funzionare.

Server di database e client

Un edificio di SQL Inc. consolida i propri file e li invia per la consultazione a persone esterne all'organizzazione dell'edificio. Diversi soggetti esterni, aziende e altre entità ricevono file cartacei dal nostro edificio. In questo modo, il nostro edificio interagisce con il mondo aziendale esterno. Allo stesso modo, un database ha un server che comunica con il cliente esterno. Di solito abbiamo un server di database (un edificio di SQL Inc.), in una certa sede, e molti client di database, le parti esterne, che interagiscono con il database in vari modi. Il client può, e di solito lo fa, manipolare i dati del database comunicando con il server. È necessario ricordare che SQL Inc. ha molti edifici in tutto il mondo e, per analogia, anche un fornitore di database ha molti database (con server e client).

Per comprendere meglio la terminologia dei database SQL, leggete di più sul server di database e sul client di database. qui.

Structured Query Language, il linguaggio dei database

Passiamo al cuore della terminologia SQL. La comunicazione aziendale deve essere diretta e non ambigua. Ha regole proprie, qualcuno potrebbe addirittura definirla un linguaggio! La divisione aziendale comunica con il mondo esterno in questo linguaggio aziendale. Il linguaggio che usiamo per comunicare con un database si chiama SQL, che sta per Structured Query Language. Questo linguaggio è molto più semplice dell'inglese. Il database sa esattamente cosa deve fare con i dati quando riceve un comando in SQL, proprio come la nostra divisione sa cosa deve fare quando riceve gli ordini dalla direzione centrale.

Parole chiave

Il linguaggio commerciale di un'organizzazione segue alcune regole o standard comuni. Allo stesso modo, SQL ha una serie di parole riservate. Queste parole devono essere utilizzate in un certo modo e non possono essere usate per nominare gli oggetti del database. Queste parole vengono chiamate parole chiave. Esempi di parole chiave SQL sono CREATE, INSERT, GRANT, UPDATE, DELETE, SELECT, ecc.

Linguaggio di definizione dei dati e linguaggio di manipolazione dei dati

Quando la divisione centrale deve implementare un nuovo tipo di file come modello, lo invia a tutte le divisioni aziendali. Allo stesso modo, quando è necessario definire la struttura di nuovi oggetti del database (ad esempio una nuova tabella), si invia un'istruzione DDL (data definition language). Per popolare i modelli con i dati aziendali reali, la divisione centrale invia una nuova serie di ordini. Questo processo di modifica dei dati popolati nei fogli di calcolo è un sottoinsieme di SQL chiamato DML (data manipulation language).

I dati del nostro database sono rappresentati in forma tabellare. I dati del database sono rappresentati da tabelle con righe e colonne. Le tabelle rappresentano determinate entità, come sales, nel nostro edificio. Questi sales hanno determinati attributi, come la data di vendita, l'importo e il numero di vendita. Questi attributi rappresentano le colonne delle nostre tabelle, mentre le righe rappresentano le diverse vendite. In un database possono esserci molte tabelle diverse, che si relazionano tra loro, come sales e items_sold. Questa relazione è il motivo per cui i database tradizionali sono chiamati database relazionali.

Vediamo un esempio. Con un'istruzione DDL, creiamo una tabella vendite:

CREATE TABLE sales (
	id NUMBER,
	amount NUMBER,
	sales_date DATE
);

Con un'istruzione DML popoliamo la tabella con alcune vendite:

INSERT INTO TABLE sales (id, amount, sales_date) VALUES (1,100,’2018-01-10);
INSERT INTO TABLE sales (id, amount, sales_date) VALUES (2,500,’2018-02-10);
INSERT INTO TABLE sales (id, amount, sales_date) VALUES (3,250,’2018-03-10);

Per recuperare i dati dalla tabella, si esegue una query SELECT (parte del DML):

SELECT id, amount, sales_date;

Dichiarazioni e query

Altri termini SQL da conoscere? Probabilmente vi starete chiedendo perché alcune istruzioni ai database si chiamano dichiarazioni e altre query. È semplice. Una query chiede a un database di restituire dei dati in una certa forma. L'interrogazione dei dati è di solito il lavoro più importante che un database svolge per un utente. D'altra parte, una dichiarazione è un'istruzione generica al database. Ciò include la creazione e l'eliminazione di tabelle, l'inserimento e la cancellazione di dati, ecc. Possiamo quindi concludere che tutte le query sono affermazioni e non tutte le affermazioni sono query.

Clausole, predicati ed espressioni

Consideriamo l'esempio delle istruzioni SELECT di cui sopra. Se volessimo vedere solo le vendite del10 gennaio, dovremmo espandere la nostra query in questo modo:

SELECT id, amount, date_time WHERE date_time = ‘2018-01-10’;

La parte WHERE della nostra istruzione rappresenta una clausola SQL opzionale. Le istruzioni SQL sono costruite da clausole opzionali e obbligatorie, proprio come le frasi della lingua inglese. Le clausole sono parole chiave dell'SQL che consentono di richiedere una determinata azione in base a una condizione che deve essere soddisfatta. Nella nostra clausola WHERE, queste condizioni sono domande che poniamo al database. Ad esempio, la data di vendita è il10 gennaio? Questa domanda può essere vera o falsa. Questa domanda (condizione) viene chiamata predicato. Il tipo di domanda che poniamo è un'espressione. Nel nostro esempio, il predicato è del tipo di uguaglianza, perché stiamo chiedendo se la data è uguale a un certo valore. Se invece chiedessimo tutte le date successive al10 gennaio, avremmo un'espressione di confronto come predicato della clausola WHERE nella query.

Funzioni e procedure

Gli ultimi termini SQL essenziali da conoscere nel nostro elenco sono le funzioni e le procedure. Supponiamo che la direzione di SQL Inc. assegni al personale del nostro edificio un compito ripetitivo da portare a termine. Ad esempio:

  1. prendere questo rapporto;
  2. archiviarlo in un altro edificio e
  3. dimmi quanto tempo ci hai messo.

Sarebbe più efficiente se la direzione dicesse semplicemente alla divisione di eseguire questo processo con un unico comando. Nei database, i processi che possono essere ripetuti quante volte necessario sono chiamati funzioni o procedure. Le funzioni restituiscono sempre un risultato della loro esecuzione. Nel nostro esempio, la funzione file_report restituisce il tempo impiegato per eseguire questo compito. Le procedure, invece, non restituiscono alcun valore: eseguono semplicemente ciò che viene loro richiesto.

Conclusione

Questo articolo ha presentato una breve panoramica dei termini SQL più comunemente utilizzati nel mondo dei database. Abbiamo toccato le basi dell'architettura dei database, dei file, delle istanze di database, delle transazioni e della comunicazione client-server. SQL è anche un linguaggio molto potente e completo che utilizziamo per comunicare con i database. Abbiamo anche trattato i termini SQL da conoscere relativi ad argomenti come DML, DDL, dichiarazioni, parole chiave, query e clausole.

Naturalmente, conoscere la terminologia dei database SQL è solo metà della battaglia. L'altra metà è l'applicazione. Essendo un linguaggio di programmazione di quarta generazione, SQL è incredibilmente facile e divertente da imparare. Sia che siate alle prime armi o che abbiate già delle conoscenze introduttive, un modo eccellente per imparare l'SQL è il nostro corso completamente interattivo SQL Basics corso sulla piattaforma LearnSQL.it. Provate!