[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico] [volume] [parte]
Una relazione è un insieme di tuple, suddivise in attributi, tutte nello stesso modo. Una relazione si rappresenta normalmente in forma tabellare, dove le tuple sono costituite dalle righe e gli attributi dalle colonne.
|
I valori che si possono inserire nelle celle della tabella dipendono dal dominio dell'attributo relativo. Per esempio, l'attributo Listino (corrispondente alla quarta colonna) della relazione Articoli, può contenere solo valori numerici positivi, con un massimo di due decimali.
Con l'ausilio di un programma per la scrittura e la modifica di file di testo puro, si crei il file prova-creazione-articoli.sql
, contenente il testo seguente, sostituendo le metavariabili con informazioni appropriate e rispettando la punteggiatura:
|
L'istruzione CREATE TABLE permette la creazione della relazione Articoli, stabilendo dei vincoli, per cui gli attributi Articolo e Descrizione non possono contenere un valore nullo; inoltre viene stabilito il valore predefinito per gli altri attributi. Si stabilisce anche che l'attributo Articolo deve essere una chiave primaria, comportando la necessità che non appaiano tuple con lo stesso codice articolo.
Le istruzioni INSERT, inseriscono le prime due tuple della relazione. A questo proposito, si osservi che i dati numerici, come il prezzo di listino e il livello della scorta minima, si indicano così come sono, con l'accortezza di usare il punto per la separazione dei decimali, mentre le stringhe (le informazioni testuali) vanno delimitate da apici singoli.
Si controlli di avere scritto il file prova-creazione-articoli.sql
in modo corretto, rispettando anche la punteggiatura; si controlli di avere salvato il file con li nome previsto, quindi si proceda con il comando seguente:
$
sqlite3 mag.db < prova-creazione-articoli.sql
[Invio]
Se il programma mostra dei messaggi, si tratta di errori, che devono essere verificati attentamente, prima di proseguire.
Si ricorda che il file |
Per eliminare una relazione si usa l'istruzione DROP TABLE, come nell'esempio seguente:
|
Si vuole eliminare la relazione Articoli appena creata nella base di dati contenuta nel file mag.db
, ma trattandosi di un'operazione molto semplice, è meglio usare il programma sqlite3 in modo interattivo. Si avvii il programma sqlite3 e si eseguano i comandi successivi, come descritto qui di seguito, utilizzando anche il comando .schema per avere l'elenco delle relazioni esistenti, prima di cancellare effettivamente quella stabilita:
$
sqlite3 mag.db
[Invio]
SQLite version ... Enter ".help" for instructions |
sqlite>
.schema
[Invio]
CREATE TABLE Articoli (Articolo INTEGER NOT NULL, Descrizione CHAR(60) NOT NULL, UM CHAR(7) DEFAULT 'pz', Listino NUMERIC(14,2) DEFAULT 0, ScortaMin NUMERIC(12,3) DEFAULT 0, PRIMARY KEY (Articolo)); |
sqlite>
DROP TABLE Articoli;
[Invio]
sqlite>
.quit
[Invio]
Si ricorda che se, a seguito dell'inserimento dell'istruzione DROP TABLE, il programma mostra dei messaggi, si tratta di errori che devono essere verificati attentamente, prima di proseguire.
Per poter svolgere questa verifica, gli studenti devono essere in grado di realizzare un file di testo contenente codice SQL, con le istruzioni necessarie alla creazione di una relazione e con quelle che permettono l'inserimento delle tuple. Inoltre, devono essere in grado di utilizzare il programma sqlite3 in modo interattivo, per visualizzare l'elenco delle relazioni esistenti nella base di dati e per eliminare una relazione.
Si riprenda il file prova-creazione-articoli.sql
e lo si salvi con il nome creazione-articoli.sql
. Il file creazione-articoli.sql
va poi modificato aggiungendo le istruzioni necessarie a completare l'inserimento degli articoli che sono visibili nella figura 505.1.
Una volta completato e salvato il file creazione-articoli.sql
, se ne controlli il funzionamento con la base di dati:
$
sqlite3 mag.db < creazione-articoli.sql
[Invio]
Se si ottengono degli errori, si deve eliminare la relazione Articoli dalla base di dati contenuta nel file mag.db
, utilizzando il programma sqlite3 in modo interattivo, quindi, dopo le correzioni, si deve riprovare.
Una volta eseguita l'operazione con successo, si stampi il file creazione-articoli.sql
e lo si consegni per la correzione all'insegnante.
Nella valutazione viene controllata la correttezza del contenuto del file e la coerenza estetica nella scrittura delle istruzioni SQL.
Prima di svolgere questa verifica, è necessario avere svolto quella precedente, della quale valgono anche gli stessi requisiti.
Si crei il file creazione-causali.sql
, inserendo le istruzioni necessarie a creare la relazione Causali, con il contenuto che si vede nella figura 505.6, tenendo conto che:
l'attributo Causale è di tipo INTEGER, non ammette il valore nullo e costituisce la chiave primaria;
l'attributo Descrizione è di tipo CHAR a 60 caratteri e non ammette il valore nullo;
l'attributo Variazione è di tipo NUMERIC, a una sola cifra, senza decimali, con un valore predefinito pari a zero.
|
|
Una volta completato e salvato il file creazione-causali.sql
, se ne controlli il funzionamento con la base di dati:
$
sqlite3 mag.db < creazione-causali.sql
[Invio]
Se si ottengono degli errori, si deve eliminare la relazione Causali dalla base di dati contenuta nel file prova.db
, utilizzando il programma sqlite3 in modo interattivo, quindi, dopo le correzioni, si deve riprovare.
Una volta eseguita l'operazione con successo, si stampi il file creazione-causali.sql
e lo si consegni per la correzione all'insegnante.
Nella valutazione viene controllata la correttezza del contenuto del file e la coerenza estetica nella scrittura delle istruzioni SQL.
Prima di svolgere questa verifica, è necessario avere svolto quelle precedenti, delle quali valgono anche gli stessi requisiti.
Si crei il file creazione-fornitori.sql
, inserendo le istruzioni necessarie a creare la relazione Fornitori, con il contenuto che si vede nella figura 505.8, tenendo conto che:
l'attributo Fornitore è di tipo INTEGER, non ammette il valore nullo e costituisce la chiave primaria;
l'attributo RagioneSociale è di tipo VARCHAR a 120 caratteri e non ammette il valore nullo;
l'attributo Paese è di tipo CHAR a 30 caratteri e il suo valore predefinito è ITALIA;
l'attributo Indirizzo è di tipo VARCHAR a 120 caratteri e non ammette il valore nullo;
l'attributo CAP è di tipo CHAR a 10 caratteri;
l'attributo Citta è di tipo VARCHAR a 120 caratteri e non ammette il valore nullo;
l'attributo Prov è di tipo CHAR a 2 caratteri e il suo valore predefinito è costituito da una stringa di dimensione nulla;
l'attributo Telefono è di tipo CHAR a 20 caratteri e il suo valore predefinito è costituito da una stringa di dimensione nulla;
l'attributo Fax è di tipo CHAR a 20 caratteri e il suo valore predefinito è costituito da una stringa di dimensione nulla;
l'attributo CFPI (codice fiscale o partita IVA) è di tipo CHAR a 30 caratteri e il suo valore predefinito è costituito da una stringa di dimensione nulla.
|
|
Una volta completato e salvato il file creazione-fornitori.sql
, se ne controlli il funzionamento con la base di dati:
$
sqlite3 mag.db < creazione-fornitori.sql
[Invio]
Se si ottengono degli errori, si deve eliminare la relazione Fornitori dalla base di dati contenuta nel file mag.db
, utilizzando il programma sqlite3 in modo interattivo, quindi, dopo le correzioni, si deve riprovare.
Una volta eseguita l'operazione con successo, si stampi il file creazione-fornitori.sql
e lo si consegni per la correzione all'insegnante.
Nella valutazione viene controllata la correttezza del contenuto del file e la coerenza estetica nella scrittura delle istruzioni SQL.
Prima di svolgere questa verifica, è necessario avere svolto quelle precedenti, delle quali valgono anche gli stessi requisiti.
Si crei il file creazione-clienti.sql
, inserendo le istruzioni necessarie a creare la relazione Clienti, con il contenuto che si vede nella figura 505.10, tenendo conto che:
l'attributo Cliente è di tipo INTEGER, non ammette il valore nullo e costituisce la chiave primaria;
l'attributo RagioneSociale è di tipo VARCHAR a 120 caratteri e non ammette il valore nullo;
l'attributo Paese è di tipo CHAR a 30 caratteri e il suo valore predefinito è ITALIA;
l'attributo Indirizzo è di tipo VARCHAR a 120 caratteri e non ammette il valore nullo;
l'attributo CAP è di tipo CHAR a 10 caratteri;
l'attributo Citta è di tipo VARCHAR a 120 caratteri e non ammette il valore nullo;
l'attributo Prov è di tipo CHAR a 2 caratteri e il suo valore predefinito è costituito da una stringa di dimensione nulla;
l'attributo Telefono è di tipo CHAR a 20 caratteri e il suo valore predefinito è costituito da una stringa di dimensione nulla;
l'attributo Fax è di tipo CHAR a 20 caratteri e il suo valore predefinito è costituito da una stringa di dimensione nulla;
l'attributo CFPI (codice fiscale o partita IVA) è di tipo CHAR a 30 caratteri e il suo valore predefinito è costituito da una stringa di dimensione nulla.
|
|
Una volta completato e salvato il file creazione-clienti.sql
, se ne controlli il funzionamento con la base di dati:
$
sqlite3 mag.db < creazione-clienti.sql
[Invio]
Se si ottengono degli errori, si deve eliminare la relazione Clienti dalla base di dati contenuta nel file mag.db
, utilizzando il programma sqlite3 in modo interattivo, quindi, dopo le correzioni, si deve riprovare.
Una volta eseguita l'operazione con successo, si stampi il file creazione-clienti.sql
e lo si consegni per la correzione all'insegnante.
Nella valutazione viene controllata la correttezza del contenuto del file e la coerenza estetica nella scrittura delle istruzioni SQL.
Prima di svolgere questa verifica, è necessario avere svolto quelle precedenti, delle quali valgono anche gli stessi requisiti.
Si crei il file creazione-movimenti.sql
, inserendo le istruzioni necessarie a creare la relazione Movimenti, con il contenuto che si vede nella figura 505.12, tenendo conto che:
l'attributo Movimento è di tipo INTEGER, non ammette il valore nullo e costituisce la chiave primaria;
l'attributo Articolo è di tipo INTEGER e non ammette il valore nullo;
l'attributo Causale è di tipo INTEGER e non ammette il valore nullo;
l'attributo Data è di tipo DATE e non ammette il valore nullo;
l'attributo Cliente è di tipo INTEGER;
l'attributo Fornitore è di tipo INTEGER;
l'attributo Quantita è di tipo NUMERIC a 15 cifre, di cui cinque sono usate per i decimali, e non ammette il valore nullo;
l'attributo Valore è di tipo NUMERIC a 14 cifre, di cui due sono usate per i decimali, e non ammette il valore nullo.
|
|
Si ricorda che i valori numerici vanno indicati come sono, con l'accortezza di usare il punto per la separazione dei decimali; le date, come le stringhe (i valori testuali) vanno delimitate con apici singoli. In questo caso, quando viene a mancare il valore per il cliente o il fornitore, si inserisce il valore «nullo», che si scrive con la parola chiave NULL, come appare nella figura 505.12, senza usare apici.
Una volta completato e salvato il file creazione-movimenti.sql
, se ne controlli il funzionamento con la base di dati:
$
sqlite3 mag.db < creazione-movimenti.sql
[Invio]
Se si ottengono degli errori, si deve eliminare la relazione Movimenti dalla base di dati contenuta nel file mag.db
, utilizzando il programma sqlite3 in modo interattivo, quindi, dopo le correzioni, si deve riprovare.
Una volta eseguita l'operazione con successo, si stampi il file creazione-movimenti.sql
e lo si consegni per la correzione all'insegnante.
Nella valutazione viene controllata la correttezza del contenuto del file e la coerenza estetica nella scrittura delle istruzioni SQL.
Prima di passare al capitolo successivo, si deve realizzare un file contenente le istruzioni con cui creare e popolare le relazioni descritte in questo capitolo. In pratica, si tratta di copiare il contenuto dei file creazione-articoli.sql
, creazione-causali.sql
, creazione-fornitori.sql
, creazione-clienti.sql
e creazione-movimenti.sql
, in un file completo, che deve essere chiamato magazzino.sql
.
Una volta realizzato il file magazzino.sql
, si deve cancellare il file mag.db
e ricreare a partire dalle istruzioni contenute nel file magazzino.sql
:
$
sqlite3 mag.db < magazzino.sql
[Invio]
Se vengono segnalati degli errori, occorre correggere il file magazzino.sql
, cancellare nuovamente il file mag.db
, quindi si deve ripetere l'operazione. La base di dati contenuta nel file mag.db
, viene usata nel capitolo successivo e non si può proseguire se non si riesce a ricrearla correttamente.
All'inizio del capitolo è stato creato il file prova-creazione-articoli.sql
, che a questo punto non serve più e va eliminato.
Appunti di informatica libera 2006.07.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome creazione_ed_eliminazione_delle_relazioni.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico]