Vous êtes sur la page 1sur 29

Introduzione allalgebra relazionale

Prof. Giovanni Giuffrida

Esempio di interrogazione
Studenti
Nome Mario Rossi Ugo Bianchi Teo Verdi Matricola 456 567 678 Indirizzo Via Roma 1 Via Etnea 154 Via Parma 12 Telefono 095 111 095 222 095 333

Esami
Matr_Studente 678 456 567 Corso Programmazione Architettura Programmazione Matematica Architettura Voto 27 30 18 22 30

Corsi
Denominazione Programmazione Architettura Matematica Docente Ferro Pappalardo Lizzio

678 678

Professore Programmazione Architettura

Corso Ferro 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
Mario Rossi Ugo Bianchi

Matricola
456 567

Indirizzo
Via Roma 1

Telefono
095 111

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 dellalgebra relazionale (AR)


Gli operatori unari dellAR sono:
Ridenominazione: Proiezione: Restrizione/Selezione:

Gli operatori binari dellAR sono:


Unione: Intersezione: Differenza: Prodotto cartesiano: Join: F

Ridenominazione
Simbolo: Modifica il nome di un attributo, lascia inalterate le tuple
Studenti
Nome Mario Rossi Matricola 456 Indirizzo Via Roma 1 Telefono 095 111

Ugo Bianchi
Teo Verdi

567
678

Via Etnea 154


Via Parma 12

095 222
095 333

Nome Studente(Studenti)
Studenti
Studente Mario Rossi Ugo Bianchi Teo Verdi Matricola 456 567 678 Indirizzo Via Roma 1 Via Etnea 154 Via Parma 12 Telefono 095 111 095 222 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 devessere 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
Nome Mario Rossi Ugo Bianchi Matricola 456 567 Indirizzo Via Roma 1 Via Etnea 154 Telefono 095 111 095 222

Amministrativi
Nome Franco Bollo Mario Rossi Leo Poldo Ugo Bianchi Matricola 756 456 896 567 Indirizzo Piazza Roma 2 Via Roma 1 Via Piave 12 Via Etnea 154 Telefono 091 817 095 111 0931 095 222

Teo Verdi

678

Via Parma 12

095 333

Studenti Amministrativi
Nome Franco Bollo Mario Rossi Leo Poldo Ugo Bianchi Teo Verdi Matricola 756 456 896 567 678 Indirizzo Piazza Roma 2 Via Roma 1 Via Piave 12 Via Etnea 154 Via Parma 12 Telefono 091 817 095 111 0931 095 222 095 333

Contiene le righe che sono presenti o nelluna o nellaltra 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
Nome Mario Rossi Ugo Bianchi Matricola 456 567 Indirizzo Via Roma 1 Via Etnea 154 Telefono 095 111 095 222

Amministrativi
Nome Franco Bollo Mario Rossi Leo Poldo Ugo Bianchi Matricola 756 456 896 567 Indirizzo Piazza Roma 2 Via Roma 1 Via Piave 12 Via Etnea 154 Telefono 091 817 095 111 0931 095 222

Teo Verdi

678

Via Parma 12

095 333

Studenti Amministrativi
Nome Mario Rossi Ugo Bianchi Matricola 456 567 Indirizzo Via Roma 1 Via Etnea 154 Telefono 095 111 095 222

Contiene le righe che sono presenti nelluna e nellaltra relazione Stessa struttura delle due relazioni di input Gode della propriet commutativa

Esempio Differenza
Studenti
Nome Mario Rossi Ugo Bianchi Matricola 456 567 Indirizzo Via Roma 1 Via Etnea 154 Telefono 095 111 095 222

Amministrativi
Nome Franco Bollo Mario Rossi Leo Poldo Ugo Bianchi Matricola 756 456 896 567 Indirizzo Piazza Roma 2 Via Roma 1 Via Piave 12 Via Etnea 154 Telefono 091 817 095 111 0931 095 222

Teo Verdi

678

Via Parma 12

095 333

Studenti - Amministrativi
Nome Teo Verdi Matricola 678 Indirizzo Via Parma 12 Telefono 095 333

Amministrativi - Studenti
Nome Franco Bollo Leo Poldo Matricola 756 896 Indirizzo Piazza Roma 2 Via Piave 12 Telefono 091 817 0931

Loperatore Differenza non gode della propriet commutativa

Un esempio utile ma non fattibile


Paternita
Padre Adamo Adamo Figlio Caino Abele

Maternita
Madre Figlio

Eva
Eva Sara Agar

Caino
Seth Isacco Ismaele

Abramo
Abramo

Isacco
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 lunione

PadreGenitore(Paternita) MadreGenitore(Maternita)
Genitore Adamo Figlio Caino

Genitore Eva Figlio Caino

Genitore Eva Eva

Figlio Caino Seth

Adamo
Abramo Abramo

Abele
Isacco Ismaele

Sara
Agar

Isacco
Ismaele

Eva
Sara Agar Adamo Adamo Abramo Abramo

Seth
Isacco Ismaele Caino Abele Isacco Ismaele

