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)
1. Determinare il codice delle missioni che hannno la minima durata
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))
2. Determinare il codice degli agenti che hanno partecipato con lo stesso ruolo ad almeno 2 missioni iniziate nel 2002
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)
Torna alla pagina di Basi di Dati