2 Sigda - Database
-
Upload
majong-devjfu -
Category
Documents
-
view
720 -
download
4
description
Transcript of 2 Sigda - Database
SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
dott. ing. Francesco [email protected]
dott. ing. Francesco Guerra 2SIS
TEM
I IN
FORM
ATIV
I PER L
A G
ESTIO
NE D
ELL
’AZIE
ND
A
2 DB
Introduzione al linguaggio SQL
dott. ing. Francesco Guerra 3SIS
TEM
I IN
FORM
ATIV
I PER L
A G
ESTIO
NE D
ELL
’AZIE
ND
A
2 DB
Il linguaggio SQL
SQL e’ il linguaggio di riferimento per le basi di dati relazionali.Il linguaggio SQL contiene al suo interno le funzionalità di:
DDL (Data Definition Language): insieme di comandi per la definizione dello schema di una base di dati relazionaleDML (Data Manipulation language): insieme di comandi per la modifica e l’interrogazione dell’istanza di una base di datiDCL (Data Control Language): insieme di comandi per la gestione degli utenti e dei privilegi di accesso.
dott. ing. Francesco Guerra 4SIS
TEM
I IN
FORM
ATIV
I PER L
A G
ESTIO
NE D
ELL
’AZIE
ND
A
2 DB
Il linguaggio SQL: tipi di dato
Il linguaggio SQL mette a disposizione 6 famiglie di domini elementari:
CaratteriBitTipi numerici esattiTipi numerici approssimatiData e oraIntervalli temporali
Nuove versioni dello standard (SQL:1999) hanno introdotto nuovi domini:
Boolean, BLOB, CLOB
dott. ing. Francesco Guerra 5SIS
TEM
I IN
FORM
ATIV
I PER L
A G
ESTIO
NE D
ELL
’AZIE
ND
A
2 DB
Il linguaggio SQL: definizione di tabella
Una tabella e’ costituita da una collezione di attributi e da un insieme (eventualmente) vuoto di attributi:
create table NomeTabella(NomeAttributo Dominio [Valore Default] [Vincoli]{, NomeAttributo Dominio [Valore Default] [Vincoli]}Altri Vincoli
)Vincoli intrarelazionali: check, not null, unique, primary keyVincoli interrelazionali: foreign key
dott. ing. Francesco Guerra 6SIS
TEM
I IN
FORM
ATIV
I PER L
A G
ESTIO
NE D
ELL
’AZIE
ND
A
2 DB
Il linguaggio SQL: interrogazioni
SQL esprime le interrogazioni in modo dichiarativo, ovvero viene specificato l’obiettivo dell’interrogazione e non il modo in cui ottenerlo.L’interrogazione viene passata all’ottimizzatore, un componente del DBMS che analizza l’interrogazione e formula una interrogazione nel linguaggio procedurale interno utilizzato dal DBMS (il linguaggio procedurale specifica i passi necessari per ottenere il risultato).In generale, esistono diversi modi per esprimere la stessa interrogazione.
dott. ing. Francesco Guerra 7SIS
TEM
I IN
FORM
ATIV
I PER L
A G
ESTIO
NE D
ELL
’AZIE
ND
A
2 DB
Il linguaggio SQL: interrogazioni (2)
Sintassi per l’interrogazione:Select <lista select>From <lista from>[Where <condizione>][Order by <lista order>]
Clausola select: specifica gli elementi dello schema della tabella risultatoClausola from: indica le tabelle sulle quali effettuare l’interrogazioneClausola where: specifica le condizioni sulle quali verificare l’interrogazioneClausola order by: specifica un’ordinamento del risultato
dott. ing. Francesco Guerra 8SIS
TEM
I IN
FORM
ATIV
I PER L
A G
ESTIO
NE D
ELL
’AZIE
ND
A
2 DB
Il linguaggio SQL: clausola select
E’ possibile selezionare tutti gli attributi attraverso un unico simbolo *Possono comparire delle generiche espressioni sul valore degli attributi di ciascuna riga selezionata:Select stipendio/12 as stipendio_mensile
dott. ing. Francesco Guerra 9SIS
TEM
I IN
FORM
ATIV
I PER L
A G
ESTIO
NE D
ELL
’AZIE
ND
A
2 DB
Il linguaggio SQL: clausola where predicati semplici
Predicati semplici: operatori =,<>,>, >=, <, <=pag 142/143 [BERGAMASCHI]
Nel caso in cui i predicati sono separati dall’operatore and, sono selezionate solo le righe nelle quali tutti i predicati sono veri.Quando i predicati sono separati dall’operatore or, sono selezionate solo le righe per cui almeno uno dei predicati risulta vero.L’operatore logico not è unario e inverte il valore di verita’del predicato.Se si esprime una relazione con l’uso di and e or, conviene esplicitare l’ordine di valutazione mediante l’uso delle parentesi.
Selezionare gli studenti iscritti al primo anno di corso e che risiedano a Modena o a Reggio Emilia
dott. ing. Francesco Guerra 10SIS
TEM
I IN
FORM
ATIV
I PER L
A G
ESTIO
NE D
ELL
’AZIE
ND
A
2 DB
Il linguaggio SQL: clausola where predicati semplici
Uso del like: nel confronto tra stringhe l’operatore likepermette di utilizzare dei caratteri speciali _ per rappresentare il confronto con un carattere arbitrario e % per una stringa di un numero arbitrario (eventualmente nullo) di caratteri arbitrari.
dott. ing. Francesco Guerra 11SIS
TEM
I IN
FORM
ATIV
I PER L
A G
ESTIO
NE D
ELL
’AZIE
ND
A
2 DB
Il linguaggio SQL: gestione dei duplicati
E’ possibile che una interrogazione restituisca più volte uno stesso valore (anni di corso degli studenti che abitano a Modena).
L’eliminazione dei duplicati è specificata con la parola chiave distinct.Se la clausola select contiene una primary key per ogni tabella che compare nella clausola from, il risultato non contiene dei duplicati
dott. ing. Francesco Guerra 12SIS
TEM
I IN
FORM
ATIV
I PER L
A G
ESTIO
NE D
ELL
’AZIE
ND
A
2 DB
Il linguaggio SQL
Operatori quantificati: pag 143 [BERGAMASCHI]ANY | ALL
Operatore di confronto con valori NULL:Attributo is [not] null
Ordinamento del risultato: pag 143 [BERGAMASCHI]Order by Attributo [asc | desc] {, Attributo [asc | desc]}
dott. ing. Francesco Guerra 13SIS
TEM
I IN
FORM
ATIV
I PER L
A G
ESTIO
NE D
ELL
’AZIE
ND
A
2 DB
Il linguaggio SQL: prodotto cartesiano e join
pag 144/151 [BERGAMASCHI]Sintassi:Select attrFrom Tabella [[as] Alias]
{[TipoJoin] join Tabella [[as] Alias] on CondizionediJoin}
TipoJoin:Inner default, si puo’ omettereRight outer
Left outerFull outer
dott. ing. Francesco Guerra 14SIS
TEM
I IN
FORM
ATIV
I PER L
A G
ESTIO
NE D
ELL
’AZIE
ND
A
2 DB
Il linguaggio SQL: interrogazioni innestate
Una interrogazione e’ innestata se la sua condizione e’formulata utilizzando il risultato di un’altra interrogazione, chiamata subquery:
Operatori quantificatiOperatori di setQuantificatore esistenziale
pag 152/158 [BERGAMASCHI]
dott. ing. Francesco Guerra 15SIS
TEM
I IN
FORM
ATIV
I PER L
A G
ESTIO
NE D
ELL
’AZIE
ND
A
2 DB
Il linguaggio SQL: operatori aggregati
Gli operatori aggregati sono gestiti come una estensione delle normali interrogazioni: prima viene eseguita l’interrogazione e poi viene applicato l’operatore aggregato.Ci sono 5 operatori aggregati:
CountSumMaxMinAvg
pag 159/160 [BERGAMASCHI]
dott. ing. Francesco Guerra 16SIS
TEM
I IN
FORM
ATIV
I PER L
A G
ESTIO
NE D
ELL
’AZIE
ND
A
2 DB
Bibliografia
Atzeni, Ceri, Paraboschi, Torlone: Basi di dati: Modelli e linguaggi di interrogazione, McGraw-HillBeneventano, Bergamaschi, Guerra, Vincini: Progetto di basi di dati relazionali, Pitagora Editrice Bologna, 2007
dott. ing. Francesco Guerra 17SIS
TEM
I IN
FORM
ATIV
I PER L
A G
ESTIO
NE D
ELL
’AZIE
ND
A
2 DB
Schema di esempioS(Matr,SNome,Citta,ACorso)C(CC,CNome,CD)
FK: CD REFERENCES D
D(CD,CNome,Citta)E(Matr,CC,Data,Voto)
FK: Matr REFERENCES SFK: CC REFERENCES C