Uni.TemaEsame16022007 History

Hide minor edits - Show changes to markup

January 14, 2008, at 06:55 PM by baby -
Changed lines 47-49 from:

T:=ρ'_IDArmatore, CFComandante <- ID,CF (TUTTI)

to:

T:=ρIDArmatore, CFComandante <- ID,CF (TUTTI)

January 14, 2008, at 06:54 PM by baby -
Changed lines 71-74 from:

T2:=ρCFC,N(T)

to:

T2:=ρCFC,N <- CFComandante, Nome(T)

January 14, 2008, at 06:53 PM by baby -
Changed line 84 from:

RIS:=CFComandante(TUTTI - NO)

to:

RIS:=πCFComandante(TUTTI - NO)

January 14, 2008, at 06:53 PM by baby -
Added lines 1-84:

(:Title Basi di Dati temi d'esame:)
Torna alla pagina di Basi di Dati


16 febbraio 2007

NAVE(Nome,IDArmatore, Lunghezza, NumPasseggeri, NumPiani, NumCFComandante)
ARMATORE(ID, Nome, Cognome)
COMANDANTE(CF, Nome, Cognome, DataNascita)

SQL

Determinare il numero di navi che possono ospitare pił di 2500 passeggeri comandate da un comandante nato prima del 20 agosto 1968

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

NumPasseggeri>2500

Determinare l'ID, nome e cognome dell'armatore con il maggior numero di navi

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

ALGEBRA

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)

Proietto tutte le coppie POSSIBILI

TUTTI:=πID,CF(ARMATORE X COMANDANTE)

Li rinomino

T:=ρ'_IDArmatore, CFComandante <- ID,CF (TUTTI)

Ora proietto solo le reali coppie

R:=πIDArmatore, CFComandante(NAVE)

Tutti i possibili - i reali = quelli mai incontrati

RIS:= T - R

Determinare il CF dei comandanti che hanno comandato solo una nave in tutta la loro carriera

Proietto i comandanti e le loro navi

T:=πCFComandante, Nome(NAVE)

Ne faccio una copia

T2:=ρCFC,N(T)

Trovo coloro che hanno comandato almeno 2 navi

NO:=πCFComandante, Nome(T |X|CFC=CFComandante ^ Nome <>N T2)

Tutti - quelli che hanno comandato almeno 2 navi

RIS:=CFComandante(TUTTI - NO)