cerca
Basi di Dati: temi d'Esame
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Basi di Dati: temi d'Esame

Torna alla pagina di Basi di Dati


:: Basi di Dati: temi d'Esame

23 gennaio 2007

CAVALLO(Nome, Razza, DataNascita, Colore, NomeMadre, NomePadre)
FANTINO(CF, Nome, Cognome, DataNascita)
PARTECIPAZIONEGARA(NomeGara, NomeCavallo, CFFantino, PosizioneClassifica)

SQL

Determinnare io nome delle gare nelle quali unb cavallo di colore bianco si è classificato tra i primi 10

SELECT NomeGara
FROM Cavallo JOIN Partecipa ON Nome = NomeCavallo
WHERE Colore='Bianco' AND
PosizioneClassifica<=10

Determinare il CF del fantino che ha vinto il maggior nimero di gare

SELECT DISTINCT CFFantino
FROM Partecipazione
WHEREPosizioneClassifica=1
GROUP BYCFFantino
HAVING COUNT(*) >= ALL

SELECT COUNT(PosizioneClassifica)
FROM Partecipazione
WHERE PosizioneClassifica=1
GROUP BY CFFantino

ALGEBRA

Determinare le coppie NomeCavallo-CFFantino che non hanno mai vinto una gara

Proiietto tutte le coppie

TUTTI:=πNomeCavallo, CFFantino (PARTECIPAZIONE)

Ora seleziono i vincitori

V:=πNomeCavallo, CFFantinoPosiozioneClassifica=1 PARTECIPAZIONE)

Ora tutti- quelli che hanno vinto

RIS:=TUTTI - V

Determinare il nome dei fantini che hanno vinto almeno 2 gare

proietto nome cavallo cF del fantino e nome gara delle gare vincenti

P1:=πNomeCavallo, CFFantino, NomeGaraPosizioneClassifica=1PARTECIPAZIONE)

ne faccio una copia

P2:=ρNC, CFF,NG<- NomeCavallo, CFFantino, NomeGara(P1)

Join tra P1 e P2 per trovare il fantino e il cavallo che hanno vinto almeno 2 gare

R:=πCFF(P1 |X|NC=NomeCavallo ^ CFF=CFFantino ^ NG<>NomeGaraP2)

Join con fantino per ottenere il nome

RIS:=πNome(R |X| CF=CFFFANTINO)