Basi di dati - dia.uniroma3.itatzeni/didattica/BDN/20172018/BD-03-2017... · 16/10/2017 Atzeni...
Transcript of Basi di dati - dia.uniroma3.itatzeni/didattica/BDN/20172018/BD-03-2017... · 16/10/2017 Atzeni...
Basi di dati
Algebra relazionaleFigure ed esempi
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
1
LaureatiMatricola
74329824
Età
5445
Nome
NeriVerdi
7274 42Rossi
SpecialistiMatricola
74329824
9297Età
5445
33Nome
NeriVerdi
Neri
Laureati È Specialisti
Matricola EtàNome
7432 54Neri9824 45Verdi9297 33Neri
7274 42Rossi7432 54Neri9824 45Verdi
7274 42Rossi7432 54Neri9824 45Verdi9297 33Neri
7432 54Neri9824 45Verdi9297 33Neri
7274 42Rossi
Unione
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
2
LaureatiMatricola
74329824
Età
5445
Nome
NeriVerdi
7274 42Rossi
SpecialistiMatricola
74329824
9297Età
5445
33Nome
NeriVerdi
Neri
Laureati Ç Specialisti
Matricola EtàNome7432 54Neri9824 45Verdi
7432 54Neri9824 45Verdi
7432 54Neri9824 45Verdi
7432 54Neri9824 45Verdi
Intersezione
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
3
LaureatiMatricola EtàNome
7432 54Neri9824 45Verdi
7274 42Rossi
SpecialistiMatricola
74329824
9297Età
5445
33Nome
NeriVerdi
Neri
Laureati – Specialisti
Matricola EtàNome
7432 54Neri9824 45Verdi
7274 42Rossi7432 54Neri9824 45Verdi
7274 42Rossi
Differenza
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
4
Paternità Padre Figlio
Adamo CainoAbramo Isacco
Adamo Abele
Maternità Madre Figlio
Eva SetSara Isacco
Eva Abele
Paternità È Maternità??
Un'unione sensata ma impossibile
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
5
PaternitàPadre Figlio
Adamo CainoAbramo Isacco
Adamo Abele
RENGenitore ¬ Padre (Paternità) Padre Figlio
Adamo CainoAbramo Isacco
Adamo AbeleGenitore
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
6
Paternità Padre Figlio
Adamo CainoAbramo Isacco
Adamo Abele
Maternità Madre Figlio
Eva SetSara Isacco
Eva Abele
RENGenitore ¬ Padre (Paternità) Genitore Figlio
Adamo CainoAbramo Isacco
Adamo Abele
RENGenitore ¬ Madre (Maternità) Genitore Figlio
Eva SetSara Isacco
Eva Abele
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
7
RENGenitore ¬ Padre (Paternità)
RENGenitore ¬ Madre (Maternità)
Genitore Figlio
Adamo CainoAbramo Isacco
Adamo Abele
Genitore Figlio
Eva SetSara Isacco
Eva Abele
Genitore Figlio
Adamo CainoAbramo Isacco
Adamo Abele
Eva SetSara Isacco
Eva Abele
RENGenitore ¬ Padre (Paternità)
RENGenitore ¬ Madre (Maternità) È
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
8
REN Sede, Retribuzione ¬ Ufficio, Stipendio (Impiegati)
REN Sede, Retribuzione ¬ Fabbrica, Salario (Operai) È
Impiegati Cognome
NeriRossi
Ufficio
MilanoRoma
Stipendio
6455
Operai Cognome
VerdiBruni
Fabbrica
LatinaMonza
Salario
5545
Cognome RetribuzioneSede
NeriRossi
6455
MilanoRoma
VerdiBruni
LatinaMonza
5545
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
9
Selezione
• "seleziona" da una relazione le ennuple che soddisfano una condizione
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
10
Cognome Filiale StipendioMatricola
Neri Milano 645998Rossi Roma 557309
Neri Napoli 645698Milano Milano 449553
Impiegati
Milano Milano 449553
• impiegati che guadagnano più di 50
SELStipendio > 50 (Impiegati)
Neri Napoli 645698
SELStipendio > 50 (Impiegati)
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
11
Impiegati Cognome Filiale StipendioMatricola
Neri Milano 645998Rossi Roma 557309
Neri Napoli 645698Milano Milano 449553
• impiegati che guadagnano più di 50 e lavorano a Milano
SELStipendio > 50 AND Filiale = 'Milano' (Impiegati)
Rossi Roma 557309
Neri Napoli 645698Milano Milano 449553
Neri Milano 645998
SELStipendio > 50 AND Filiale = 'Milano' (Impiegati)
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
12
Impiegati Cognome Filiale StipendioMatricola
Neri Milano 645998Rossi Roma 557309
Neri Napoli 645698Milano Milano 449553
• impiegati che hanno lo stesso nome della filiale presso cui lavorano
SEL Cognome = Filiale(Impiegati)
Neri Milano 645998Rossi Roma 557309
Neri Napoli 645698
Milano Milano 449553
SEL Cognome = Filiale(Impiegati)
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
13
Proiezione
• decompone "verticalmente":• "tutte" le ennuple, alcuni attributi
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
14
Cognome Filiale StipendioMatricola
Neri Milano 645998Neri Napoli 557309
Rossi Roma 645698Rossi Roma 449553
• matricola e cognome di tutti gli impiegati
PROJ Matricola, Cognome (Impiegati)
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
15
Cognome Filiale StipendioMatricola
Neri Milano 645998Neri Napoli 557309
Rossi Roma 645698Rossi Roma 449553
• cognome e filiale di tutti gli impiegati
PROJ Cognome, Filiale (Impiegati)
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
16
Selezione con valori nulli
Cognome Filiale EtàMatricola
Neri Milano 455998Rossi Roma 327309
Bruni Milano NULL9553
Impiegati
SEL Età > 40 (Impiegati)
• la condizione atomica è vera solo per valori non nulli
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
17
Cognome Filiale EtàMatricola
Neri Milano 455998Bruni Milano NULL9553
Impiegati
SEL (Età > 40) OR (Età IS NULL) (Impiegati)
Rossi Roma 327309 Rossi Roma 327309 Neri Milano 455998Bruni Milano NULL9553
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
18
Aggregazione
• Il contenuto delle basi di dati viene spesso aggregato:• Il voto massimo nell'esame di basi di dati• Il voto medio per ciascun esame• Il numero di CFU conseguiti da ciascuno
studente
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
19
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
20
Matricola Voto Codice3456 30 043456 26 029283 27 01
esami
6554 26 016554 26 05
AGG NumeroEsami ¬ count(*) (esami)
• Il numero totale di esami
NumeroEsami5
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
21
Matricola Voto Codice3456 30 043456 26 029283 27 01
esami
6554 26 016554 26 05
AGG MediaGenerale ¬ avg(Voto) (esami)
6554 26 05
• Il voto medio complessivo
MediaGenerale26
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
22
Matricola Voto Codice3456 30 043456 26 029283 27 01
esami
6554 26 016554 26 05
• Il voto medio per ciascuno studente
AGG Matricola; Media ¬ avg(Voto) (esami)Matricola Media
3456 289283 276554 26
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
23
Matricola Voto Codice3456 30 043456 26 029283 27 01
esami
6554 26 016554 26 05
• Numero esami e voto medio per ciascuno studente
AGG Matricola; Media ¬ avg(Voto), NumEsami¬count(*) (esami)Matricola Media
3456 289283 276554 26
NumEsami212
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
24
• Numero esami e voto medio per ciascuno studenteAGG Matricola; Media ¬ avg(Voto), NumEsami¬count(*) (esami)
Matricola Media3456 309283 276554 26
NumEsami212
Matricola Voto Codice3456 30 043456 NULL 029283 27 01
esami
6554 26 016554 26 05
• Numero voti e voto medio per ciascuno studenteAGG Matricola; Media ¬ avg(Voto), NumVoti¬count(Voto) (esami)
Matricola Media3456 309283 276554 26
NumVoti112
Join
• il join è l'operatore più interessante dell'algebra relazionale
• permette di correlare dati in relazioni diverse
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
25
Il solito esempio(con nomi di attributi modificati in "esami")
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
26
Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
studenti
Codice Titolo Docente01 Analisi Mario02 Chimica Bruni04 Chimica Verdi
corsi
Matricola Voto Codice3456 30 043456 24 029283 28 01
esami
6554 26 01
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
27
Matricola Cognome Nome Data di nascita
3456 Rossi Maria 01/02/1978…
studenti
Codice Titolo Docente02 Chimica Bruni04 Chimica Verdi
corsi
Matricola Voto Codice3456 30 043456 24 02
esami
(studenti JOIN esami)
Cognome Nome Data di nascita3456 Rossi Maria 01/02/1978
Matricola Cognome Nome Data di nascita3456 Rossi Maria 01/02/19783456 Rossi Maria 01/02/19783456 Rossi Maria 01/02/1978
Voto3024
Codice0204
Matricola34563456
Titolo DocenteChimica BruniChimica Verdi
Codice0402
JOIN corsi
A MoriB Bruni
Reparto CapoRossi ANeri B
Bianchi B
Impiegato Reparto
Rossi A MoriNeri B Bruni
Impiegato Reparto Capo
Bianchi B Bruni
Rossi ANeri B
Bianchi B
Rossi ANeri B
Bianchi B
A MoriB BruniA MoriB BruniB BruniB Bruni
• ogni ennupla contribuisce al risultato:• join completo
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
28
Neri B MoriImpiegato Reparto Capo
Bianchi B Mori
Impiegato RepartoRossi ANeri B
Bianchi B
Reparto CapoB MoriC Bruni
AC
Un join non completo
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
29
Impiegato RepartoRossi ANeri B
Bianchi B
Reparto CapoD MoriC Bruni
Impiegato Reparto Capo
Un join vuoto
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
30
Impiegato Reparto Capo
Rossi ANeri B
Impiegato RepartoRossi ANeri B
Rossi BNeri B
A MoriB Bruni
Reparto CapoA MoriB BruniB MoriB BruniB BruniB Bruni
Rossi B Mori
Neri B MoriNeri B Bruni
Rossi B Bruni
Un join completo, con n x m ennuple
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
31
Impiegato RepartoRossi ANeri B
Bianchi B
Reparto CapoB MoriC Bruni
AC
Join, esterno
• alla lavagna
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
32
Impiegato RepartoRossi ANeri B
Bianchi B
ImpiegatiReparto Capo
B MoriC Bruni
Reparti
Neri B MoriImpiegato Reparto Capo
Bianchi B Mori
Impiegati JOINLEFT Reparti
C
Rossi A NULL
ARossi
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
33
Impiegato RepartoRossi ANeri B
Bianchi B
ImpiegatiReparto Capo
B MoriC Bruni
Reparti
Neri B MoriImpiegato Reparto Capo
Bianchi B Mori
Impiegati JOINRIGHT Reparti
A
NULL C Bruni
C Bruni
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
34
Impiegato RepartoRossi ANeri B
Bianchi B
ImpiegatiReparto Capo
B MoriC Bruni
Reparti
Neri B MoriImpiegato Reparto Capo
Bianchi B Mori
Impiegati JOINFULL Reparti
NULL C Bruni
C BruniARossi
Rossi A NULL
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
35
Join e proiezioni
Impiegato RepartoRossi ANeri B
Bianchi B
Reparto CapoB MoriC Bruni
Neri B MoriImpiegato Reparto Capo
Bianchi B Mori
Impiegato RepartoNeri B
Bianchi B
Reparto CapoB Mori
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
36
Proiezioni e join
Neri B MoriImpiegato Reparto Capo
Bianchi B BruniVerdi A Bini
Neri BImpiegato Reparto
Bianchi BVerdi A
B MoriReparto Capo
B BruniA Bini
Verdi A Bini
Neri B MoriImpiegato Reparto Capo
Neri B BruniBianchi B MoriBianchi B Bruni
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
37
Rossi ANeri B
Bianchi B
Impiegato RepartoImpiegati
A MoriB BruniB BruniB Bruni
Codice CapoReparti
Impiegati JOIN Reparti
Impiegato Reparto CapoCodiceRossi A MoriAAARossi A B BruniNeri B MoriANeri B B Bruni
Bianchi B MoriABianchi B B Bruni
Prodotto cartesiano
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
38
Rossi ANeri B
Bianchi B
Impiegato RepartoImpiegati
A MoriB BruniB BruniB Bruni
Codice CapoReparti
Impiegati JOINReparto=Codice Reparti Impiegato Reparto CapoCodice
Rossi A MoriAAARossi A B BruniNeri B MoriANeri B B Bruni
Bianchi B MoriA
Rossi A MoriAAANeri B B Bruni
Bianchi B B Bruni
Equi-join
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
39
Viste, esempio
• una vista:Supervisione =
PROJ Impiegato, Capo (Afferenza JOIN Direzione)
A MoriB Bruni
Reparto CapoRossi ANeri B
Bianchi B
Impiegato RepartoAfferenza Direzione
16/10/2017 Atzeni - Basi di dati - Algebra relazionale, figure ed esempi
40