Che cos'è SQL?
Structured Query Language (SQL) è un linguaggio di programmazione per l'archiviazione e l'elaborazione di informazioni in un database relazionale. Un database relazionale memorizza le informazioni in forma tabulare, con righe e colonne che rappresentano diversi attributi di dati e le varie relazioni tra i valori dei dati. È possibile utilizzare le istruzioni SQL per archiviare, aggiornare, rimuovere, cercare e recuperare informazioni dal database. È inoltre possibile utilizzare SQL per mantenere e ottimizzare le prestazioni del database.
Perché SQL è importante?
Structured Query Language (SQL) è un linguaggio di query popolare che viene spesso utilizzato in tutti i tipi di applicazioni. Gli analisti e gli sviluppatori di dati imparano a utilizzare e utilizzano SQL perché si integra bene con diversi linguaggi di programmazione. Ad esempio, possono incorporare query SQL con il linguaggio di programmazione Java per creare applicazioni di elaborazione dati ad alte prestazioni con i principali sistemi di database SQL come Oracle o MS SQL Server. SQL è anche abbastanza facile da imparare in quanto utilizza parole chiave inglesi comuni nelle sue istruzioni
Storia di SQL
SQL è stato inventato negli anni '70 sulla base del modello di dati relazionali. Inizialmente era noto come Structured English Query Language (SEQUEL). Il termine è stato successivamente abbreviato in SQL. Oracle, precedentemente noto come Relational Software, è diventato il primo fornitore a offrire un sistema di gestione di database relazionali SQL commerciale.
Quali sono i componenti di un sistema SQL?
I sistemi di gestione dei database relazionali utilizzano lo Structured Query Language (SQL) per archiviare e gestire i dati. Il sistema memorizza più tabelle di database correlate tra loro. MS SQL Server, MySQL o MS Access sono esempi di sistemi di gestione di database relazionali. Di seguito sono riportati i componenti di un sistema di questo tipo.
Tabella SQL
Una tabella SQL è l'elemento base di un database relazionale. La tabella del database SQL è composta da righe e colonne. Gli ingegneri di database creano relazioni tra più tabelle di database per ottimizzare lo spazio di archiviazione di dati.
Ad esempio, l'ingegnere del database crea una tabella SQL per i prodotti in un negozio:
ID prodotto |
Nome del prodotto |
ID colore |
0001 |
Materasso |
Colore 1 |
0002 |
Cuscino |
Colore 2 |
Quindi, l'ingegnere del database collega la tabella del prodotto alla tabella dei colori con l'ID colore:
ID colore |
Nome colore |
Colore 1 |
Blu |
Colore 2 |
Rosso |
Istruzioni SQL
Le istruzioni SQL, o query SQL, sono istruzioni valide che i sistemi di gestione dei database relazionali riescono a comprendere. Gli sviluppatori di software creano istruzioni SQL utilizzando diversi elementi del linguaggio SQL. Gli elementi del linguaggio SQL sono componenti come identificatori, variabili e condizioni di ricerca che formano un'istruzione SQL corretta.
Ad esempio, l'istruzione SQL seguente utilizza un comando SQL INSERT per memorizzareMattress Brand A, al prezzo di 499$, in una tabella denominata Mattress_table, con nomi di colonna brand_name e cost:
INSERT INTO Mattress_table (brand_name, cost)
VALUES(‘A’,’499’);
Procedure archiviate
Le procedure archiviate sono una raccolta di una o più istruzioni SQL archiviate nel database relazionale. Gli sviluppatori di software le utilizzano per migliorare l'efficienza e le prestazioni. Ad esempio, possono creare una procedura archiviata per l'aggiornamento delle tabelle di vendita invece di scrivere la stessa istruzione SQL in diverse applicazioni.
Come funziona SQL?
L'implementazione di un sistema Structured Query Language (SQL) coinvolge un computer server che elabora le query del database e restituisce i risultati. Il processo SQL passa attraverso diversi componenti software, tra cui i seguenti.
Parser
Il parser inizia con la tokenizzazione, o sostituzione, di alcune parole nell'istruzione SQL con simboli speciali. Quindi, verifica l'istruzione per quanto segue:
Correttezza
Il parser verifica che l'istruzione SQL sia conforme alla semantica o alle regole SQL che garantiscono la correttezza dell'istruzione di query. Ad esempio, il parser controlla se il comando SQL termina con un punto e virgola. Se manca il punto e virgola, il parser restituisce un errore.
Autorizzazione
Il parser controlla inoltre che l'utente che esegue la query disponga dell'autorizzazione necessaria per manipolare i rispettivi dati. Ad esempio, solo gli utenti amministratori possono avere il diritto di eliminare i dati.
Motore relazionale
Il motore relazionale, o processore di query, crea un piano per il recupero, la scrittura o l'aggiornamento dei dati corrispondenti nel modo più efficace possibile. Ad esempio, verifica la presenza di query simili, riutilizza i precedenti metodi di manipolazione dei dati o ne crea uno nuovo. Inoltre, scrive il piano in una rappresentazione di livello intermedio dell'istruzione SQL chiamata codice byte. I database relazionali utilizzano il codice byte per eseguire in modo efficiente ricerche e modifiche nei database.
Motore di archiviazione
Il motore di archiviazione, o motore di database, è il componente software che elabora il codice byte ed esegue l'istruzione SQL desiderata. Questo motore legge e archivia i dati nei file di database sull'archiviazione su disco fisico. Al termine del processo, il motore di archiviazione restituisce il risultato all'applicazione richiedente.
Cosa sono i comandi SQL?
I comandi Structured Query Language (SQL) sono parole chiave o istruzioni SQL specifiche utilizzate dagli sviluppatori per manipolare i dati archiviati in un database relazionale. È possibile classificare i comandi SQL come segue.
Data Definition Language
Il Data Definition Language (DDL) si riferisce ai comandi SQL che progettano la struttura del database. Gli ingegneri del database utilizzano il DDL per creare e modificare oggetti di database in base ai requisiti aziendali. Ad esempio, l'ingegnere di database utilizza il comando CREATE per creare oggetti di database come tabelle, viste e indici.
Data Query Language
Il Data Query Language (DQL) è costituito da istruzioni per il recupero dei dati memorizzati nei database relazionali. Le applicazioni software utilizzano il comando SELECT per filtrare e restituire risultati specifici da una tabella SQL.
Data Manipulation Language
Le istruzioni del Data Manipulation Language (DML) scrivono nuove informazioni o modificano i record esistenti in un database relazionale. Ad esempio, un'applicazione utilizza il comando INSERT per memorizzare un nuovo record nel database.
Data Control Language
Gli amministratori di database utilizzano il Data Control Language (DCL) per gestire o autorizzare l'accesso al database per altri utenti. Ad esempio, possono utilizzare il comando GRANT per consentire a determinate applicazioni di manipolare una o più tabelle.
Transaction Control Language
Il motore relazionale utilizza il Transaction Control Language (TCL) per apportare automaticamente modifiche al database. Ad esempio, il database utilizza il comando ROLLBACK per annullare una transazione errata.
Cosa sono gli standard SQL?
Gli standard SQL sono un insieme di linee guida formalmente definite del cosiddetto Structured Query Language (SQL). L'American National Standards Institute (ANSI) e l'International Organization for Standardization (ISO) hanno adottato gli standard SQL nel 1986. I fornitori di software utilizzano gli standard SQL di ANSI per creare software di database SQL per gli sviluppatori.
Cos'è l'iniezione SQL?
L'iniezione SQL è un attacco informatico che consiste nella frode nel database con query SQL. Gli hacker utilizzano l'iniezione SQL per recuperare, modificare o danneggiare i dati in un database SQL. Ad esempio, possono inserire una query SQL anziché il nome di una persona in un modulo di invio per eseguire un attacco con iniezione SQL.
Cos'è MySQL?
MySQL è un sistema di gestione di database relazionali open source offerto da Oracle. Gli sviluppatori possono scaricare e utilizzare MySQL senza pagare costi di licenza. Possono inoltre installare MySQL su diversi sistemi operativi o server cloud. MySQL è un popolare sistema di database per applicazioni Web.
Confronto tra SQL e MySQL
Lo Structured Query Language (SQL) è un linguaggio standard per la creazione e la manipolazione di database. MySQL è un programma di database relazionali che utilizza query SQL. Mentre i comandi SQL sono definiti da standard internazionali, il software MySQL subisce continui aggiornamenti e miglioramenti.
Cos'è NoSQL?
NoSQL si riferisce a database non relazionali che non utilizzano tabelle per archiviare i dati. Gli sviluppatori archiviano le informazioni in diversi tipi di database NoSQL, inclusi grafici, documenti e valori chiave. I database NoSQL sono diffusi per le applicazioni moderne perché sono scalabili orizzontalmente. Il ridimensionamento orizzontale significa aumentare la potenza di elaborazione aggiungendo più computer che eseguono software NoSQL.
Confronto tra SQL e NoSQL
Lo Structured Query Language (SQL) fornisce un linguaggio di manipolazione dei dati uniforme, ma l'implementazione di NoSQL dipende da diverse tecnologie. Gli sviluppatori utilizzano SQL per applicazioni transazionali e analitiche, mentre NoSQL è adatto per applicazioni reattive e a uso intensivo.
Cos'è un server SQL?
SQL Server è il nome ufficiale del sistema di gestione dei database relazionali di Microsoft che manipola i dati con SQL. MS SQL Server ha diverse edizioni e ognuna è progettata per carichi di lavoro e requisiti specifici.
In che modo AWS supporta SQL?
Microsoft SQL Server su AWS consente agli sviluppatori di eseguire carichi di lavoro Microsoft SQL su AWS. Il sistema di database SQL offre prestazioni migliori con risorse di calcolo AWS scalabili. Eseguendo MS SQL su AWS, le aziende ottengono una maggiore disponibilità dei servizi perché AWS dispone della più ampia infrastruttura globale in 24 regioni. SQL Server su AWS si integra con più di 230 servizi di sicurezza, conformità e governance per proteggere i dati dalle minacce esterne. Altri modi in cui AWS supporta SQL includono i seguenti:
- I clienti utilizzano Amazon Database Migration Service per semplificare lo spostamento dei database SQL in AWS.
- Amazon Elastic Block Store (EBS) offre un'archiviazione a blocchi ad alte prestazioni per applicazioni SQL mission-critical.
Inizia a usare SQL Server su AWS registrandoti oggi stesso per un account AWS.
Fasi successive di SQL in AWS
Ottieni accesso istantaneo al piano gratuito di AWS.