Basi di Dati
            Basi di Dati

Esercizi di algebra relazionale
Gestione ordini 
Gestione ordini
    COD‐CLI      NOME   CITTA         P
    COD‐CLI      NOME   CITTA         P‐IVA      ...
Esercizi
Quali ordini ha emesso Paolo?
Quali ordini ha emesso Paolo?

           PROJECT [COD ORD] 
           PROJECT [CO...
Esercizi
Quali prodotti (nomi) sono ordinati da un cliente di 
Milano?

     PROJECT [PRODOTTO.NOME]
     PROJECT [PRODOTT...
Esercizi
Quali prodotti (nomi) hanno prezzo inferiore 
a 10 € e non sono presenti in nessun  
ordine?
     PROJECT [NOME]
...
Esempio : gestione personale 
Esempio : gestione personale
impiegato
MATR   NOME       DATA‐ASS
                  DATA‐   ...
Esercizi
In quali tipi di progetti lavora Giovanni?
      PROJECT [TIPO] 
       SELECT [NOME =  ‘Giovanni’]
             ...
Esercizi

Chi e il manager di Piero?
Chi e' il manager di Piero?

     PROJECT [NOME]
     PROJECT [NOME]
       (   (PROJ...
Esercizi
Quale impiegato e' stato assunto per primo?
PROJECT [NOME] IMPIEGATO
MINUS
PROJECT [NOME]
  (   IMPIEGATO JOIN [D...
Esercizi
Quale impiegato e' stato assunto per primo?

           πNOME IMPIEGATO  ‐
                 IMPIEGATO  ‐
        ...
Esercizi
Quale impiegato e' assegnato a tutti i progetti?
             PROJECT [MATR, NUM‐PROG]   
             PROJECT [M...
Esercizi
Quale impiegato e' assegnato a tutti i progetti?
πMATR, NUM‐PROG ASSEGNAMENTO
  MATR, NUM‐
÷
πNUM‐PROG  PROGETTO
...
Divisione (÷)
Divisione (÷)
Il risultato dell’operazione di divisione (÷) tra due relazioni r ed s, 
con schemi R(X) ed S(...
Divisione
L’operatore di divisione non è un operatore di base, ma 
   p                               p               ,
pu...
Divisione
r = PROJECT [MATR, NUM‐PROG] 
r = PROJECT [MATR, NUM‐
ASSEGNAMENTO
           MATR NUM‐PROG
                   N...
Divisione
((
( (PROJECT [MATR] r) x s ) ‐
( (PROJECT [MATR] r) x s ) ‐ r
           [    ] ) )
        MATR       NUM‐
   ...
Upcoming SlideShare
Loading in …5
×

C2es Es Algebra

833
-1

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
833
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

C2es Es Algebra

  1. 1. Basi di Dati Basi di Dati Esercizi di algebra relazionale
  2. 2. Gestione ordini  Gestione ordini COD‐CLI      NOME   CITTA         P COD‐CLI      NOME   CITTA         P‐IVA cliente COD‐ORD       COD‐ COD‐ORD       COD‐CLI   DATA     IMPORTO ordine COD‐ORD        COD‐PROD QTA COD‐ORD ORD        COD PROD  COD‐ dettaglio COD‐PROD      NOME      PREZZO COD‐PROD      NOME      PREZZO prodotto 2 Basi di Dati ‐ Esercizi algebra relazionale
  3. 3. Esercizi Quali ordini ha emesso Paolo? Quali ordini ha emesso Paolo? PROJECT [COD ORD]  PROJECT [COD‐ORD] PROJECT [COD‐ SELECT [NOME =  ‘Paolo’] (CLIENTE JOIN ORDINE) (CLIENTE JOIN ORDINE) πCOD‐ORD (σ NOME =  ‘Paolo’ ( COD‐ CLIENTE        ORDINE)) 3 Basi di Dati ‐ Esercizi algebra relazionale
  4. 4. Esercizi Quali prodotti (nomi) sono ordinati da un cliente di  Milano? PROJECT [PRODOTTO.NOME] PROJECT [PRODOTTO.NOME]  [ ]  ( (SELECT [CITTA = ‘Milano’] CLIENTE) ( [ ‘ l ’] ) JOIN ORDINE JOIN DETTAGLIO JOIN     PRODOTTO ) π PRODOTTO.NOME ( (σCITTA = ‘Milano’ CLIENTE) ( (σ ORDINE       DETTAGLIO       PRODOTTO ) 4 Basi di Dati ‐ Esercizi algebra relazionale
  5. 5. Esercizi Quali prodotti (nomi) hanno prezzo inferiore  a 10 € e non sono presenti in nessun   ordine? PROJECT [NOME] (SELECT [PREZZO < 10] PRODOTTO) (SELECT [PREZZO < 10] PRODOTTO) MINUS PROJECT [NOME] PROJECT [NOME] (PRODOTTO JOIN DETTAGLIO) (π NOME  (σ PREZZO < 10 PRODOTTO) ) ‐ PRODOTTO) ) ‐ (π NOME (PRODOTTO       DETTAGLIO)) NOME ( )) 5 Basi di Dati ‐ Esercizi algebra relazionale
  6. 6. Esempio : gestione personale  Esempio : gestione personale impiegato MATR NOME DATA‐ASS DATA‐ SALARIO MATR‐ MATR‐MGR 1 Piero 1‐1‐02 1500 € 1500 € 2 2 Giorgio 1‐1‐04 2000 € 2000 € null 3 Giovanni 1‐7‐03 1000 € 1000 € 2  assegnamento progetto MATR NUM‐ NUM‐PROG PERC NUM‐ NUM‐PROG TITOLO TIPO 1 3 50 3 Idea Esprit 1 4 50 4 Wide Esprit 2 3 100 3 4 100 6 Basi di Dati ‐ Esercizi algebra relazionale
  7. 7. Esercizi In quali tipi di progetti lavora Giovanni? PROJECT [TIPO]  SELECT [NOME =  ‘Giovanni’] [ ‘ ’] (IMPIEGATO JOIN ASSEGNAMENTO  JOIN PROGETTO) πTIPO (σNOME =  ‘Giovanni’ (IMPIEGATO        ASSEGNAMENTO  (IMPIEGATO ASSEGNAMENTO PROGETTO)) 7 Basi di Dati ‐ Esercizi algebra relazionale
  8. 8. Esercizi Chi e il manager di Piero? Chi e' il manager di Piero? PROJECT [NOME] PROJECT [NOME] (   (PROJECT [MATR‐MGR] (   (PROJECT [MATR‐ (SELECT [NOME = ‘Piero’] IMPIEGATO) ) (SELECT [NOME =  Piero ] IMPIEGATO) ) JOIN [MATR‐MGR=MATR] IMPIEGATO ) JOIN [MATR‐ πNOME ( (πMATR‐MGR (σNOME = ‘Piero’ IMPIEGATO) ) ( (πMATR‐ MATR‐MGR=MATR IMPIEGATO ) MATR‐ IMPIEGATO ) 8 Basi di Dati ‐ Esercizi algebra relazionale
  9. 9. Esercizi Quale impiegato e' stato assunto per primo? PROJECT [NOME] IMPIEGATO MINUS PROJECT [NOME] (   IMPIEGATO JOIN [DATA ASS>DATA ASS] ( IMPIEGATO JOIN [DATA‐ASS>DATA‐ASS] (   IMPIEGATO JOIN [DATA‐ DATA‐ASS]      ]      (PROJECT [DATA‐ASS] IMPIEGATO) (PROJECT [DATA‐ ) NOME NOME NOME MINUS Piero  Giorgio Piero Giorgio Giovanni Giovanni Gi i 9 Basi di Dati ‐ Esercizi algebra relazionale
  10. 10. Esercizi Quale impiegato e' stato assunto per primo? πNOME IMPIEGATO  ‐ IMPIEGATO  ‐ πNOME (IMPIEGATO       DATA‐ASS>DATA‐ASS DATA‐ASS>DATA‐ πDATA‐ASS IMPIEGATO ) DATA‐ NOME NOME NOME MINUS Piero  Piero Giorgio Piero Giorgio Giovanni Giovanni 10 Basi di Dati ‐ Esercizi algebra relazionale
  11. 11. Esercizi Quale impiegato e' assegnato a tutti i progetti? PROJECT [MATR, NUM‐PROG]    PROJECT [MATR, NUM‐ ASSEGNAMENTO ÷ PROJECT [NUM PROG]              PROJECT [NUM‐PROG] [NUM‐ PROGETTO MATR NUM‐ NUM‐PROG 1 3 NUM‐ NUM‐PROG MATR ÷ 1 4 3 1 2 3 4 3 4 11 Basi di Dati ‐ Esercizi algebra relazionale
  12. 12. Esercizi Quale impiegato e' assegnato a tutti i progetti? πMATR, NUM‐PROG ASSEGNAMENTO MATR, NUM‐ ÷ πNUM‐PROG  PROGETTO NUM‐ MATR NUM‐ NUM‐PROG 1 3 NUM‐ NUM‐PROG MATR ÷ 1 4 3 1 2 3 4 3 4 12 Basi di Dati ‐ Esercizi algebra relazionale
  13. 13. Divisione (÷) Divisione (÷) Il risultato dell’operazione di divisione (÷) tra due relazioni r ed s,  con schemi R(X) ed S(Y), Y sottoinsieme di X, è una relazione d,  con schema D(X‐Y), contenente le tuple di r associate a tutte le  tuple t l di s.  r  R(X) s  S(Y) MATR NUM‐ NUM‐PROG d  D(X‐Y) d  D(X‐ 1 3 NUM‐ NUM‐PROG MATR ÷ 1 4 3 1 2 3 4 3 4 13 Basi di Dati ‐ Esercizi algebra relazionale
  14. 14. Divisione L’operatore di divisione non è un operatore di base, ma  p p , può essere derivato dagli operatori che già conosciamo. In particolare: p r ÷ s  ≡ r ÷ s  ≡ PROJECT [X‐Y] r PROJECT [X‐ ] [ MINUS PROJECT [X‐Y] PROJECT [X‐ ] [ ( ( (PROJECT [X‐Y] r) x s) ( ( (PROJECT [X‐ MINUS r) S ) 14 Basi di Dati ‐ Esercizi algebra relazionale
  15. 15. Divisione r = PROJECT [MATR, NUM‐PROG]  r = PROJECT [MATR, NUM‐ ASSEGNAMENTO MATR NUM‐PROG NUM‐ (PROJECT [MATR] r) x s 1 3 MATR NUM‐ NUM‐PROG 1 4 1 3 2 3 1 4 3 4 2 3 s = PROJECT [NUM‐PROG]              s = PROJECT [NUM‐ 2 4 PROGETTO 3 3 NUM‐ NUM‐PROG 3 4 3 4 15 Basi di Dati ‐ Esercizi algebra relazionale
  16. 16. Divisione (( ( (PROJECT [MATR] r) x s ) ‐ ( (PROJECT [MATR] r) x s ) ‐ r [ ] ) ) MATR NUM‐ NUM‐PROG 2 4 PROJECT [MATR] r PROJECT [MATR] r 3 3 MINUS  PROJECT [MATR] PROJECT [MATR] ( ( (PROJECT [MATR] r) x s ) – ( ( (PROJECT [MATR] r) x s ) – r) MATR PROJECT [MATR] PROJECT [MATR] ( ( (PROJECT [MATR] r) x s ) – ( ( (PROJECT [MATR] r) x s ) – r) 1 MATR 2 3 16 Basi di Dati ‐ Esercizi algebra relazionale
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×