Torna alla pagina di Basi di Dati
:: Basi di dati - Esercizio ::
Query: Missioni
MISSIONE (Codice, Città, DataPartenza, Scopo, Durata)
AGENTE (Codice,Nomr, Cognome, Specializzazione)
PARTECIPA (CodiceMissione, CodiceAgente, Ruolo)
Creo la tabella DUR che ha come colonne il codice mmissione e la rispettivadurata
DUR:=ΠCodice, DataPartenza(MISSIONE)
ora applico ilmetodo per trovare il minimo assoluto
SOLUZIONE:=ΠCodice(DUR) - ΠCodice (DUR |x|Durata>d (ρ c,d <- Codice, Durata(DUR))
creo la tabella M2002 che contiene le tabelle codice e data partenza prese dalla tabella missione e pongo le mie codizioni
M2002:=ΠCodice,DataPartenza (σ DataPartenza >=1/1/2002 ^ DataPartenza<=31/12/2002MISSIONE)
ora join tra M2002 e PARTECIPA per sapere chi ha partecipato in quale ruolo nelle missioni iniziate nel 2002
P:=ΠCodiceMissione,CodiceAgente,Ruolo(PARTECIPA |X|CodiceMissione=CodiceM2002)
ora seguo la procedura per trovare gli ALMENO 2.
faccio 2 copie della tabella P e poi join con condizioni : A1 =A2,R1=R2 ma M1≠M2 cioè stesso agente con stesso ruolo ma in missioni diverse
P1:=ρM1,A1,R1 <- CodiceMissine, CodiceAgente, Ruolo(p)
P2:=ρM2,A2,R2 <- CodiceMissine, CodiceAgente, Ruolo(p)
SOLUZIONE:=ΠCodiceAgente(P1 |X|M1≠M2 ^ A1=A2 ^ R1=R2 P2)