Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli...
Transcript of Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli...
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Basi di dati
Fondamentidi informatica
Michele [email protected]
http://www.ce.unipr.it/people/tomamic
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Sistema informativo
Insieme di programmi concorrenti:
Ogni programma opera su un certo insieme di dati
Certi dati possono essere condivisi da alcuni programmi
Nei casi più semplici, ogni programma del sistema gestisce separatamente i suoi dati
In altri casi, si interpone un sistema di gestione tra i programmi e i dati
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Ridondanza e inconsistenza: più copie dello stesso dato; copie modificate diversamente
Riservatezza e integrità: dati riservati accessibili a persone non autorizzate;operazioni sbagliateo incomplete sui dati
Concorrenza: accessoe aggiornamento datinon sincronizzato traprogrammi differenti
Gestione distinta dei dati
Dati1Dati1 Dati2Dati2 Dati3Dati3
Dati4Dati4 Dati5Dati5 Dati6Dati6
Prog1Prog1 Prog2Prog2 Prog3Prog3
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Gestione condivisa dei dati
DatiDati
Prog1Prog1 Prog2Prog2 Prog3Prog3
DBMSDBMS
Tutte le azioni sui dati vengono mediate dal DBMS (DataBase Management System)
Dati in formato standard, con backup/ripristino
Controlli su:
Ridondanza, consistenza,distribuzione
Riservatezza, integrità
Accesso concorrente
Ma risorse hw/sw (stesso DBMS)
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Basi di dati con DBMS
Da preferire quando:
Dati organizzati secondo modelli predefiniti
Grandi: fino e oltre TByte, memoria secondaria
Condivisi: accesso da app. ed utenti diversi
Persistenti: tempo di vita > esecuzione app.
Da evitare quando:
Insieme dati piccolo e semplice, con poche modifiche nel tempo, non condiviso
Prestazioni in tempo reale
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Creano problemi al mantenimento della congruenza dei dati condivisi
Es. prelievo da un conto corrente come sequenza operazioni
1. Verifica disponibilità
2. Sottrazione importo prelevato
VerificaCC ≥ 1000 ?
VerificaCC ≥ 1000 ?
VerificaCC ≥ 1000 ?
VerificaCC ≥ 1000 ?
Sottrazione1000 €
Sottrazione1000 €
Sottrazione1000 €
Sottrazione1000 €
t
Stesso CC, disponibilità 1000 €Alla fine CC = -1000€!
Accessi concorrenti
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Transazione
Insieme di operazioni non decomponibili
Eseguite completamente, prima che stessi dati siano nuovamente disponibili
ACID (atomicity, consi-stency, isolation, durability)
Es. precedente:
1. Verifica disponibilità
2. Sottrazione importo
Unica transazione!
VerificaCC ≥ 1000 ?
VerificaCC ≥ 1000 ?
VerificaCC ≥ 1000 ?
VerificaCC ≥ 1000 ?
Sottrazione1000 €
Sottrazione1000 €
Sottrazione1000 €
Sottrazione1000 €
t
Stesso CC, disponibilità 1000 €Permessa solo 1a transaz.: OK!
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Architettura a tre livelli
DatiDati
Applicazioni utenteInterrogazioni
Applicazioni utenteInterrogazioni
DBMSDBMS
Gestioneinterrogazioni
Accesso ai dati
MetadatiMetadati
Schema esternoDati come visti da un certo utenteo da una classe di utenti
Schema logico (o concettuale)Struttura di ciascun dato ecollegamenti tra dati diversi
Schema interno (o fisico)Dati come un insieme di file su disco
Livelli di astrazione
Indipendenzalogica
Indipendenzalogica
Indipendenzafisica
Indipendenzafisica
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Linguaggi DDL e DML
DDL (Data Definition Language), intensionale
Usato dal DBA (amministratore)
Definire lo schema dati, secondo il modello concettuale: gerarchico, relazionale ecc.
Definire tabelle, campi, chiavi ecc.
DML (Data Manipulation Lang.), estensionale
Usato all'interno delle applicazioni
CRUD (INSERT, SELECT, UPDATE, DELETE)
~ 4 verbi HTTP (POST, GET, PUT, DELETE)
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Modelli dei dati
Caratterizza livello concettuale e esterno DBMS
Definito da regole precise, per esprimere sia le proprietà statiche che quelle dinamiche dei dati
Evoluzione dei modelli:
Gerarchico (anni 1960)
Reticolare (anni 1970)
Relazionale (anni 1970)
Object-relational, object-oriented (anni 1980)
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Modello relazionale
Codd - 1970; DBMS reali - 1981
Si basa sul concetto matematico di relazione
Relazioni rappresentate da familiari tabelle
Successo anche per semplicità di utilizzo
A ciascun dominio è associato un nome (attributo), unico nella relazione
Il nome “descrive” il ruolo del dominio
Attributi usati come intestazioni delle colonne
Informazioni inserite nelle righe della tabella
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Definizione di relazione
Relazione R: insieme di n-uple ordinate(d
1 … d
n) tali che d
1 ϵ D
1 ... d
n ϵ D
n
Cioè R è sottoinsieme del prodotto cartesianoD
1 × D
2 × … × D
n
Insiemi D1 … D
n (anche non distinti) detti domini
Valore n detto grado di R
Il numero di n-uple in R è detto cardinalità di R
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
StudenteStudente
Database universitario
MatricolaMatricola CognomeCognome NomeNome CorsoCorso NascitaNascita
2765527655 RossiRossi MarioMario Ing.Inf.Ing.Inf. 1978-12-051978-12-05
7876378763 RossiRossi MarioMario Ing.Inf.Ing.Inf. 1976-11-031976-11-03
6543265432 NeriNeri PieroPiero Ing. Mecc.Ing. Mecc. 1979-07-101979-07-10
8765487654 NeriNeri MarioMario Ing. Inf.Ing. Inf. 1976-11-031976-11-03
6765367653 RossiRossi PieroPiero Ing. Mecc.Ing. Mecc. 1978-12-051978-12-05
EsameEsame
StudenteStudente InsegnamentoInsegnamento VotoVoto
7876378763 0404 3030
6543265432 0202 2424
6543265432 0101 2828
2765527655 0101 2626
InsegnamentoInsegnamento
CodiceCodice TitoloTitolo DocenteDocente
0101 AnalisiAnalisi ChiariChiari
0202 ChimicaChimica BruniBruni
0404 ChimicaChimica VerdiVerdi
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Studente
Terminologia
Matricola Cognome Nome Corso Nascita27655 Rossi Mario Ing.Inf. 1978-12-0578763 Rossi Mario Ing.Inf. 1976-11-0365432 Neri Piero Ing. Mecc. 1979-07-1087654 Neri Mario Ing. Inf. 1976-11-0367653 Rossi Piero Ing. Mecc. 1978-12-05
Schem
a
Riga /
Tupla
/ Rec
ord
Colonna / Attributo / Campo
Tabella / Relazione / File
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Dominio di un attributo
Tuple di una relazione definite dall'insieme dei valori corrispondenti agli attributi
Dominio di un attributo: insieme di tutti e soli i valori che quell'attributo può assumere
Es. Dominio dei codici fiscali
Formato dalle stringhe di 16 caratteri che rispettano con precisione le regole di generazione dei codici fiscali
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Modello E-R
Si creano associazioni tra entità distinte, tramite condivisione di attributi
Le righe di diverse tabelle hanno domini in comune
Es. Database universitario
Studenti ed esami sono associati con gli attributi matricola e studente
Insegnamenti ed esami con attributi insegnamento e codice
Semplicità: forza del modello relazionale!
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Una tabella (relazione) non dovrebbe contenere due righe identiche
Sempre possibile scegliere un sottoinsieme di campi di una tabella, in maniera da identificare univocamente ciascuna riga della tabella
La chiave primaria (primary key, PK) di una tabella è il minimo sottoinsieme di campi che permette di identificare univocamente le righe della tabella
Chiave primaria
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Le chiavi candidate sono gli attributi in una relazione con la proprietà di poter essere la chiave primaria:
Tra le chiavi candidate deve essere scelta la chiave primaria
Le chiavi escluse si dicono chiavi alternative
Le righe di una tabella rappresentano “entità” del mondo reale
La chiave primaria rappresenta il modo con cui è possibile distinguere queste entità
Chiave candidata
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Le informazioni presenti in tabelle diverse possono essere associate tra loro perché tali tabelle hanno dei domini in comune
Quando il dominio di un campo K che è chiave primaria in una tabella A è presente anche in un’altra tabella B...
Allora questo campo K è detto chiave esterna (foreign key, FK) verso la tabella A
Chiave esterna
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Studente
Concetto e tipo di chiave
Matricola Cognome Nome Corso Nascita27655 Rossi Mario Ing.Inf. 1978-12-0578763 Rossi Mario Ing.Inf. 1976-11-0365432 Neri Piero Ing. Mecc. 1979-07-1087654 Neri Mario Ing. Inf. 1976-11-0367653 Rossi Piero Ing. Mecc. 1978-12-05
Esame
Studente Insegnam Voto78763 04 3065432 02 2465432 01 2827655 01 26
Insegnamento
Codice Titolo Docente01 Analisi Chiari02 Chimica Bruni04 Chimica Verdi
PK
PK
PK
FK FK
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Normalizzazione
Processo di organizzazione dei dati per evitare ridondanza, anomalie, inefficienza
Stessa informazione in più copie → svantaggi
Maggior uso di memoria
Modifiche ripetute della stessa informazione
Inconsistenza dei dati, se aggiornati in modo indipendente; la stessa informazione potrebbe assumere valori diversi
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Prima forma normale
La relazione rispetta il modello relazionale
Le tuple hanno un numero fisso di attributi definiti su domini elementari
Non ci sono righe uguali
Atomicità: ogni attributoè elementare
Non ci sono attributi ripetitivi
AcquistoAcquisto
CarrelloClienteProdottoCategorieQuantità
CarrelloClienteProdottoCategorieQuantità
AcquistoAcquisto
NumCarrelloDataCodFiscClienteNomeClienteCognomeClienteIndirizzoClienteCodProdottoNomeProdottoMarcaPrezzoQuantita
NumCarrelloDataCodFiscClienteNomeClienteCognomeClienteIndirizzoClienteCodProdottoNomeProdottoMarcaPrezzoQuantita
ProdCatProdCat
CodProdottoCategoriaCodProdottoCategoria
Es. Frutta,Sud America
Es. Frutta,Sud America
Spesaa casa
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Seconda forma normale
Non ci sono attributi non-chiave che dipendono parzialmente dalla chiave
AcquistoAcquisto
NumCarrelloCodProdottoQuantita
NumCarrelloCodProdottoQuantita
ProdCatProdCat
CodProdottoCategoriaCodProdottoCategoria
CarrelloCarrello
NumCarrelloDataCodFiscaleNomeCognomeIndirizzo
NumCarrelloDataCodFiscaleNomeCognomeIndirizzoProdottoProdotto
CodProdottoNomeMarcaPrezzo
CodProdottoNomeMarcaPrezzo
AcquistoAcquisto
NumCarrelloDataCodFiscClienteNomeClienteCognomeClienteIndirizzoClienteCodProdottoNomeProdottoMarcaPrezzoQuantita
NumCarrelloDataCodFiscClienteNomeClienteCognomeClienteIndirizzoClienteCodProdottoNomeProdottoMarcaPrezzoQuantita
ProdCatProdCat
CodProdottoCategoriaCodProdottoCategoria
**
** **
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Terza forma normale
Non ci sono attributi non-chiave che dipendono transitivamente dalla chiave
Ossia dipendenti da campi non-chiave
ClienteCliente
CodFiscaleNomeCognomeIndirizzo
CodFiscaleNomeCognomeIndirizzo
**
AcquistoAcquisto
NumCarrelloCodProdottoQuantita
NumCarrelloCodProdottoQuantita
ProdCatProdCat
CodProdottoCategoriaCodProdottoCategoria
CarrelloCarrello
NumCarrelloDataCodFiscaleNomeCognomeIndirizzo
NumCarrelloDataCodFiscaleNomeCognomeIndirizzoProdottoProdotto
CodProdottoNomeMarcaPrezzo
CodProdottoNomeMarcaPrezzo **
** **
AcquistoAcquisto
NumCarrelloCodProdottoQuantita
NumCarrelloCodProdottoQuantita
ProdCatProdCat
CodProdottoCategoriaCodProdottoCategoria
CarrelloCarrello
NumCarrelloDataCodFiscale
NumCarrelloDataCodFiscale
ProdottoProdotto
CodProdottoNomeMarcaPrezzo
CodProdottoNomeMarcaPrezzo
**
** **
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Base teorica per i linguaggi di interrogazione delle basi di dati relazionali
Operano su intere tabelle considerate come insiemi, piuttosto che record per record
Prendono in input tabelle
Generano in output nuove tabelle
Unione, intersezione, differenza (op. insiemistici, applicabili a relazioni definite sugli stessi attributi)
Selezione, proiezione (un solo operando)
Join, prodotto cartesiano (più operandi)
Operatori relazionali
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Operatori insiemistici
LaureatiLaureati
MatricolaMatricola NomeNome EtàEtà
72747274 RossiRossi 4242
74327432 NeriNeri 5454
98249824 VerdiVerdi 4545
QuadriQuadri
MatricolaMatricola NomeNome EtàEtà
92979297 NeriNeri 3333
74327432 NeriNeri 5454
98249824 VerdiVerdi 4545
RepartiReparti
RepartoReparto CapoCapo
AA MoriMori
BB BruniBruni
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Unione
LaureatiLaureati
MatricolaMatricola NomeNome EtàEtà
72747274 RossiRossi 4242
74327432 NeriNeri 5454
98249824 VerdiVerdi 4545
QuadriQuadri
MatricolaMatricola NomeNome EtàEtà
92979297 NeriNeri 3333
74327432 NeriNeri 5454
98249824 VerdiVerdi 4545
Laureati U QuadriLaureati U Quadri
MatricolaMatricola NomeNome EtàEtà
72747274 RossiRossi 4242
74327432 NeriNeri 5454
98249824 VerdiVerdi 4545
92979297 NeriNeri 3333
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Intersezione
LaureatiLaureati
MatricolaMatricola NomeNome EtàEtà
72747274 RossiRossi 4242
74327432 NeriNeri 5454
98249824 VerdiVerdi 4545
QuadriQuadri
MatricolaMatricola NomeNome EtàEtà
92979297 NeriNeri 3333
74327432 NeriNeri 5454
98249824 VerdiVerdi 4545
Laureati ∩ QuadriLaureati ∩ Quadri
MatricolaMatricola NomeNome EtàEtà
74327432 NeriNeri 5454
98249824 VerdiVerdi 4545
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Differenza
LaureatiLaureati
MatricolaMatricola NomeNome EtàEtà
72747274 RossiRossi 4242
74327432 NeriNeri 5454
98249824 VerdiVerdi 4545
QuadriQuadri
MatricolaMatricola NomeNome EtàEtà
92979297 NeriNeri 3333
74327432 NeriNeri 5454
98249824 VerdiVerdi 4545
Laureati - QuadriLaureati - Quadri
MatricolaMatricola NomeNome EtàEtà
72747274 RossiRossi 4242
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Selezione e proiezione
Selezione
Proiezione
Applicata ad un'unica relazione
Sottoinsieme orizzontale delle righe
Selezionate quelle che soddisfanouna condizione sugli attributi
Applicata ad un'unica relazione
Sottoinsieme orizzontale delle righe
Selezionate quelle che soddisfanouna condizione sugli attributi
Applicata ad un'unica relazione
Sottoinsieme verticale degli attributi
Rimosse inoltre eventualirighe duplicate
Applicata ad un'unica relazione
Sottoinsieme verticale degli attributi
Rimosse inoltre eventualirighe duplicate
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Selezione
ImpiegatiImpiegati
MatricolaMatricola NomeNome FilialeFiliale
73097309 RossiRossi RomaRoma
59985998 NeriNeri MilanoMilano
95539553 VerdiVerdi MilanoMilano
StipendioStipendio
5555
6464
4444
56985698 NeriNeri NapoliNapoli 6464
SEL Stipendio > 50 (Impiegati)SEL Stipendio > 50 (Impiegati)
MatricolaMatricola NomeNome FilialeFiliale
73097309 RossiRossi RomaRoma
59985998 NeriNeri MilanoMilano
StipendioStipendio
5555
6464
56985698 NeriNeri NapoliNapoli 6464
SEL Stipendio>50 AND Filiale='Milano' (Impiegati)SEL Stipendio>50 AND Filiale='Milano' (Impiegati)
MatricolaMatricola NomeNome FilialeFiliale
59985998 NeriNeri MilanoMilanoStipendioStipendio
6464
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Proiezione
ImpiegatiImpiegati
MatricolaMatricola NomeNome FilialeFiliale
73097309 RossiRossi RomaRoma
59985998 NeriNeri MilanoMilano
95539553 VerdiVerdi MilanoMilano
StipendioStipendio
5555
6464
4444
56985698 NeriNeri NapoliNapoli 6464
PROJ Matricola, Nome (Impiegati)PROJ Matricola, Nome (Impiegati)
MatricolaMatricola NomeNome
73097309 RossiRossi
59985998 NeriNeri
95539553 VerdiVerdi
56985698 NeriNeri
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Join
ImpiegatiImpiegati
NomeNome RepartoReparto
RossiRossi AA
NeriNeri BB
BianchiBianchi BB
RepartiReparti
RepartoReparto CapoCapo
AA MoriMori
BB BruniBruni
Impiegati JOIN RepartiImpiegati JOIN Reparti
NomeNome RepartoReparto
RossiRossi AA
NeriNeri BB
BianchiBianchi BB
CapoCapo
MoriMori
BruniBruni
BruniBruni
ImpiegatiImpiegati
NomeNome RepartoReparto
RossiRossi AA
NeriNeri BB
BianchiBianchi BB
RepartiReparti
RepartoReparto CapoCapo
BB MoriMori
BB BruniBruni
Impiegati JOIN RepartiImpiegati JOIN Reparti
NomeNome RepartoReparto
RossiRossi AA
NeriNeri BB
NeriNeri BB
CapoCapo
ChiariChiari
MoriMori
BruniBruni
AA ChiariChiari
BianchiBianchi BB
BianchiBianchi BBMoriMori
BruniBruni
Due relazioni con attributo comune
Congiunte le righe delle due relazioni,quando hanno lo stesso valore per
l'attributo comune
Due relazioni con attributo comune
Congiunte le righe delle due relazioni,quando hanno lo stesso valore per
l'attributo comune
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Prodotto cartesiano
ImpiegatiImpiegati
NomeNome RepartoReparto
RossiRossi AA
NeriNeri BB
BianchiBianchi BB
RepartiReparti
CodiceCodice CapoCapo
AA MoriMori
BB BruniBruni
Impiegati × RepartiImpiegati × Reparti
NomeNome RepartoReparto
RossiRossi AA
RossiRossi AA
NeriNeri BB
NeriNeri BB
BianchiBianchi BB
BianchiBianchi BB
CodiceCodice CapoCapo
AA MoriMori
BB BruniBruni
AA MoriMori
BB BruniBruni
AA MoriMori
BB BruniBruni
Join senza uso di attributi in comune
Risultato con numero di n-uple pari alprodotto delle cardinalità degli operandi
(le n-uple sono tutte combinabili)
Join senza uso di attributi in comune
Risultato con numero di n-uple pari alprodotto delle cardinalità degli operandi
(le n-uple sono tutte combinabili)
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Proiezione + selezione
ImpiegatiImpiegati
MatricolaMatricola NomeNome FilialeFiliale
73097309 RossiRossi RomaRoma
59985998 NeriNeri MilanoMilano
95539553 VerdiVerdi MilanoMilano
StipendioStipendio
5555
6464
4444
56985698 NeriNeri NapoliNapoli 6464
PROJ matricola, Nome (SEL Stipendio > 50 (Impiegati))PROJ matricola, Nome (SEL Stipendio > 50 (Impiegati))
MatricolaMatricola NomeNome
73097309 RossiRossi
59985998 NeriNeri
56985698 NeriNeri
Raffinare la ricerca di informazionida una singola relazione
Raffinare la ricerca di informazionida una singola relazione
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Join + selezione
ImpiegatiImpiegati
NomeNome RepartoReparto
RossiRossi AA
NeriNeri BB
BianchiBianchi BB
RepartiReparti
RepartoReparto CapoCapo
AA MoriMori
BB BruniBruni
SEL Capo = Bruni (Impiegati JOIN Reparti)SEL Capo = Bruni (Impiegati JOIN Reparti)
NomeNome RepartoReparto
NeriNeri BB
BianchiBianchi BB
CapoCapo
BruniBruni
BruniBruni
Raffinare la ricerca di informazionida più relazioni
Raffinare la ricerca di informazionida più relazioni
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
Join + proiezione
ImpiegatiImpiegati
NomeNome RepartoReparto
RossiRossi AA
NeriNeri BB
BianchiBianchi BB
RepartiReparti
PROJ Nome, Capo (Impiegati JOIN Reparti)PROJ Nome, Capo (Impiegati JOIN Reparti)
NomeNome
RossiRossi
NeriNeri
NeriNeri
CapoCapo
ChiariChiari
MoriMori
BruniBruni
BianchiBianchi
BianchiBianchiMoriMori
BruniBruni
RepartoReparto
BB
BB
AA
CapoCapo
MoriMori
BruniBruni
ChiariChiari
Raffinare la ricerca di informazionida più relazioni
Raffinare la ricerca di informazionida più relazioni
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
SQL: riferimento per manipolazione e interrogazione di basi di dati relazionali
Deriva da una prima proposta di linguaggio di Ibm chiamato Sequel (1974)
Prime implementazioni di Ibm e Oracle (1981)
Da 1983 “standard di fatto”
Evoluzione corrispondente ad aggiornamenti delle specifiche (1986, 1989, 1992, 1999...)
Structured Query Language
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
create table Table ( Attribute Domain [Constraints], Attribute Domain [Constraints] … [OtherConstraints])
select Attribute, Attribute … from Table, Table … [where Conditions]
Create, select
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
insert into Table [(Attributes)] values(Values)
insert into Table [(Attributes)] select …
update Table set Attribute = <Expression | select … | null | default> [where Condition]
delete from Table [where Condition]
Insert, update, delete
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
create table Employee ( Id character(6) primary key, Name character(20) not null, Surname character(20) not null, Location character(15), Salary numeric(9) default 0, City character(15), foreign key(Location) references Department(DepName), unique (Surname, Name))
Es. Tabella impiegati
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
create table Person ( Name character(20) primary key, Age numeric(3), Income numeric(9));create table Paternity ( Father character(20), Child character(20) unique);create table Maternity ( Mother character(20), Child character(20) unique);
Es. Tabelle parentele
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
-- Tell me name and income of people less than 30 yo
select Name, Income from Person where Age < 30
-- Tell me everything of people less than 30 yo
select * from Person where Age < 30
-- Fathers of people earning more than 50
select Paternity.Father from Person join Paternity on Paternity.Child = Person.Name where Person.Income > 50
Es. Ricerche semplici
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
-- Tell me name, income and fathers' age of people earning more than their father
select C.Name, C.Income, F.Age from Person C join Paternity P on C.Name = P.Child join Person F on F.Name = P.Father where C.Income > F.Income;
-- Tell me the name of each person's mother and father
select Paternity.Child, Father, Mother from Paternity join Maternity on Paternity.Child = Maternity.Child
Es. Ricerche complesse
M.
To
mai
uo
lo –
Fo
nd
amen
ti d
i in
form
atic
aM
. T
om
aiu
olo
– F
on
dam
enti
di
info
rmat
ica
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
Dip
. In
geg
ner
ia d
ell'i
nfo
rmaz
ion
e –
Un
iPR
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
htt
p:/
/ww
w.c
e.u
nip
r.it
/peo
ple
/to
mam
ic/
insert into Persons values('Mario', 25, 52);
insert into Persons(Name, Age) values('Pino', 25);
delete from Persons where Age < 18;
update Persons set Income = 45 where Name = 'Piero';
update Persons set Income = Income * 1.1 where Age < 30;
Es. Manipolazione dati