Upload
loder91
View
219
Download
0
Embed Size (px)
Citation preview
7/31/2019 Informatica Modulo Algebra Relazionale
1/29
Introduzione allalgebra
relazionale
Prof. Giovanni Giuffrida
7/31/2019 Informatica Modulo Algebra Relazionale
2/29
Esempio di interrogazione
Nome Matricola Indirizzo Telefono
Mario Rossi 456 Via Roma 1 095 111
Ugo Bianchi 567 Via Etnea 154 095 222
Teo Verdi 678 Via Parma 12 095 333
Matr_Studente Corso Voto
678 Programmazione 27
456 Architettura 30
567 Programmazione 18
678 Matematica 22
678 Architettura 30
Denominazione Docente
Programmazione Ferro
Architettura Pappalardo
Matematica Lizzio
Studenti Esami
Corsi
Quali professori hanno
dato piu di 24 a Teo
Verdi ed in quali corsi?Professore CorsoProgrammazione Ferro
Architettura Pappalardo
7/31/2019 Informatica Modulo Algebra Relazionale
3/29
Definizioni
Relazione: La tabella
Attributi/Colonne: Nomi delle colonne
Tuple/Righe/Record: Righe della relazione
Query: Interrogazione
Nome Matricola Indirizzo Telefono
Mario Rossi 456 Via Roma 1 095 111
Ugo Bianchi 567 Via Etnea 154 095 222
Teo Verdi 678 Via Parma 12 095 333
7/31/2019 Informatica Modulo Algebra Relazionale
4/29
Algebra relazionale
Un linguaggio formale per eseguire interrogazionisu un insieme di relazioni
Un set di operatori che: Sono definiti sulle relazioni
Producono come risultato una relazione Gli operatori possono essere combinati per
formare espressioni (molto) complesse
Modello universale di interrogazione di schemi
relazionali Non esiste praticamente
Usato come base da tutti i linguaggi di interrogazionerelazionali
7/31/2019 Informatica Modulo Algebra Relazionale
5/29
Operatori dellalgebra relazionale (AR)
Gli operatori unari dellAR sono: Ridenominazione:
Proiezione:
Restrizione/Selezione: Gli operatori binari dellAR sono:
Unione:
Intersezione:
Differenza:
Prodotto cartesiano:
Join: F
7/31/2019 Informatica Modulo Algebra Relazionale
6/29
Ridenominazione
Simbolo:
Modifica il nome di un attributo, lascia inalterate le tuple
Nome Matricola Indirizzo Telefono
Mario Rossi 456 Via Roma 1 095 111
Ugo Bianchi 567 Via Etnea 154 095 222
Teo Verdi 678 Via Parma 12 095 333
Nome Studente(Studenti)
Studenti
Studente Matricola Indirizzo Telefono
Mario Rossi 456 Via Roma 1 095 111
Ugo Bianchi 567 Via Etnea 154 095 222
Teo Verdi 678 Via Parma 12 095 333
Studenti
7/31/2019 Informatica Modulo Algebra Relazionale
7/29
Unione, Differenza e Intersezione
Operatori insiemistici
Una relazione un insieme di tuple Quindi possiamo applicare alle relazioni gli
operatori insiemistici standard
Il risultato devessere un set omogeneodituple
Possiamo applicare gli operatori insiemisticisolo su relazioni
omogenee, cio con gli
stessi attributi Stesso numero di attributi e stesso nome degli
attributi!!
7/31/2019 Informatica Modulo Algebra Relazionale
8/29
Esempio Unione
Nome Matricola Indirizzo Telefono
Mario Rossi 456 Via Roma 1 095 111
Ugo Bianchi 567 Via Etnea 154 095 222
Teo Verdi 678 Via Parma 12 095 333
Studenti
Nome Matricola Indirizzo Telefono
Franco Bollo 756 Piazza Roma 2 091 817
Mario Rossi 456 Via Roma 1 095 111
Leo Poldo 896 Via Piave 12 0931
Ugo Bianchi 567 Via Etnea 154 095 222
Amministrativi
Nome Matricola Indirizzo Telefono
Franco Bollo 756 Piazza Roma 2 091 817
Mario Rossi 456 Via Roma 1 095 111
Leo Poldo 896 Via Piave 12 0931
Ugo Bianchi 567 Via Etnea 154 095 222
Teo Verdi 678 Via Parma 12 095 333
Studenti Amministrativi Contiene le righe che sono presenti o
nelluna o nellaltra relazione (o inentrambe)
Stessa struttura delle due relazioni di
input
Tuple duplicate vengono rimosse (le
relazioni sono insiemi!)
Gode della propriet commutativa
7/31/2019 Informatica Modulo Algebra Relazionale
9/29
Esempio Intersezione
Nome Matricola Indirizzo Telefono
Mario Rossi 456 Via Roma 1 095 111
Ugo Bianchi 567 Via Etnea 154 095 222
Teo Verdi 678 Via Parma 12 095 333
Studenti
Nome Matricola Indirizzo Telefono
Franco Bollo 756 Piazza Roma 2 091 817
Mario Rossi 456 Via Roma 1 095 111
Leo Poldo 896 Via Piave 12 0931
Ugo Bianchi 567 Via Etnea 154 095 222
Amministrativi
Nome Matricola Indirizzo Telefono
Mario Rossi 456 Via Roma 1 095 111
Ugo Bianchi 567 Via Etnea 154 095 222
Studenti Amministrativi
Contiene le righe che sono presentinelluna e nellaltra relazione
Stessa struttura delle due relazioni di
input
Gode della propriet commutativa
7/31/2019 Informatica Modulo Algebra Relazionale
10/29
Esempio Differenza
Nome Matricola Indirizzo Telefono
Mario Rossi 456 Via Roma 1 095 111
Ugo Bianchi 567 Via Etnea 154 095 222
Teo Verdi 678 Via Parma 12 095 333
Studenti
Nome Matricola Indirizzo Telefono
Franco Bollo 756 Piazza Roma 2 091 817
Mario Rossi 456 Via Roma 1 095 111
Leo Poldo 896 Via Piave 12 0931
Ugo Bianchi 567 Via Etnea 154 095 222
Amministrativi
Studenti - Amministrativi
Nome Matricola Indirizzo Telefono
Teo Verdi 678 Via Parma 12 095 333
Amministrativi - Studenti
Nome Matricola Indirizzo Telefono
Franco Bollo 756 Piazza Roma 2 091 817
Leo Poldo 896 Via Piave 12 0931
Loperatore Differenza non gode della propriet commutativa
7/31/2019 Informatica Modulo Algebra Relazionale
11/29
Un esempio utile ma non fattibile
Padre e Madre sono attributi diversi Le relazioni non sono omogenee
Padre e Madre semanticamente simili, i.e., entrambisono Genitori
Padre Figlio
Adamo Caino
Adamo Abele
Abramo Isacco
Abramo Ismaele
Madre Figlio
Eva Caino
Eva Seth
Sara Isacco
Agar Ismaele
Paternita Maternita
PaternitaMaternita ???
7/31/2019 Informatica Modulo Algebra Relazionale
12/29
Un esempio utile ma non fattibile Soluzione: Ridenominare gli attributi e poi fare lunione
Genitore Figlio
Adamo Caino
Adamo Abele
Abramo Isacco
Abramo Ismaele
Genitore Figlio
Eva Caino
Eva Seth
Sara Isacco
Agar Ismaele
PadreGenitore(Paternita) MadreGenitore(Maternita)
Genitore Figlio
Eva Caino
Eva Seth
Sara Isacco
Agar Ismaele
Adamo Caino
Adamo Abele
Abramo Isacco
Abramo Ismaele
7/31/2019 Informatica Modulo Algebra Relazionale
13/29
7/31/2019 Informatica Modulo Algebra Relazionale
14/29
Esempio Proiezione
Proiezione
Nome Matricola Indirizzo Telefono
Mario Rossi 456 Via Roma 1 095 111
Ugo Bianchi 567 Via Etnea 154 095 222
Teo Verdi 678 Via Parma 12 095 333
Studenti
Nome, Telefono(Studenti)
Nome Telefono
Mario Rossi 095 111
Ugo Bianchi 095 222
Teo Verdi 095 333
7/31/2019 Informatica Modulo Algebra Relazionale
15/29
Unaltro esempio di proiezione
Si riduce la cardinalita
del risultato rispettoalloperando Gli insieme non
contengono duplicati
Nome Matrico
la
Indirizzo Comune Provincia
Mario Rossi 456 Via Roma 1 Acicastello CT
Ugo Bianchi 567 Via Etnea 154 Catania CT
Teo Verdi 678 Via Parma 12 Modica RG
Leo Poldo 889 Via mare 1 Acicastello CT
Studenti
Comune, Provincia(Studenti)
Comune Provincia
Acicastello CT
Catania CT
Modica RG
Acicastello CT
Comune Provincia
Acicastello CT
Catania CT
Modica RG
7/31/2019 Informatica Modulo Algebra Relazionale
16/29
Selezione (Restrizione)
Produce una relazione avente:
Lo stesso schema della relazione di partenza
Con un sottoinsieme delle righe della
relazione di partenza
Quelle che soddisfano la condizione specificata
Simbolo:
7/31/2019 Informatica Modulo Algebra Relazionale
17/29
Esempio Selezione
Corso Matricola Voto
Programmazione 678 27
Architetture 456 30
Programmazione 567 18
Matematica 678 22
Architettura 678 30
Corsi
Corso Matricola Voto
Programmazione 678 27
Architetture 456 30
Architettura 678 30
Voto > 25(Corsi)
Selezione
7/31/2019 Informatica Modulo Algebra Relazionale
18/29
Un altro esempio di Selezione
Nome Matricola Indirizzo Citta Luogo di
nascita
Mario Rossi 456 Via Roma 1 Catania Catania
Ugo Bianchi 567 Via Etnea 154 Enna Ragusa
Teo Verdi 678 Via Parma 12 Catania Enna
Leo Poldo 768 Piazza Roma 1 Ragusa Ragusa
Studenti
Citta = Luogo di nascita(Studenti)
Nome Matricola Indirizzo Citta Luogo di
nascita
Mario Rossi 456 Via Roma 1 Catania Catania
Leo Poldo 768 Piazza Roma 1 Ragusa Ragusa
7/31/2019 Informatica Modulo Algebra Relazionale
19/29
Prodotto Cartesiano
Combina tutti gli attributi e tutte le tupledelle due relazioni che partecipano
Il numero di attributi la sommadegli attributi
delle due relazioni
Il numero di tuple il prodottodel numero di
tuple nelle due relazioni
Simbolo:
7/31/2019 Informatica Modulo Algebra Relazionale
20/29
Esempio prodotto cartesiano
Impiegato Progetto
Rossi A
Verdi A
Caio B
Impiegati
Codice Descrizione
A Venere
B Marte
Progetti
Impiegati Progetti
Impiegato Progetto Codice Descrizione
Rossi A A Venere
Verdi A A Venere
Caio B A Venere
Rossi A B Marte
Verdi A B Marte
Caio B B Marte
7/31/2019 Informatica Modulo Algebra Relazionale
21/29
Join (Giunzione)
Loperatore pi importante dellalgebra
relazionale
Permette di combinare tuple da relazioni
diverse basandosi sui valori degli attributi
RFS
7/31/2019 Informatica Modulo Algebra Relazionale
22/29
Esempio Join
Impiegato Progetto
Rossi A
Verdi A
Caio B
Impiegati
Codice Descrizione
A Venere
B Marte
Progetti
Impiegati Progetto=CodiceProgettiImpiegato Progetto Codice DescrizioneRossi A A Venere
Verdi A A Venere
Caio B B Marte
7/31/2019 Informatica Modulo Algebra Relazionale
23/29
Join incompleto
Caso in cui alcuni valori tra gli attributicomuni non coincidono
Impiegato Progetto
Rossi A
Verdi A
Caio B
Codice Descrizione
A Venere
B Marte
C Saturno
Progetti
Impiegati Progetto=CodiceProgettiImpiegato Progetto Codice Descrizione
Rossi A A Venere
Verdi A A Venere
Caio B B Marte
Impiegati
Alcune righe
non partecipanoalla relazione
finale
Dangling tuples
7/31/2019 Informatica Modulo Algebra Relazionale
24/29
Join vuoti, un caso estremo Potrebbe anche succedere che nessuna riga
trovi il corrispettivo
Impiegato Progetto
Rossi A
Verdi A
Caio B
Codice Descrizione
X Venere
Y Marte
Progetti
Impiegati Progetto=Codice
ProgettiImpiegato Progetto Codice Descrizione
Impiegati
Il risultato unarelazione vuota
7/31/2019 Informatica Modulo Algebra Relazionale
25/29
Ogni riga della prima relazione si combina con ogni riga
della seconda relazione
Impiegato Progetto
Rossi A
Verdi A
Caio A
Codice Descrizione
A Venere
A Marte
Progetti
Impiegati Progetto=CodiceProgetti
Impiegati
Il risultato coincide
con il prodottocartesiano
Numero di tuple:prodotto del numerodi tuple
Laltro caso estremo del Join
Impiegato Progetto Codice Descrizione
Rossi A A Venere
Verdi A A Venere
Caio A A Venere
Rossi A A Marte
Verdi A A Marte
Caio A A Marte
7/31/2019 Informatica Modulo Algebra Relazionale
26/29
Query (interrogazioni)
Lalgebra relazionale pu essere usata
come strumento per interrogare una base
di dati
Una query una funzione da una istanza
di un database (insieme di relazioni) ad
una relazione
Qundi prende in input un insieme di relazionie produce come output una relazione
7/31/2019 Informatica Modulo Algebra Relazionale
27/29
Database di esercitazione
Matr_Studente Corso Voto
678 Programmazione 27
456 Architettura 30
567 Programmazione 18
678 Matematica 22
678 Architettura 30
456 Statistica 19
678 Statistica 29
567 Matematica 18
Denominazione Docente
Programmazione Ferro
Architettura Pappalardo
Matematica Lizzio
Statistica Lizzio
Studenti
Esami
Corsi
Nome Matricola Indirizzo Citta Luogo di nascita
Mario Rossi 456 Via Roma 1 Catania Catania
Ugo Bianchi 567 Via Etnea 154 Enna Ragusa
Teo Verdi 678 Via Parma 12 Catania Enna
Leo Poldo 768 Piazza Roma 1 Ragusa Ragusa
7/31/2019 Informatica Modulo Algebra Relazionale
28/29
Query di esercitazione
Nome e indirizzo di tutti gli studenti nati aRagusa?
Nome e voto di tutti gli studenti che hanno
sostenuto lesame di Architettura? Corso e voto degli esami sostenuti da
Mario Rossi?
Nome e Indirizzo di tutti gli studenti chehanno sostenuto almeno un esame con ilProf. Lizzio
7/31/2019 Informatica Modulo Algebra Relazionale
29/29
Query di esercitazione 2
Nome dei professori che hanno dato pi di 24a Teo Verdi ed in quali corsi?
Nomi degli studenti che hanno preso meno di
24 con il Prof. Ferro? Nome degli studenti che hanno dato sia
lesame di Architettura che diProgrammazione?
Nome degli studenti che hanno sostenuto siaun esame col Prof. Lizzio che un esame colProf. Pappalardo?