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

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Uni.TemaEsame16022007 History

Hide minor edits - Show changes to output

Changed line 83 from:
''Tutti - quelli che hanno comandato almeno 2 navi''
to:
''Tutti - quelli che hanno comandato almeno 2 navi (non è T-NO????)''
Changed lines 1-2 from:
(:Title Basi di Dati temi d'esame:)\\
%center bgcolor=#fff0f5 border='1px solid #cccccc' font-size=12pt padding=3px define=soluzione%
to:
(:Title Basi di Dati: temi d'Esame:)
Added lines 4-6:

%titolo%''':: Basi di Dati: temi d'Esame'''
Changed lines 47-49 from:
%soluzione%T:=&#961;'_IDArmatore, CFComandante <- ID,CF (TUTTI)
to:
%soluzione%T:=&#961;'_IDArmatore, CFComandante <- ID,CF_' (TUTTI)
Changed lines 71-74 from:
%soluzione%T2:=&#961;'_CFC,N_'(T)
to:
%soluzione%T2:=&#961;'_CFC,N <- CFComandante, Nome_'(T)
Changed line 84 from:
%soluzione%RIS:='_CFComandante_'(TUTTI - NO)
to:
%soluzione%RIS:=&#960;'_CFComandante_'(TUTTI - NO)
Added lines 1-84:
(:Title Basi di Dati temi d'esame:)\\
%center bgcolor=#fff0f5 border='1px solid #cccccc' font-size=12pt padding=3px define=soluzione%
[[Torna alla pagina di Basi di Dati->Basi di Dati]]
----
%center%%bgcolor=#d9e4f2 font-size=11pt padding=4px padding-left=50px padding-right=50px% 16 febbraio 2007


'''NAVE({+Nome,IDArmatore+}, Lunghezza, NumPasseggeri, NumPiani, NumCFComandante)'''\\
'''ARMATORE({+ID+}, Nome, Cognome)'''\\
'''COMANDANTE({+CF+}, Nome, Cognome, DataNascita)'''


!!!%blue%SQL

!!%red%Determinare il numero di navi che possono ospitare più di 2500 passeggeri comandate da un comandante nato prima del 20 agosto 1968%black%\\

SELECT COUNT(DISTINCT Nome)\\
FROM Nave JOIN Comandante ON CFComandante=CF\\
WHERE DataNascita<= 20/08/1968 AND
->NumPasseggeri>2500



!!%red%Determinare l'ID, nome e cognome dell'armatore con il maggior numero di navi%black%\\

SELECT A.ID, A.Nome, A.Cognome\\
FROM Armatore AS A JOIN Nave AS N ON CF=CFComandante\\
GROUP BY A.ID\\
HAVING COUNT(N.Nome) >= ALL
-->SELECT COUNT(Nome)
-->FROM Nave
-->GROUP BY IDArmatore



!!!%blue%ALGEBRA

!!%red%Determinare tutte le coppie IDArmatore-CFComandante che non sono mai stati in relazione (il comandante non ha mai prestato servizio su una nave dell'armatore)%black%\\

''Proietto tutte le coppie POSSIBILI ''

%soluzione%TUTTI:=&#960;'_ID,CF_'(ARMATORE X COMANDANTE)

''Li rinomino''


%soluzione%T:=&#961;'_IDArmatore, CFComandante <- ID,CF (TUTTI)


''Ora proietto solo le reali coppie''


%soluzione%R:=&#960;'_IDArmatore, CFComandante_'(NAVE)


''Tutti i possibili - i reali = quelli mai incontrati''

%soluzione%RIS:= T - R

!!%red%Determinare il CF dei comandanti che hanno comandato solo una nave in tutta la loro carriera%black%\\

''Proietto i comandanti e le loro navi''


%soluzione%T:=&#960;'_CFComandante, Nome_'(NAVE)


''Ne faccio una copia''


%soluzione%T2:=&#961;'_CFC,N_'(T)



''Trovo coloro che hanno comandato almeno 2 navi''


%soluzione%NO:=&#960;'_CFComandante, Nome_'(T |X|'_CFC=CFComandante ^ Nome <>N_' T2)


''Tutti - quelli che hanno comandato almeno 2 navi''


%soluzione%RIS:='_CFComandante_'(TUTTI - NO)