Swappa : Uni / Basi di Dati esercizio missioni
Creative Commons License

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,DataPartenzaDataPartenza >=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

(Printable View of http://www.swappa.it/wiki/Uni/EsBDDMissioni)