Informatica Modulo Algebra Relazionale

download Informatica Modulo Algebra Relazionale

of 29

Transcript of Informatica Modulo Algebra Relazionale

  • 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?