Skillbook Logo
foto profilo

Skill Factory

Lista post > Ricominciamo ... dal linguaggio SQL Lezione 4

Ricominciamo ... dal linguaggio SQL Lezione 4

Gino Visciano | Skill Factory - 26/02/2016 22:25:05 | in Tutorials

Benvenuti alla quarta lezione, nella lezione precedente avete visto come trasformare un Modello E-R nel Modello Relazionale corrispondente, creati rispettivamente durante la fase di progettazione concettuale e la fase progettazione logica.

Da questa lezione in poi vedrete come s'Implementa un Database partendo dallo Schema Fisico ottenuto nella fase di progettazione fisica.

Per implementare un Database serve un DBMS (Database Management System), un software che permette di creare, gestire ed interrogare una banca dati.

I DBMS più conosciuti sono MySql ed Oracle della Oracle, Access e SQL Server della Microsoft ed il DB2 della IBM.

I DBMS per creare e gestire i Database ed i loro oggetti come le Tabelle, le Viste, gli Indici e gli Utenti, usano il LINGUAGGIO SQL (Structure Query Language).

Lo Schema Fisico non è altro che il Modello Relazione in cui vengono aggiunte le informazioni richieste per la creazione del Database lavorando con il DBMS scelto.

Dopo aver scelto il DBMS, le informazioni che dovete aggiungere al Modello Relazionale per trasformarlo in uno Schema Fisico sono le seguenti:

  1. Tipi di dati dei  valori che verranno inseriti nelle colonne
  2. Indici associati alle colonne utilizzate per le ricerche e le selezioni
  3. Indici associati alle colonne usate per gli ordinamenti
  4. Vincoli associati alle colonne per controllare se i valori inseriti sono corretti;
  5. Contatori associati alle colonne per ottenere automaticamente valori numerici unici, quasi sempre i contatori sono associati a chiavi primarie.

Tipi di dati
Quando create una tabella per ogni colonna dovete indicare il tipo di dato che dovrà contenere, i tipi di dati che si possono inserire nelle colonne sono i seguenti:

Di seguito vengono indicati i tipi di dati più comuni, attenti perché ci possono essere delle differenze tra DBMS diversi:

Indici
Gli indici sono facoltativi, quando ad una colonna viene associato un indice la ricerca, la selezione e l'ordinamento dei valori sono più veloci.

Gli indici per la ricerca sono composti da una sola colonna, quelli per gli ordinamenti possono essere composti da una o più colonne (ad esempio Città, Cognome e Nome).

Quando ad una colonna si associa un indice, viene creato un file con le chiavi che rendono le operazioni di ricerca, selezione ed l'ordinamento più performanti.

Vincoli
I vincoli sono simili agli indici, ma si associano alle colonne per applicare dei controlli sui valori inseriti, esistono quattro tipi di vincoli:

  1. Indici unici
  2. Check
  3. Not null
  4. Inegrità referenziale

Gli indici unici sono uguali agli indici di ricerca, ma non accettano valori duplicati, ad esempio questo vincolo è utile per colonne che devono contenere valori come i codici fiscali oppure le partite iva, dati che non possono essere duplicati.

Attenti a non confondere gli indici unici con le chiavi primarie, in una tabella ci può essere una sola chiave primaria e molti indici unici. Inoltre le chiavi primarie si creano per applicare il vincolo d'integrità referenziale.

I vincoli check servono per evitare d'inserire nelle colonne valori non corretti, questo tipo di vincolo permette di associare ad una colonna una condizione, se il valore assegnato alla colonna soddisfa la condizione viene accettato, altrimenti viene rifiutato.

I vincoli not null, rendono il valore di una colonna obbligatorio. Quando s'inserisce una riga o record in una tabella, se il valore di una colonna non è indicato viene inserito il valore null, se si indica il vincolo not null, questo non è più possibile e quindi il valore diventa obbligatorio, altrimenti si riceve un messaggio d'errore.

I vincoli d'integrità referenziale servono per evitare operazioni incongruenti tra tabelle relazionate. Questo vincolo si applica alla chiave primaria della tabella master (padre) e la chiave esterna della tabella di dettaglio (figlia).

Quando il  vincolo d'integrità referenziale è attivo si possono evitare gli errori seguenti:

  1. nella tabella di dettaglio (figlia) non si possono inserire  record con chiavi esterne che non corrispondono ad una chiave primaria della tabella master (padre)
  2. nella tabella master (padre) non si possono cancellare record se il valore della chiave primaria è stato aggiunto ad una chiave esterna della tabella di dettaglio (figlia). Per cancellare il record, si devono prima eliminare tutti i record della tabella di dettaglio che hanno come chiave esterna lo stesso valore della chiave primaria del record da eliminare nella tabella master. 

 

Contatore
Se ad una colonna intera si associa un contatore autoincrementale, i valori nella colonna vengono inseriti automaticamente ad ogni inserimento.

Questa funzione offre il vantaggio di poter inserire record in una tabella, trascurando l’inserimento della colonna impostata come contatore, perché il valore viene gestito automaticamente.

Attenzione lo scopo del contatore è quello di generare valori unici, crescenti e diversi tra loro, non è un progressivo. Per gestire un progressivo bisogna creare un Trigger, cioè una procedura personalizzata scritta con il Linguaggio SQL

 

Come creare lo Schema Fisico
Per ottenere lo Schema Fisico che serve ad implementare un Database con il DBMS scelto, basta aggiungere al Modello Relazionale, disegnato nella fase di progettazione logica, tutte le informazioni che servono al Database Administrator (DBA), colui che gestisce una Banca dati, per creare il Database.

Per rendere questa operazione più semplice, indichiamo per tutte le informazioni da aggiungere allo Schema Fisico un alias che identifica il tipo d'informazione associata alla colonna.  

IDX = indice (index)
UNQ= indice unico (unique)
PK= chiave primaria (primary key)
FK= chiave esterna (foreign key)
NOT NULL=NOT NULL
CHK=check(condizione)

Per capire come si arriva allo Schema Fisico, di seguito riportiamo i tre artefatti principali dell'attività  di progettazione del Database per gestire libri dati in prestito:

Step 1:

Modello E-R creato durante la fase di progettazione concettuale, vedi lezione due.

Step 2:

Modello Relazionale creato durante la fase di progettazione logica, vedi lezione tre.

Step 3:

Schema Fisico creato durante la fase di progettazione fisica.


<< Lezione precedente           Lezione successiva >>


T U T O R I A L S    S U G G E R I T I


Share Button
TOP