Parte 5. - Dipartimento di Matematica e Informatica

annuncio pubblicitario
Introduzione all’algebra
relazionale
Prof. Giovanni Giuffrida
Esempio di interrogazione
Studenti
Esami
Nome
Matricola
Indirizzo
Telefono
Mario Rossi
456
Via Roma 1
095 111
Matr_Studente
Corso
Voto
Ugo Bianchi
567
Via Etnea 154
095 222
678
Programmazione
27
Teo Verdi
678
Via Parma 12
095 333
456
Architettura
30
567
Programmazione
18
678
Matematica
22
678
Architettura
30
Corsi
Denominazione
Docente
Programmazione
Ferro
Architettura
Pappalardo
Matematica
Lizzio
Professore
Corso
Programmazione
Ferro
Architettura
Pappalardo
Quali professori hanno
dato piu’ di 24 a Teo
Verdi ed in quali corsi?
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
Algebra relazionale
• Un linguaggio formale per eseguire interrogazioni
su 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 interrogazione
relazionali
Operatori dell’algebra relazionale (AR)
• Gli operatori unari dell’AR sono:
– Ridenominazione: ρ
– Proiezione: 
– Restrizione/Selezione: 
• Gli operatori binari dell’AR sono:
–
–
–
–
–
Unione: 
Intersezione: 
Differenza: 
Prodotto cartesiano: ⋈
Join: ⋈F
Ridenominazione
• Simbolo: ρ
• Modifica il nome di un attributo, lascia inalterate le tuple
Studenti
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
Unione, Differenza e Intersezione
• Operatori insiemistici
• Una relazione è un insieme di tuple
– Quindi possiamo applicare alle relazioni gli
operatori insiemistici standard
• Il risultato dev’essere un set omogeneo di
tuple
• Possiamo applicare gli operatori insiemistici
solo su relazioni omogenee, cioè con gli
stessi attributi
– Stesso numero di attributi e stesso nome degli
attributi!!
Esempio Unione
Studenti
Amministrativi
Nome
Matricola
Indirizzo
Telefono
Nome
Matricola
Indirizzo
Telefono
Mario Rossi
456
Via Roma 1
095 111
Franco Bollo
756
Piazza Roma 2
091 817
Ugo Bianchi
567
Via Etnea 154
095 222
Mario Rossi
456
Via Roma 1
095 111
Teo Verdi
678
Via Parma 12
095 333
Leo Poldo
896
Via Piave 12
0931
Ugo Bianchi
567
Via Etnea 154
095 222
Studenti  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
• Contiene le righe che sono presenti o
nell’una o nell’altra relazione (o in
entrambe)
• Stessa struttura delle due relazioni di
input
• Tuple duplicate vengono rimosse (le
relazioni sono insiemi!)
• Gode della proprietà commutativa
Esempio Intersezione
Studenti
Amministrativi
Nome
Matricola
Indirizzo
Telefono
Nome
Matricola
Indirizzo
Telefono
Mario Rossi
456
Via Roma 1
095 111
Franco Bollo
756
Piazza Roma 2
091 817
Ugo Bianchi
567
Via Etnea 154
095 222
Mario Rossi
456
Via Roma 1
095 111
Teo Verdi
678
Via Parma 12
095 333
Leo Poldo
896
Via Piave 12
0931
Ugo Bianchi
567
Via Etnea 154
095 222
Studenti  Amministrativi
Nome
Matricola
Indirizzo
Telefono
Mario Rossi
456
Via Roma 1
095 111
Ugo Bianchi
567
Via Etnea 154
095 222
• Contiene le righe che sono presenti
nell’una e nell’altra relazione
• Stessa struttura delle due relazioni di
input
• Gode della proprietà commutativa
Esempio Differenza
Studenti
Amministrativi
Nome
Matricola
Indirizzo
Telefono
Nome
Matricola
Indirizzo
Telefono
Mario Rossi
456
Via Roma 1
095 111
Franco Bollo
756
Piazza Roma 2
091 817
Ugo Bianchi
567
Via Etnea 154
095 222
Mario Rossi
456
Via Roma 1
095 111
Teo Verdi
678
Via Parma 12
095 333
Leo Poldo
896
Via Piave 12
0931
Ugo Bianchi
567
Via Etnea 154
095 222
Studenti - Amministrativi
Amministrativi - Studenti
Nome
Matricola
Indirizzo
Telefono
Nome
Matricola
Indirizzo
Telefono
Teo Verdi
678
Via Parma 12
095 333
Franco Bollo
756
Piazza Roma 2
091 817
Leo Poldo
896
Via Piave 12
0931
L’operatore Differenza non gode della proprietà commutativa
Un esempio utile ma non fattibile
Paternita
Maternita
Padre
Figlio
Madre
Figlio
Adamo
Caino
Eva
Caino
Adamo
Abele
Eva
Seth
Abramo
Isacco
Sara
Isacco
Abramo
Ismaele
Agar
Ismaele
Paternita  Maternita ???
• «Padre» e «Madre» sono attributi diversi
– Le relazioni non sono omogenee
• «Padre» e «Madre» semanticamente simili, i.e., entrambi
sono «Genitori»
Un esempio utile ma non fattibile
• Soluzione: Ridenominare gli attributi e poi fare l’unione
ρPadre→Genitore(Paternita)  ρMadre→Genitore(Maternita)

