Enrico Cavalli - · PDF file Elaborazione automatica dei dati - Enrico Cavalli...

Click here to load reader

  • date post

    16-Apr-2020
  • Category

    Documents

  • view

    9
  • download

    0

Embed Size (px)

Transcript of Enrico Cavalli - · PDF file Elaborazione automatica dei dati - Enrico Cavalli...

  • Elaborazione Automatica dei Dati

    ALGEBRA RELAZIONALE

    Enrico Cavalli

    Anno Accademico 2012-2013

    Operazioni nel Modello Relazionale

  • Elaborazione automatica dei dati - Enrico Cavalli -Università di Bergamo 3

    Algebra Relazionale

    • Le operazioni dell’algebra relazionale permettono di manipolare tabelle per estrarre informazioni. Un’operazione relazionale agisce su una o più tabelle e genera una nuova tabella

    – Operazioni che estraggono righe o colonne di una tabella: Selezione, Proiezione

    – Operazioni che combinano righe di differenti tabelle: Prodotto Cartesiano, Join

    – Operazioni insiemistiche: Unione, Intersezione, Differenza

    – Operazioni che modificano il nome di una o più colonne: Ridenominazione

    Proiezione e Selezione

  • Elaborazione automatica dei dati - Enrico Cavalli -Università di Bergamo 5

    Proiezione e Selezione

    • Proiezione e Selezione agiscono “ortogonalmente” sulle tabelle – Proiezione: estrae colonne da una tabella – Selezione: estrae righe da una tabella

    Matricola Cognome Età

    274 Rossi 37 357 Bianchi 35 444 Rosa 38 297 Gialli 56 432 Neri 39 824 Verdi 38

    Matricola Cognome Età

    274 Rossi 37 357 Bianchi 35 444 Rosa 38 297 Gialli 56 432 Neri 39 824 Verdi 38

    Cognome Età

    Rossi 37 Bianchi 35

    Rosa 38

    Gialli 56

    Neri 39 Verdi 38

    Cognome Età

    Rossi 37 Bianchi 35

    Rosa 38

    Gialli 56

    Neri 39 Verdi 38

    Matricola Cognome Età

    274 Rossi 37 357 Bianchi 35 444 Rosa 38 824 Verdi 38

    Matricola Cognome Età

    274 Rossi 37 357 Bianchi 35 444 Rosa 38 824 Verdi 38

    ππππLR

    R σP R

    Elaborazione automatica dei dati - Enrico Cavalli -Università di Bergamo 6

    Proiezione (1)

    πElencoAttributi R

    Matricola Cognome Nome Facoltà

    545 Rossi Maria Eco 653 Neri Anna Eco 768 Verdi Giuseppe Ing 834 Rossi Maria Mat 314 Cavour Benso Ling

    Matricola Cognome Nome Facoltà

    545 Rossi Maria Eco 653 Neri Anna Eco 768 Verdi Giuseppe Ing 834 Rossi Maria Mat 314 Cavour Benso Ling

    Cognome Facoltà

    Rossi Eco Neri Eco

    Verdi Ing Rossi Mat

    Cavour Ling

    Cognome Facoltà

    Rossi Eco Neri Eco

    Verdi Ing Rossi Mat

    Cavour Ling

    Cognome

    Rossi Neri

    Verdi Cavour

    Cognome

    Rossi Neri

    Verdi Cavour

    πCognome, Facoltà R πCognome R

    R

    Una proiezione può cambiare la cardinalità

    di una relazione

  • Elaborazione automatica dei dati - Enrico Cavalli -Università di Bergamo 7

    Proiezione (2)

    Matricola Cognome Nome Facoltà

    545 Rossi Maria Eco 653 Neri Anna Eco 768 Verdi Giuseppe Ing 834 Rossi Maria Mat 314 Cavour Benso Ling

    Matricola Cognome Nome Facoltà

    545 Rossi Maria Eco 653 Neri Anna Eco 768 Verdi Giuseppe Ing 834 Rossi Maria Mat 314 Cavour Benso Ling

    πNome,Cognome, Matricola Facoltà R

    R

    Con le proiezioni è possibile

    modificare l’ordine delle colonne

    πElencoAttributi R

    Nome Cognome Matricola Facoltà

    Maria Rossi 545 Eco Anna Neri 653 Eco

    Giuseppe Verdi 768 Ing Maria Rossi 834 Mat Benso Cavour 314 Ling

    Nome Cognome Matricola Facoltà

    Maria Rossi 545 Eco Anna Neri 653 Eco

    Giuseppe Verdi 768 Ing Maria Rossi 834 Mat Benso Cavour 314 Ling

    Elaborazione automatica dei dati - Enrico Cavalli -Università di Bergamo 8

    Selezione

    σCondizione di Selezione R

    Matricola Cognome Età

    274 Rossi 37 357 Bianchi 35 444 Rosa 38 297 Gialli 56 432 Neri 39 824 Verdi 38

    Matricola Cognome Età

    274 Rossi 37 357 Bianchi 35 444 Rosa 38 297 Gialli 56 432 Neri 39 824 Verdi 38

    R σEtà < 39 R Matricola Cognome Età

    274 Rossi 37 357 Bianchi 35 444 Rosa 38 824 Verdi 38

    Matricola Cognome Età

    274 Rossi 37 357 Bianchi 35 444 Rosa 38 824 Verdi 38

    Cognome Matricola

    Rossi 274 Bianchi 297

    Rosa 432

    Verdi 824

    Cognome Matricola

    Rossi 274 Bianchi 297

    Rosa 432

    Verdi 824

    πCognome, Matricola(σEtà < 39 R)

    • Le operazioni possono essere combinate per costruire espressioni complesse

  • Elaborazione automatica dei dati - Enrico Cavalli -Università di Bergamo 9

    Osservazioni

    • Cardinalità (Numerosità delle righe) – Proiezione

    – Selezione

    • Grado (Numerosità delle colonne) – Proiezione

    – Selezione

    Elaborazione automatica dei dati - Enrico Cavalli -Università di Bergamo 10

    Esercizi

    Costruire le seguenti interrogazioni:

    • In relazione alla tabella: Infrazioni ( Codice, Agente, Data, Articolo, Prov, Numero ), elencare le contravvenzioni elevate dall’agente con matricola 457. L’elenco conterrà Data, Articolo violato e targa dell’auto multata.

    • In relazione alla tabella: Infrazioni ( Codice, Agente, Data, Articolo, Prov, Numero ), elencare le contravvenzioni elevate nei confronti dei milanesi nel corso del 2004. L’elenco conterrà Articolo violato e Agente che ha elevato la contravvenzione.

    • Data la relazione: Studenti ( Matricola, Cognome, Nome, DataNascita, CodiceFiscale ), elencare gli studenti che hanno più di 23 anni (Si ipotizza che: DataNascita contenga il solo anno e che l’interrogazione venga effettuata nel 2011).

    • Data la relazione: Prestiti ( NomeAgenzia, NumeroPrestito, NomeCliente, Importo ), elencare le agenzie che hanno concesso prestiti di importo superiore a 50000 euro.

    • Data la relazione: Depositi ( NomeAgenzia, NumeroDeposito, NomeCliente, Importo ), elencare i clienti dell’agenzia “Città Alta” che hanno un deposito superiore a 100.000 euro.

    • Data la relazione: Dettaglio ( Num, Qta, Descrizione, Importo ), che descrive le voci che compaiono nel conto di un ristorante, elencare le righe dove compaiono dei caffe’.

  • Prodotto Cartesiano e Join

    Elaborazione automatica dei dati - Enrico Cavalli -Università di Bergamo 12

    Prodotto Cartesiano

    R x S combina le righe di R con le righe di S in tutti i modi possibili

    Impiegato Reparto

    Rossi Vendite Neri Produzione

    Bianchi Produzione

    Impiegato Reparto

    Rossi Vendite Neri Produzione

    Bianchi Produzione

    Reparto Capo

    Produzione Mori Vendite Chiari Acquisti Bruni

    Reparto Capo

    Produzione Mori Vendite Chiari Acquisti Bruni

    Impiegato R.Reparto S.Reparto Capo

    Rossi Vendite Produzione Mori Rossi Vendite Vendite Chiari Rossi Vendite Acquisti Bruni Neri Produzione Produzione Mori Neri Produzione Vendite Chiari Neri Produzione Acquisti Bruni

    Bianchi Produzione Produzione Mori Bianchi Produzione Vendite Chiari Bianchi Produzione Acquisti Bruni

    Impiegato R.Reparto S.Reparto Capo

    Rossi Vendite Produzione Mori Rossi Vendite Vendite Chiari Rossi Vendite Acquisti Bruni Neri Produzione Produzione Mori Neri Produzione Vendite Chiari Neri Produzione Acquisti Bruni

    Bianchi Produzione Produzione Mori Bianchi Produzione Vendite Chiari Bianchi Produzione Acquisti Bruni

    R x S

    SR

    Il Prodotto Cartesiano genera

    tabelle prive di valore informativo

  • Elaborazione automatica dei dati - Enrico Cavalli -Università di Bergamo 13

    Theta Join (1)

    R P S ≡ σP ( R x S )

    Impiegato Reparto

    Rossi Vendite

    Neri Produzione

    Bianchi Produzione

    Verdi Ricerca

    Impiegato Reparto

    Rossi Vendite

    Neri Produzione

    Bianchi Produzione

    Verdi Ricerca

    Reparto Capo

    Produzione Mori Vendite Chiari Acquisti Bruni

    Reparto Capo

    Produzione Mori Vendite Chiari Acquisti Bruni

    SR

    R R.Reparto = S.Reparto S

    Impiegato R.Reparto S.Reparto Capo

    Rossi Vendite Vendite Chiari Neri Produzione Produzione Mori

    Bianchi Produzione Produzione Mori

    Impiegato R.Reparto S.Reparto Capo

    Rossi Vendite Vendite Chiari Neri Produzione Produzione Mori

    Bianchi Produzione Produzione Mori

    Un Theta Join dove P è l’uguaglianza

    tra attributi di R ed S si chiama EQUI -

    JOIN

    Elaborazione automatica dei dati - Enrico Cavalli -Università di Bergamo 14

    Theta Join (2)

    R P S ≡ σP ( R x S )

    SR

    R A < D S

    A B C

    1 2 3

    6 7 8

    9 7 8

    B C D

    2 3 4

    2 3 5

    7 8 10

    A R.B R.C S.B S.C D

    1 2 3 2 3 4

    1 2 3 2 3 5

    1 2 3 7 8 10

    6 7 8 7 8 10

    9 7 8 7 8 10

    A R.B R.C S.B S.C D

    1 2 3 2 3 4

    6 7 8 2 3 4

    9 7 8 2 3 4

    1 2 3 2 3 5

    6 7 8 2 3 5

    9 7 8 2 3 5

    1 2 3 7 8 10

    6 7 8 7 8 10

    9 7 8 7 8 10

    R ×××× S

    In un Theta Join può comparire qualsiasi tipo

    di condizione

  • Elaborazione automatica dei dati - Enrico Cavalli -Università di Bergamo 15

    Equi Join

    SR

    R R.B = S.B AND R.C = S.C S

    A B C

    1 2 3

    6 7 8

    9 7 8

    B C D

    2 3 4

    2 3 5

    7 8 10 A R.B R.C S.B S.C D

    1 2 3 2 3 4

    6 7 8 2 3 4

    9 7 8 2 3 4

    1 2 3 2 3 5

    6 7 8 2 3 5

    9 7 8 2 3 5

    1 2 3 7 8 10

    6 7 8 7 8 10

    9 7 8 7 8 10

    R ×××× S

    A R.B R.C S.B S.C D

    1 2