Home
  • Sql
  • Introduzione a SQL - Lezione 1
gioacchino.delprete
pubblicato circa un anno fa

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:

  • Current rating: 5.0/5
  • 1
  • 2
  • 3
  • 4
  • 5

Argomenti chiave:

Ultimi commenti Ultimi commenti

g2d
g2d
scrive: circa un anno fa

Benvenuto nello staff Gioacchino e in bocca al lupo per questa nuova sezione SQL!!!

Boscagoo
Boscagoo
scrive: 3 mesi fa

Ciao, 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.

Esegui il Login oppure registrati per scrivere un commento.
Cerca nel sito...
Ultime recipes

Un utilissimo tool di shell che effettua un dettagliato e comodo report su MySQL MySQL Report un tool di shell per tenere tutto sotto controllo

Un utilissimo tool di shell che effettua un dettagliato e comodo report su MySQL


Vai alla recipe

Un utilissimo tool per sniffare il traffico Client/Server TCP/IP di MySQL MySQLSniffer sniffare il traffico TCP di MySQL

Un utilissimo tool per sniffare il traffico Client/Server TCP/IP di MySQL


Vai alla recipe

Verificare l'integrità, riparare gestire chiavi e memoria di tabelle MyISAM attraverso myisamchk riparare file MyISAM

Verificare l'integrità, riparare gestire chiavi e memoria di tabelle MyISAM attraverso il file myisamchk


Vai alla recipe

Un tool per comprimere le tabelle MyISAM fino a oltre il 50% myisampack comprimere file MyISAM

Un tool per comprimere le tabelle MyISAM fino a oltre il 50%


Vai alla recipe

mysqlshow le info di base sui database, tabelle e colonne senza utilizzare alcun mysqlshow visualizzare le informazioni sul database MySQL

mysqlshow le info di base sui database, tabelle e colonne senza utilizzare alcun client


Vai alla recipe

Utilizzando UNION / UNION ALL su campi int unsigned zerofill,
ho notato che MysqlUNION / UNION ALL su campi int unsigned zerofill. di DebUsr
Vai al tip

Utilizzo di funzioni come alias di campo tramite l'impiego di prepared statementReport con alias di campo dinamici di john_revelator
Vai al tip

Può capitare che sia necessario eseguire un dump di database in formato Comma SeparatedEsecuzione dump in formato CSV (tabelle in engine MyIsam esportate in formato CSV) di ghigomatto
Vai al tip

E' possibile eseguire le query SQL contenute in un file di testo. Questo è utileEseguire le query da un file di testo di Sante Caserio
Vai al tip

Se vogliamo fare il backup di tutti i database con mysqldump, e ne abbiamo parecchiFare il backup di tutti i database di Sante Caserio
Vai al tip

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve a tutti.

Ho una tabella con lettere accentate.
Le lettere vengono visualizzate ordinamento tabelle di ditch Vai al topic

Salve a tutti.

Ho una tabella con lettere accentate.
Le lettere vengono visualizzate ordinamento tabelle di ditch Vai al topic