SlideShare a Scribd company logo
1 of 16
Download to read offline
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           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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

More Related Content

Similar to C2es Es Algebra

Coding Gym: divertirsi e migliorarsi a colpi di algoritmi - Marco Arena - Cod...
Coding Gym: divertirsi e migliorarsi a colpi di algoritmi - Marco Arena - Cod...Coding Gym: divertirsi e migliorarsi a colpi di algoritmi - Marco Arena - Cod...
Coding Gym: divertirsi e migliorarsi a colpi di algoritmi - Marco Arena - Cod...Codemotion
 
Coding Gym: divertirsi e migliorarsi a colpi di algoritmi by Marco Arena
Coding Gym: divertirsi e migliorarsi a colpi di algoritmi by Marco ArenaCoding Gym: divertirsi e migliorarsi a colpi di algoritmi by Marco Arena
Coding Gym: divertirsi e migliorarsi a colpi di algoritmi by Marco ArenaCodemotion
 
I Graph Database: analisi del comportamento degli utenti
I Graph Database: analisi del comportamento degli utentiI Graph Database: analisi del comportamento degli utenti
I Graph Database: analisi del comportamento degli utentiThinkOpen
 
Basi di Dati - B1 - La progettazione delle basi di dati
Basi di Dati - B1 - La progettazione delle basi di datiBasi di Dati - B1 - La progettazione delle basi di dati
Basi di Dati - B1 - La progettazione delle basi di datiMajong DevJfu
 
Ingegneria Del Software Schedule, Progetto
Ingegneria Del Software   Schedule, ProgettoIngegneria Del Software   Schedule, Progetto
Ingegneria Del Software Schedule, ProgettoAlartzero
 

Similar to C2es Es Algebra (6)

D4 Dderivati
D4 DderivatiD4 Dderivati
D4 Dderivati
 
Coding Gym: divertirsi e migliorarsi a colpi di algoritmi - Marco Arena - Cod...
Coding Gym: divertirsi e migliorarsi a colpi di algoritmi - Marco Arena - Cod...Coding Gym: divertirsi e migliorarsi a colpi di algoritmi - Marco Arena - Cod...
Coding Gym: divertirsi e migliorarsi a colpi di algoritmi - Marco Arena - Cod...
 
Coding Gym: divertirsi e migliorarsi a colpi di algoritmi by Marco Arena
Coding Gym: divertirsi e migliorarsi a colpi di algoritmi by Marco ArenaCoding Gym: divertirsi e migliorarsi a colpi di algoritmi by Marco Arena
Coding Gym: divertirsi e migliorarsi a colpi di algoritmi by Marco Arena
 
I Graph Database: analisi del comportamento degli utenti
I Graph Database: analisi del comportamento degli utentiI Graph Database: analisi del comportamento degli utenti
I Graph Database: analisi del comportamento degli utenti
 
Basi di Dati - B1 - La progettazione delle basi di dati
Basi di Dati - B1 - La progettazione delle basi di datiBasi di Dati - B1 - La progettazione delle basi di dati
Basi di Dati - B1 - La progettazione delle basi di dati
 
Ingegneria Del Software Schedule, Progetto
Ingegneria Del Software   Schedule, ProgettoIngegneria Del Software   Schedule, Progetto
Ingegneria Del Software Schedule, Progetto
 

More from Majong DevJfu

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA CloudMajong DevJfu
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processesMajong DevJfu
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product lineMajong DevJfu
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformationMajong DevJfu
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven ArchitectureMajong DevJfu
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural stylesMajong DevJfu
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architectureMajong DevJfu
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a productMajong DevJfu
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 

More from Majong DevJfu (20)

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Uml3
Uml3Uml3
Uml3
 
Uml2
Uml2Uml2
Uml2
 
6
66
6
 
5
55
5
 
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
 
3
33
3
 
2
22
2
 
1
11
1
 
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sand
 
26 standards
26 standards26 standards
26 standards
 

C2es Es Algebra

  • 1. Basi di Dati Basi di Dati Esercizi di algebra relazionale
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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