Genitore
Figlio
Adamo
Caino
Adamo
Abele
Abramo
Isacco
Genitore
Abramo
Ismaele
Genitore
Figlio
Eva
Caino
Eva
Seth
Figlio
Sara
Isacco
Eva
Caino
Agar
Ismaele
Eva
Seth
Sara
Isacco
Agar
Ismaele
Adamo
Caino
Adamo
Abele
Abramo
Isacco
Abramo
Ismaele
Proiezione
• Produce risultati:
– Su un sottoinsieme degli attributi
dell’operando
– Con valori da tutte le tuple della relazione
• Esempio:  A1, A2,…, An (R)
• In pratica permette di selezionare un sottoinsieme di attributi
Esempio Proiezione
Studenti
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, Telefono (Studenti)
Nome
Telefono
Mario Rossi
095 111
Ugo Bianchi
095 222
Teo Verdi
095 333
Proiezione
Un’altro esempio di proiezione
Studenti
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
Leo Poldo
889
Via mare 1
Acicastello
 Comune, Provincia (Studenti)
Comune
Provincia
RG
Acicastello
CT
CT
Catania
CT
Modica
RG
Acicastello
CT
• Si riduce la cardinalita’
del risultato rispetto
all’operando
– Gli insieme non
contengono duplicati
Comune
Provincia
Acicastello
CT
Catania
CT
Modica
RG
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: 
Esempio Selezione
Corsi
Corso
Matricola
Voto
Programmazione
678
27
Architetture
456
30
Programmazione
567
18
Matematica
678
22
Architettura
678
30
 Voto > 25 (Corsi)
Corso
Matricola
Voto
Programmazione
678
27
Architetture
456
30
Architettura
678
30
Selezione
Un altro esempio di Selezione
Studenti
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
 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
Prodotto Cartesiano
• Combina tutti gli attributi e tutte le tuple
delle due relazioni che partecipano
– Il numero di attributi è la somma degli attributi
delle due relazioni
– Il numero di tuple è il prodotto del numero di
tuple nelle due relazioni
• Simbolo: ⋈
Esempio prodotto cartesiano
Impiegati
Progetti
Impiegato
Progetto
Rossi
A
Verdi
A
Caio
B
Codice
Descrizione
A
Venere
B
Marte
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
Join (Giunzione)
• L’operatore più importante dell’algebra
relazionale
• Permette di combinare tuple da relazioni
diverse basandosi sui valori degli attributi
– R ⋈ FS
Esempio Join
Impiegati
Progetti
Impiegato
Progetto
Rossi
A
Verdi
A
Caio
B
Codice
Descrizione
A
Venere
B
Marte
Impiegati ⋈ Progetto=Codice Progetti
Impiegato
Progetto
Codice
Descrizione
Rossi
A
A
Venere
Verdi
A
A
Venere
Caio
B
B
Marte
Join incompleto
• Caso in cui alcuni valori tra gli attributi
comuni non coincidono
Progetti
Impiegati
• Alcune righe
non partecipano
alla relazione
finale
– Dangling tuples
Impiegato
Progetto
Codice
Descrizione
Rossi
A
A
Venere
Verdi
A
B
Marte
Caio
B
C
Saturno
Impiegati ⋈ Progetto=Codice Progetti
Impiegato
Progetto
Codice
Descrizione
Rossi
A
A
Venere
Verdi
A
A
Venere
Caio
B
B
Marte
Join vuoti, un caso estremo
• Potrebbe anche succedere che nessuna riga
trovi il corrispettivo
Progetti
Impiegati
• Il risultato è una
relazione vuota
Impiegato
Progetto
Codice
Descrizione
Rossi
A
X
Venere
Verdi
A
Y
Marte
Caio
B
Impiegati ⋈ Progetto=Codice Progetti
Impiegato
Progetto
Codice
Descrizione
L’altro caso estremo del Join
• Ogni riga della prima relazione si combina con ogni riga
della seconda relazione
Progetti
Impiegati
• Il risultato coincide
con il prodotto
cartesiano
• Numero di tuple:
prodotto del numero
di tuple
Impiegato
Progetto
Codice
Descrizione
Rossi
A
A
Venere
Verdi
A
A
Marte
Caio
A
Impiegati ⋈ Progetto=Codice Progetti
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
Query (interrogazioni)
• L’algebra 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 relazioni
e produce come output una relazione
Database di esercitazione
Studenti
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
Esami
Corsi
Denominazione
Docente
Programmazione
Ferro
Architettura
Pappalardo
Matematica
Lizzio
Statistica
Lizzio
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
Query di esercitazione
• Nome e indirizzo di tutti gli studenti nati a
Ragusa?
• Nome e voto di tutti gli studenti che hanno
sostenuto l’esame di Architettura?
• Corso e voto degli esami sostenuti da
Mario Rossi?
• Nome e Indirizzo di tutti gli studenti che
hanno sostenuto almeno un esame con il
Prof. Lizzio
Query di esercitazione 2
• Nome dei professori che hanno dato più di 24
a 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
l’esame di Architettura che di
Programmazione?
• Nome degli studenti che hanno sostenuto sia
un esame col Prof. Lizzio che un esame col
Prof. Pappalardo?
Scarica