Proiezione
Produce risultati:
Su un sottoinsieme degli attributi delloperando 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 Mario Rossi Ugo Bianchi Matricola 456 567 Indirizzo Via Roma 1 Via Etnea 154 Telefono 095 111 095 222

Teo Verdi

678

Via Parma 12

095 333

Proiezione

Nome, Telefono (Studenti)


Nome Mario Rossi Ugo Bianchi Teo Verdi Telefono 095 111 095 222 095 333

Unaltro esempio di proiezione


Studenti
Nome Mario Rossi Ugo Bianchi Matrico la 456 567 Indirizzo Via Roma 1 Via Etnea 154 Comune Acicastello Catania Provincia CT CT Comune Acicastello Catania Modica Acicastello Provincia CT CT RG CT

Comune, Provincia (Studenti)

Teo Verdi
Leo Poldo

678
889

Via Parma 12
Via mare 1

Modica
Acicastello

RG
CT

Si riduce la cardinalita del risultato rispetto alloperando


Gli insieme non contengono duplicati

Comune Acicastello Catania Modica

Provincia CT CT 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 Programmazione Matricola 678 Voto 27

Architetture
Programmazione Matematica Architettura

456
567 678 678

30
18 22 30

Selezione

Voto > 25 (Corsi)


Corso Programmazione Architetture Architettura Matricola 678 456 678 Voto 27 30 30

Un altro esempio di Selezione


Studenti
Nome Mario Rossi Ugo Bianchi Teo Verdi Leo Poldo Matricola 456 567 678 768 Indirizzo Via Roma 1 Via Etnea 154 Via Parma 12 Piazza Roma 1 Citta Catania Enna Catania Ragusa Luogo di nascita Catania Ragusa Enna Ragusa

Citta = Luogo di nascita (Studenti)


Nome Mario Rossi Leo Poldo Matricola 456 768 Indirizzo Via Roma 1 Piazza Roma 1 Citta Catania Ragusa Luogo di nascita Catania 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 Impiegato Rossi Progetto A Progetti Codice A B Descrizione Venere Marte

Verdi Caio

A B

Impiegati Progetti
Impiegato Rossi Verdi Caio Rossi Verdi Caio Progetto A A B A A B Codice A A A B B B Descrizione Venere Venere Venere Marte Marte Marte

Join (Giunzione)
Loperatore pi importante dellalgebra relazionale Permette di combinare tuple da relazioni diverse basandosi sui valori degli attributi
R FS

Esempio Join
Impiegati Impiegato Rossi Progetto A Progetti Codice A B Descrizione Venere Marte

Verdi Caio

A B

Impiegati Progetto=Codice Progetti


Impiegato Rossi Verdi Caio Progetto A A B Codice A A B Descrizione Venere Venere Marte

Join incompleto
Caso in cui alcuni valori tra gli attributi comuni non coincidono
Impiegati Progetti

Alcune righe non partecipano alla relazione finale


Dangling tuples

Impiegato Rossi
Verdi Caio

Progetto A
A B

Codice A B C

Descrizione Venere Marte Saturno

Impiegati Progetto=Codice Progetti


Impiegato Rossi Verdi Caio Progetto A A B Codice A A B Descrizione Venere Venere Marte

Join vuoti, un caso estremo


Potrebbe anche succedere che nessuna riga trovi il corrispettivo
Impiegati Progetti

Impiegato Rossi
Verdi Caio

Progetto A
A B

Codice X Y

Descrizione Venere Marte

Il risultato una relazione vuota

Impiegati Progetto=Codice Progetti


Impiegato Progetto Codice Descrizione

Laltro caso estremo del Join


Ogni riga della prima relazione si combina con ogni riga della seconda relazione
Impiegati Impiegato Rossi Verdi Caio Progetto A A A Progetti Codice A A Descrizione Venere Marte

Il risultato coincide con il prodotto cartesiano Numero di tuple: prodotto del numero di tuple

Impiegati Progetto=Codice Progetti


Impiegato Rossi Verdi Caio Rossi Verdi Caio Progetto A A A A A A Codice A A A A A A Descrizione Venere Venere Venere Marte Marte Marte

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 relazioni e produce come output una relazione

Database di esercitazione
Studenti
Nome
Mario Rossi Ugo Bianchi Teo Verdi

Matricola
456 567 678

Indirizzo
Via Roma 1 Via Etnea 154 Via Parma 12

Citta
Catania Enna Catania

Luogo di nascita
Catania Ragusa Enna

Leo Poldo

768

Piazza Roma 1

Ragusa

Ragusa

Esami Corsi
Denominazione
Programmazione Architettura Matematica
Matr_Studente

Corso
Programmazione Architettura Programmazione Matematica Architettura Statistica Statistica Matematica

Voto
27 30 18 22 30 19 29 18

Docente
Ferro Pappalardo Lizzio

678 456 567 678 678 456 678 567

Statistica

Lizzio

Query di esercitazione
Nome e indirizzo di tutti gli studenti nati a Ragusa? 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 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 lesame di Architettura che di Programmazione? Nome degli studenti che hanno sostenuto sia un esame col Prof. Lizzio che un esame col Prof. Pappalardo?

Vous aimerez peut-être aussi