Cosa significa Structured Query Language?
Structured Query Language (SQL) è un linguaggio di programmazione tipicamente utilizzato nei database relazionali o nei sistemi di gestione dei flussi di dati.
È stato sviluppato da IBM all’inizio degli anni ’70 ed è ora uno standard ufficiale riconosciuto dall’American National Standards Institute (ANSI) e dall’International Organization for Standardization (ISO).
Techopedia spiega lo Structured Query Language
Nel corso degli anni, SQL è rimasto una scelta sempre popolare per gli utenti di database, soprattutto grazie alla sua facilità d’uso e al modo estremamente efficace in cui interroga, manipola, aggrega i dati ed esegue un’ampia gamma di altre funzioni per trasformare enormi raccolte di dati strutturati in informazioni utilizzabili.
Per questo motivo, è stato incorporato in numerosi prodotti commerciali di database, come MySQL, Oracle, Sybase, SQL Server, Postgres e altri. In effetti, molti database non relazionali come MongoDB e DynamoBD sono chiamati prodotti NoSQL per la loro mancanza di programmazione SQL.
Anche se le diverse iterazioni di SQL possono utilizzare una sintassi diversa per le operazioni chiave, in generale i comandi di base come select, insert, update e create sono comuni a tutte le versioni di SQL. Questo rende molto facile per chi ha una conoscenza di base di SQL lavorare in molti ambienti diversi ed eseguire un’ampia varietà di compiti.
Quattro categories di comandi SQL
Data Definition Language (DDL)
Questo include CREATE (tabelle, viste, oggetti, ecc.), ALTER e DROP (cancellazione).
Data Manipulation Language (DML)
SELECT, INSERT, UPDATE, DELETE di record all’interno delle tabelle.
Data Control Language (DCL)
GRANT e/o REVOKE i privilegi degli utenti.
Database Indexing
Le istruzioni CREATE INDEX e DROP INDEX vengono utilizzate per creare ed eliminare gli indici nelle tabelle.
Semplificare la ricerca e altre funzioni
SQL consente anche di creare vincoli su tabelle o colonne per limitare il tipo di dati che contengono. Ciò contribuisce a garantire l’accuratezza e la pertinenza dei dati e a semplificare la gestione complessiva del database, snellendo la ricerca e altre funzioni.
Alcuni esempi di vincoli SQL sono:
NOT NULL
Che impedisce alle colonne di avere un valore nullo.
UNIQUE
Per garantire che tutti i valori siano diversi.
Inoltre, i DBA possono usare SQL per creare data integrity nel database impedendo la creazione di righe duplicate, consentendo solo l’inserimento di dati validi, vietando la cancellazione di dati legati a più record e altre funzioni.
Allo stesso tempo, però, SQL fornisce una serie di strumenti di normalizzazione progettati per semplificare le dipendenze dei dati e, in generale, ridurre le dimensioni e la portata del database per renderlo efficiente dal punto di vista operativo e delle risorse.
Ovviamente, SQL non è la scelta migliore per tutte le applicazioni di database, altrimenti non ci sarebbero alternative. Per prima cosa, mentre l’SQL è stato efficace per le scale di dati fino agli anni ’90 e oltre, l’implementazione e i sistemi di gestione dei database relazionali (piuttosto che il linguaggio stesso) hanno iniziato a vacillare a livelli iperscalari all’inizio del secolo.
Alcuni utenti lamentano anche le sue limitazioni di sharding, che ostacolano la capacità di suddividere database di grandi dimensioni in altri più piccoli e gestibili.
Questi inconvenienti hanno portato alla creazione di NoSQL e del più recente NewSQL, che cerca di migliorare la scalabilità dell’SQL tradizionale senza sacrificarne l’atomicità, la coerenza, l’isolamento e la durata (ACID).