Commenti(2)
Introduzione a SQL - Lezione 1
Un articolo introduttivo all'SQL, dedicato a neofiti e non che ha come scopo quello di introdurre i lettori al mondo dei database e all linguaggio utilizzato per definirli e manipolarli
Prima di capire cos'è Structured Query Language(SQL) e come va utilizzato nella definizione, modifica e cancellazioni di record nella basi di dati.
Cerchiamo di capire cosa si intende per basi di dati o come più comunemente è indicato una collezione di dati in inglese, cos'è un Database.
Tutti i sistemi informativi sopratutto le applicazioni gestionali fanno uso di dati memorizzati, per offrire funzionalità di gestione di tali agli utenti.
L'elemento di base di ogni database è il record. Un record è un insieme elementari di dati con il quale viene identificata un'entità del mondo reale. Gli elementi elementari di un record sono chiamati campi e sono scritti in segmenti continui all'interno del record stesso.

Non è così complesso trovare una soluzione a dove memorizzare i record, infatti alcune soluzioni immediate possono essere:
- file system
- foglio elettronico
entrambe hanno però alcuni svantaggi, come gestione dei file a carico dell'utente, dati non strutturati e difficile gestione di grandi quantità di dati nel caso del file system, mentre nel caso del foglio elettronico si ha una difficile condivisione tra più utenti dei dati ed è anche difficile reperire i dati memorizzati.
Per gli svantaggi elencati in precedenza fin dagli albori dell'informatica si è cercato di dare una struttura ai dati memorizzati, in modo da poterli facilmente condividere e gestire.
Agli inizi degli anni sessanta per esempio i sistemi gestionali si basavano su strutture dati di record disposti in schemi gerarchici.
Il modello gerarchico è una normale struttura ad albero, che, si suppone rifletta una gerarchia esistente tra le entità in gioco che appartengono al database. Ogni albero è formato da un unico record radice e da un sottoinsieme di sotto-alberi dipendenti da esso. Al livello più alto di tale struttura, quindi la radice, può apparire una sola tipologia di entità, tutte le altre tipologie di entità possono avere un solo padre ma un numero di figli variabili. Quindi se ogni padre può avere numerosi figli, ma ogni figli può avere un solo padre si può parlare di relazione 1:N o uno-a-molti.
Esempio di questa struttura è rappresentata nell'immagine seguente.

Ovviamente questo tipo di struttura ha notevoli svantaggi:
- rischio di ridondanze di dati per realizzare relazioni M-N o molti-a-molti
- molto difficile da modificare per adattarlo ai cambiamenti
I database sono stati sempre importanti per le applicazioni gestionali e per agevolare la creazione, la gestione e l'utilizzo, già per i modelli gerarchici furono creati numerosi strumenti software chiamati Database Management System(DBMS).
Questi strumenti introdussero numerosi vantaggi, come:
- controllo centralizzato dei dati
- permettono di considerare i dati come una risorsa dell'organizzazione
- indipendenza dei dati
- offrono un modello formale della realtà che rappresentano
I DBMS gestiscono quindi insieme di dati:
- grandi
- condivisi
- persistenti
e garantiscono:
- affidabilità
- efficienza
- privatezza
- efficacia
Parleremo nel prosieguo della guida a SQL dei DBMS.
Negli anni settanta finalmente Edgar F. Codd propose un nuovo modello di schema, il modello relazionale.
Il modello relazionale, è un modello logico di rappresentazione dei dati implementati su sistemi DBMS, rinominati per questo modello Relational Database Management System(RDBMS), un RDSMS è appunto MySQL. Questo modello si basa sull'algebra relazionale ed è strutturato intorno al concetto di relazione chiamata anche tabella.
Assunzione fondamentale di questo modello è che i dati sono rappresentati con il concetto di relazione e sono manipolati con operatori dell'algebra relazionale.
Nel prosieguo della guida parleremo in modo più approfondito del modello relazionale.
Con l'avvento del modello relazionale, tutti gli RDBMS devono essere accessibili con lo stesso strumento, lo Structured Query Language(SQL), che inizia a prendere forma concreta con una comunicazione del 1970 di E.F. Codd e pubblicata dai laboratori IBM nel 1974, nella quale si parlava non di SQL ma si Structured English Query Language(SEQUEL).
SEQUEL si proponeva non solo di diventare il sotto-linguaggio universale per i dati di cui parlava E.F. Codd, ma avrebbe permesso di formulare le interrogazioni(query) verso il database senza preoccuparsi di come il DBMS avesse memorizzato fisicamente i dati, ma addirittura si prometteva di poter formulare le query direttamente in inglese. Nel 1981 seguì una prima implementazione del progetto che vide la luce con il nome di Structed Query Language/Data System(SQL/DS).
Negli anni successivi grazie anche all'intervento di organismi come ANSI e ISO, SQL ha cessato di essere un prodotto IBM ed è divenuto uno linguaggio standard molto articolato e ricco di funzionalità, mantenendo comunque sempre quella caratteristica di sotto-linguaggio universale per i dati auspicato da E.F. Codd.
Negli anni successivi grazie anche all'intervento di organismi come ANSI e ISO, SQL ha cessato di essere un prodotto IBM ed è divenuto uno linguaggio standard molto articolato e ricco di funzionalità, mantenendo comunque sempre quella caratteristica di sotto-linguaggio universale per i dati auspicato da E.F. Codd.
Le caratteristiche principale di SQL, è che esso è un linguaggio specializzato e non procedurale, infatti con SQL non si può creare grafica o effettuare calcoli matematici, nè scrivere statement di codice per espletare delle funzionalità, si può solo lavorare su tabelle di un database relazionale.
Ovviamene le query SQL devono essere trasformati in istruzioni di linguaggio macchina affinchè si possono effettuare le operazioni desiderati sui i dati richiesti. Il software che si occupa di questa trasformazione è detto interprete SQL, scritto una sola volta per ciascuna piattaforma hardware. Chi vuole utilizzare un database non deve preoccuparsi di come questo sia realizzato fisicamente o dei collegamenti tra record, nulla di tutto ciò:con SQL si manipolano i dati sempre nello stesso modo indipendentemente da quale sia la macchina utilizzata, il DBMS utilizzato e come quest'ultimo memorizza fisicamente i dati sul supporto di memorizzazione permanente.
Questo articolo è stato un'introduzione generale su tutto ciò che riguarda il mondo dei Database di cui fa sicuramente parte SQL, nei prossimi articoli entreremo nel dettaglio nel capire cos'è un DBMS e cos'è un modello relazionale, per poi tuffarci nel mondo SQL.
Condividi su:
Esprimi un voto:
Argomenti chiave:
Ultimi commenti
g2d scrive: circa un anno faBenvenuto nello staff Gioacchino e in bocca al lupo per questa nuova sezione SQL!!!
Boscagoo scrive: 3 mesi faCiao, la guida è fantastica! Questa introduzione fa proprio al caso mio, per introdurmi meglio a questo nuovo mondo. Spero che tu continui a pubblicarla, perchè la ritengo utile, importante e molto semplice per muovere i primi passi :) C'è una ripetizione, quando parli di SQL/DS, il paragrafo sotto è duplicato. Alla prossima guida! M.

MySQL Report un tool di shell per tenere tutto sotto controllo