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

Show minor edits - Show changes to markup

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:)

to:

(:Title Basi di Dati: temi d'Esame:)

Added lines 4-6:

:: Basi di Dati: temi d'Esame

Changed lines 47-49 from:

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

to:

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

Changed lines 71-74 from:

T2:=ρCFC,N(T)

to:

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

Changed line 84 from:

RIS:=CFComandante(TUTTI - NO)

to:

RIS:=πCFComandante(TUTTI - NO)

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)