Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Algebra relazionale
Trasparenze tratte da
Basi di dati I,
Atzeni et al. Basi di dati McGraw-Hill
Linguaggi per basi di dati
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 2
Basi di dati, Capitolo 3
Linguaggi di interrogazione
per basi di dati relazionali
• Procedurali
• specificano le modalità di generazione
del risultato ("come")
• Dichiarativi
• specificano le proprietà del risultato
("che cosa")
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 3
Basi di dati, Capitolo 3
Linguaggi di interrogazione
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 5
Basi di dati, Capitolo 3
Algebra relazionale
• Insieme di operatori
• su relazioni
• che producono relazioni
• e possono essere composti
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 6
Basi di dati, Capitolo 3
Operatori dell'algebra relazionale
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 7
Basi di dati, Capitolo 3
Operatori dell'algebra relazionale
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 8
Basi di dati, Capitolo 3
Unione, intersezione, differenza
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 9
Basi di dati, Capitolo 3
Operatori insiemistici
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 10
Basi di dati, Capitolo 3
Unione: tutte le n-ple dell’una e dell’altra
Laureati Quadri
Matricola Nome Età Matricola Nome Età
7274 Rossi 42 9297 Neri 33
7432 Neri 54 7432 Neri 54
9824 Verdi 45 9824 Verdi 45
Laureati Quadri
Matricola Nome Età
7274 Rossi 42
7432 Neri 54
9824 Verdi 45
9297 Neri 33
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 11
Basi di dati, Capitolo 3
Unione
r1 r2= r2 r1
r1 (r2 r3)= (r1 r2) r3
r1 r2
r1(X) r2(X)
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 12
Basi di dati, Capitolo 3
Intersezione: le n-ple comuni
Laureati Quadri
Matricola Nome Età Matricola Nome Età
7274 Rossi 42 9297 Neri 33
7432 Neri 54 7432 Neri 54
9824 Verdi 45 9824 Verdi 45
Laureati Quadri
Matricola Nome Età
7432 Neri 54
9824 Verdi 45
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 13
Basi di dati, Capitolo 3
Intersezione
L’intersezione di due relazioni r1(X) e r2(X)
definite su un insieme di attributi X è la relazione
r(X)= r1(X) r2(X) contenente le tuple che appartengono
sia a r1(X) che a r2(X)
L’intersezione e’ commutativa ed associativa
r1 r2= r2 r1
r1 (r2 r3)= (r1 r2) r3
r1(X) r2(X)
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 14
Basi di dati, Capitolo 3
Differenza: le n-ple della prima da cui
sono tolte le n-ple della seconda
Laureati Quadri
Matricola Nome Età Matricola Nome Età
7274 Rossi 42 9297 Neri 33
7432 Neri 54 7432 Neri 54
9824 Verdi 45 9824 Verdi 45
Laureati – Quadri
Matricola Nome Età
7274 Rossi 42
7432 Neri 54
9824 Verdi 45
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 15
Basi di dati, Capitolo 3
Una unione sensata ma impossibile, perche’
le relazioni sono su attributi diversi
Paternità Maternità
Padre Figlio Madre Figlio
Adamo Abele Eva Abele
Adamo Caino Eva Set
Abramo Isacco Sara Isacco
Paternità Maternità
??
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 16
Basi di dati, Capitolo 3
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 17
Basi di dati, Capitolo 3
Differenza
R-S S-R
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 18
Basi di dati, Capitolo 3
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 19
Basi di dati, Capitolo 3
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 20
Basi di dati, Capitolo 3
Differenza
La differenza di due relazioni r1(X) e r2(X) definite
su un insieme di attributi X è la relazione
r(X)= r1(X) - r2(X) contenente le tuple che
appartengono a r1(X) ma non a r2(X)
r1 - r2 r2 - r1
r1 r2 r1 r2
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 22
Basi di dati, Capitolo 3
Ridenominazione
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 23
Basi di dati, Capitolo 3
Paternità
Padre Figlio
Adamo Abele
Adamo Caino
Abramo Isacco
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 24
Basi di dati, Capitolo 3
Paternità RENGenitore Padre (Paternità)
Padre Figlio Genitore Figlio
Adamo Abele Adamo Abele
Adamo Caino Adamo Caino
Abramo Isacco Abramo Isacco
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 26
Basi di dati, Capitolo 3
Impiegati Cognome Ufficio Stipendio
Rossi Roma 55
Neri Milano 64
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 28
Basi di dati, Capitolo 3
2. Selezione
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 29
Basi di dati, Capitolo 3
Selezione
• operatore monadico
• permette di selezionare un sottoinsieme
delle ennuple
• produce un risultato che
• ha lo stesso schema dell'operando
• contiene un sottoinsieme delle ennuple
dell'operando,
• quelle che soddisfano una condizione
espressa dall’ operatore
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 30
Basi di dati, Capitolo 3
Impiegati
Matricola Cognome Filiale Stipendio
7309 Rossi Roma 55
5998 Neri Milano 64
9553 Milano Milano 44
5698 Neri Napoli 64
• impiegati che
• guadagnano più di 50
• guadagnano più di 50 e lavorano a Milano
• hanno un cognome uguale al nome della filiale
presso cui lavorano
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 31
Basi di dati, Capitolo 3
Selezione: sintassi
• sintassi
SEL Condizione (Operando)
• Condizione: espressione booleana (come
quelle dei vincoli di ennupla)
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 32
Basi di dati, Capitolo 3
Sintassi della condizione (anche detta
formula proposizionale)
• Data una relazione r(X), e’ una formula
ottenuta combinando con i connettivi OR, AND,
e NOT condizioni atomiche del tipo
• A CONFR B oppure A CONFR c, dove
• 1. CONFR e’ un operatore di confronto (=, >,
ecc.)
• 2. A e B sono attributi in X sui cui valori
CONFR abbia senso
• 3. c e’ una costante per cui il confronto CONFR
sia definito
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 33
Basi di dati, Capitolo 3
Esempi
Impiegati
Matricola Cognome Filiale Stipendio
7309 Rossi Roma 55
5998 Neri Milano 64
9553 Milano Milano 44
5698 Neri Napoli 64
• impiegati che
• guadagnano più di 50
• STIPENDIO > 50
• guadagnano più di 50 e lavorano a Milano
• STIPENDIO > 50 AND FILIALE = ‘Milano’
• hanno un cognome uguale al nome della filiale
presso cui lavorano
• COGNOME = FILIALE
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 34
Basi di dati, Capitolo 3
Altri esempi
• ETA’ > 20
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 35
Basi di dati, Capitolo 3
Selezione: semantica
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 36
Basi di dati, Capitolo 3
• impiegati che guadagnano più di 50
Impiegati
Matricola Cognome Filiale Stipendio
7309 Rossi Roma 55
5998 Neri Milano 64
9553
5698 Milano
Neri Milano
Napoli 44
64
5698 Neri Napoli 64
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 37
Basi di dati, Capitolo 3
• impiegati che guadagnano più di 50
e lavorano a Milano
Impiegati
Matricola Cognome Filiale Stipendio
7309
5998 Rossi
Neri Milano
Roma 55
64
5998 Neri Milano 64
9553 Milano Milano 44
5698 Neri Napoli 64
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 38
Basi di dati, Capitolo 3
• impiegati che hanno il cognome uguale al
nome della filiale presso cui lavorano
Impiegati
Matricola Cognome Filiale Stipendio
7309
9553 Milano
Rossi Milano
Roma 55
44
5998 Neri Milano 64
9553 Milano Milano 44
5698 Neri Napoli 64
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 39
Basi di dati, Capitolo 3
Selezione con valori nulli
Impiegati
Matricola Cognome Filiale Età
7309 Rossi Roma 32
5998 Neri Milano 45
9553 Bruni Milano NULL
• Ma anche
SEL Età>30 Età30 (Impiegati)
Impiegati
• Perché? Perché anche le condizioni
atomiche vengono valutate
separatamente!
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 42
Basi di dati, Capitolo 3
SEL Età > 40 (Impiegati)
• la condizione atomica è vera solo
per valori non nulli
• per riferirsi ai valori nulli esistono
forme apposite di condizioni:
IS NULL
IS NOT NULL
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 43
Basi di dati, Capitolo 3
Valutazione della selezione
• A questo punto:
SEL Età>30 (Persone) SEL Età30 (Persone)
SEL Età IS NULL (Persone)
=
SEL Età>30 Età30 Età IS NULL (Persone)
=
Persone
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 44
Basi di dati, Capitolo 3
Trovare gli impiegati con piu’ di 40 anni
o di cui non si sa l’eta’
Impiegati
Matricola Cognome Filiale Età
7309
5998 Rossi
Neri Milano
Roma 32
45
5998
9553 Bruni
Neri Milano 45
NULL
9553 Bruni Milano NULL
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 45
Basi di dati, Capitolo 3
Selezione ( - sigma)
• operatore monadico
• produce un risultato che
• ha lo stesso schema dell'operando
• contiene un sottoinsieme delle ennuple dell’
operando (quelle che soddisfano la
condizione F)
• Condizione: espressione booleana (come
quelle dei vincoli di ennupla)
• Indicato con F(r)o SELF(r)
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 46
Basi di dati, Capitolo 3
Selezione ()
SEL Condizione (r)
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 48
Basi di dati, Capitolo 3
Impiegati
Matricola Cognome Filiale Stipendio
7309 Neri Napoli 55
5998 Neri Milano 64
9553 Rossi Roma 44
5698 Rossi Roma 64
• operatori "ortogonali"
• selezione:
• decomposizione orizzontale
• proiezione:
• decomposizione verticale
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 50
Basi di dati, Capitolo 3
selezione
proiezione
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 51
Basi di dati, Capitolo 3
Proiezione
• operatore monadico
• produce un risultato che
• ha una parte degli attributi
dell'operando
• contiene ennuple a cui contribuiscono
tutte le ennuple dell'operando
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 52
Basi di dati, Capitolo 3
Proiezione, sintassi e semantica
• sintassi
PROJ ListaAttributi (Operando)
• semantica
• il risultato contiene le ennuple
dell'operando ristrette ai soli attributi
nella ListaAttributi
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 53
Basi di dati, Capitolo 3
• Trovare matricola e cognome di tutti gli
impiegati
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 54
Basi di dati, Capitolo 3
• Trovare cognome e filiale di tutti gli
impiegati
Attenzione!
Dobbiamo
Matricola Cognome Filiale Stipendio
7309 Neri Napoli 55eliminare le
5998 Neri Milano ennuple
64 ripetute
9553 Rossi Roma Una
44 relazione e’
5698 Rossi Roma un
64insieme, e un
insieme non ha
elementi uguali
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 56
Basi di dati, Capitolo 3
Cardinalità delle proiezioni ()
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 58
Basi di dati, Capitolo 3
Cardinalità delle proiezioni
• Vale la proprieta’
• se X è una superchiave di R, allora
PROJX(R) contiene esattamente tante
ennuple quante R
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 59
Basi di dati, Capitolo 3
Selezione e proiezione
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 60
Basi di dati, Capitolo 3
Selezione e proiezione
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 61
Basi di dati, Capitolo 3
• matricola e cognome degli impiegati che
guadagnano più di 50
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 62
Basi di dati, Capitolo 3
• Combinando selezione e proiezione,
possiamo estrarre informazioni da una
relazione
• non possiamo però correlare, mettere
insieme, informazioni presenti in
relazioni diverse
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 63
Basi di dati, Capitolo 3
Join
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 64
Basi di dati, Capitolo 3
Join
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 65
Basi di dati, Capitolo 3
Prove scritte in un concorso pubblico
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 66
Basi di dati, Capitolo 3
Dati disponibili
1 25 1 Mario Rossi
2 13 2 Nicola Russo
3 27 3 Mario Bianchi
4 28 4 Remo Neri
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 67
Basi di dati, Capitolo 3
Schema corrispondente e Join delle due rel.
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 69
Basi di dati, Capitolo 3
Join naturale, sintassi e semantica
• R1(X1), R2(X2)
• R1 JOIN R2 è una relazione su X1X2
•
{t su X1X2 | esistono t1R1 e t2R2
con t[X1] =t1 e t[X2] =t2 }
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 73
Basi di dati, Capitolo 3
Un join vuoto
Impiegato Reparto Reparto Capo
Rossi A D Mori
Neri B C Bruni
Bianchi B
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 74
Basi di dati, Capitolo 3
Un join completo, con n x m ennuple
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 76
Basi di dati, Capitolo 3
Cardinalità del join – proprieta’ - 2
• R1(A,B) , R2 (B,C)
• se il join coinvolge una chiave di R2,
allora il numero di ennuple è
compreso fra zero e |R1|
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 77
Basi di dati, Capitolo 3
Cardinalità del join - proprieta’ - 3
• R1(A,B) , R2 (B,C)
• se B è chiave in R2 ed esiste vincolo di
integrità referenziale fra B (in R1) e R2:
|R1 JOIN R2| = |R1|
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 78
Basi di dati, Capitolo 3
Proprietà del Join
• Il join è commutativo e associativo
r1 r2 = r 2 r1
r1 (r2 r3) = (r1 r2) r3
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 79
Basi di dati, Capitolo 3
Join, un problema
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 81
Basi di dati, Capitolo 3
Join esterno
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 82
Basi di dati, Capitolo 3
Esempio Join esterno
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 83
Basi di dati, Capitolo 3
Impiegati Reparti
Impiegato Reparto Reparto Capo
Rossi A B Mori
Neri B C Bruni
Bianchi B
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 84
Basi di dati, Capitolo 3
Impiegati Reparti
Impiegato Reparto Reparto Capo
Rossi A B Mori
Neri B C Bruni
Bianchi B
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 85
Basi di dati, Capitolo 3
Impiegati Reparti
Impiegato Reparto Reparto Capo
Rossi A B Mori
Neri B C Bruni
Bianchi B
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 87
Basi di dati, Capitolo 3
Impiegati Reparti
Impiegato Reparto Codice Capo
Rossi A A Mori
Neri B B Bruni
Bianchi B
Impiegati JOIN Reparti
Impiegato Reparto Codice Capo
Rossi A A Mori
Rossi A B Bruni
Neri B A Mori
Neri B B Bruni
Bianchi B A Mori
Bianchi B B Bruni
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 88
Basi di dati, Capitolo 3
• Il prodotto cartesiano, in pratica, ha
senso solo se seguito da selezione:
SELCondizione (R1 JOIN R2)
• L'operazione viene chiamata theta-join e
indicata con
R1 JOINCondizione R2
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 89
Basi di dati, Capitolo 3
Perché "theta-join"?
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 90
Basi di dati, Capitolo 3
Impiegati Reparti
Impiegato Reparto Codice Capo
Rossi A A Mori
Neri B B Bruni
Bianchi B
Impiegati JOINReparto=Codice Reparti
Impiegato Reparto Codice Capo
Rossi A A Mori
Rossi
Neri A
B B Bruni
Neri
Bianchi B A
B Mori
Bruni
Neri B B Bruni
Bianchi B A Mori
Bianchi B B Bruni
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 91
Basi di dati, Capitolo 3
Impiegati Reparti
Impiegato Reparto Reparto Capo
Rossi A A Mori
Neri B B Bruni
Bianchi B
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 92
Basi di dati, Capitolo 3
ESEMPIO
C o d ic e D a ta A g e n te A rt P ro v N u m e ro
343535 1 2 /0 5 /9 9 567 44 FI B04546 INFRAZIONI
343344 1 4 /0 5 /9 9 456 22 SI 345678
342233 2 2 /0 6 /9 9 456 44 FI B04546
332112 2 7 /0 7 /9 9 456 53 PI 768930
334545 0 7 /0 8 /9 9 567 44 GR 546788 è una chiave
Prov Numero Proprietario Indirizzo
FI B04546 Paolo Rossi Via Bixio 5 Prato
SI 345678 Piero Berti Via Abete 6 Siena
AUTOVEICOLI PI 768930 Luca Bianchi Piazza Po 16 Pisa
GR 546788 Anna Verdi Viale Europa 4 Firenze
C o d ic e D a ta A g e n te A rt P ro v N u m e ro P r o p r ie t a r io I n d ir iz z o
343535 1 2 /0 5 /9 9 567 44 FI B04546 P a o lo R o s s i V ia B ix io 5 P r a t o
343344 1 4 /0 5 /9 9 456 22 SI 345678 P ie r o B e r t i V ia A b e t e 6 S ie n a
342233 2 2 /0 6 /9 9 456 44 FI B04546 P a o lo R o s s i V ia B ix io 5 P r a t o
332112 2 7 /0 7 /9 9 456 53 PI 768930 L u c a B ia n c h i P ia z z a P o 1 6 P is a
334545 0 7 /0 8 /9 9 567 44 GR 546788 A n n a V e rd i V i a l e E u r o p a 4 F ir e n z e
INFRAZIONI AUTOVEICOLI
Il join è basato su una chiave della relazione AUTOVEICOLI, quindi ogni
tupla di INFRAZIONI si combina con una sola tupla di AUTOVEICOLI
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 93
Basi di dati, Capitolo 3
Join naturale e equijoin
Impiegati Reparti
Impiegato Reparto Reparto Capo
PROJImpiegato,Reparto,Capo ( SELReparto=Codice
( Impiegati JOIN RENCodice Reparto (Reparti) ))
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 95
Basi di dati, Capitolo 3
Quanti join abbiamo studiato?
• Join naturale
• Join completi e incompleti
• Prodotto cartesiano
• THETA Join
• Equi join
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 96
Basi di dati, Capitolo 3
Join e ridenominazione
r(X) JOIN r(X)=r(X)
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 98
Basi di dati, Capitolo 3
Data la relazione Genitori (genitore, figlio)
creare la relazione Nonni (nonno, nipote)
genitori RENnonno, genitore <-- genitore, figlio (genitori)
Genitore figlio
Nonno genitore
Matricola
Impiegato Nome
Eta’
Stipendio
Capo di
Capo
Impiegato
Anche i capi
Sotto- Capo di
insieme di Sono impiegati!
Capo
SELStipendio>40(Impiegati)
SELStipendio>40(Impiegati)
SELStipendio>40(Impiegati)
SELStipendio>40(Impiegati)
(SELStipendio>40(Impiegati))
PROJCapo
(SELStipendio>40(Impiegati)))
PROJCapo (
(SELStipendio>40(Impiegati)))
CAPO
5698
4076
8123
Scelta operatori
Algebra relazionale
Metodologia
Interrogazione
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 122
Basi di dati, Capitolo 3
Metodologia
1. Individua le relazioni coinvolte nella
specifica della interrogazione,
attraverso gli attributi citati e le
condizioni
2. Individua i tipi di operazioni necessarie
3. Individua un possibile ordinamento delle
operazioni che porta ad ottenere il
risultato richiesto
PROJCapo(Supervisione
JOIN Impiegato=Matricola (SELStipendio>40(Impiegati))))
PROJNome,Stipendio (
PROJCapo(Supervisione
JOIN Impiegato=Matricola (SELStipendio>40(Impiegati))))
Impiegato
Capo di
Capo
RENMatrC,NomeC,StipC,EtàC
Matr,Nome,Stip,Età(Impiegati)
RENMatrC,NomeC,StipC,EtàC
Matr,Nome,Stip,Età(Impiegati)
JOIN MatrC=Capo
RENMatrC,NomeC,StipC,EtàC
Matr,Nome,Stip,Età(Impiegati)
JOIN MatrC=Capo
PROJCapo (Supervisione)
(SELStipendio 40(Impiegati)))
PROJCapo (Supervisione)
PROJCapo (Supervisione
JOIN Impiegato=Matricola
(SELStipendio 40(Impiegati)))
PROJCapo (Supervisione) –
PROJCapo (Supervisione
JOIN Impiegato=Matricola
(SELStipendio 40(Impiegati)))
RelA RelA
RelC
RelB RelB
Join Proiezione
RelA
RelC RelC
RelB
Proiezioni Join
• R 1(X1), R 2(X2)
• R(X), X = X1 X2
• R1 (Impiegato, Reparto,Capodiimpiegato)
• Decomposto in
• R1 (Impiegato, Reparto)
• R2(Reparto, Capodiimpiegato)
• REPARTO non e’ chiave di nessuna delle
due relazioni
• Si perdono informazioni, nel senso che si
perde il legame tra impiegato e capo
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 156
Basi di dati, Capitolo 3
Join e Proiezioni: caso 2 – esempio 2
Impiegato Reparto CapodiImp
Neri B Mori
Bianchi B Bruni
Verdi A Bini
Impiegato Reparto Reparto CapodiImp
Neri B B Mori
Bianchi B B Bruni
Verdi A A Bini
Impiegato Reparto CapodiImp
Neri B Mori
Bianchi B Bruni
Neri B Bruni
Bianchi B Mori
9/10/2001
Verdi A
Atzeni-Ceri-Paraboschi-Torlone,
Bini 157
Basi di dati, Capitolo 3
Viste (relazioni derivate)
BD
9/10/2001 Atzeni-Ceri-Paraboschi-Torlone, 159
Basi di dati, Capitolo 3
Viste virtuali e materializzate
SELCapo='Leoni' (Supervisione)
viene eseguita come
SELCapo='Leoni'(
PROJ Impiegato, Capo (Afferenza JOIN
Direzione))
impiegato, capo
Afferenza Direzione