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

3 novembre 2006

AUTORE (ID Nome, Cognome)
ARTICOLO(ID, Titolo, NumPagine, NomeRivista, NumRivista, Data)
PUBBLICA (IDAutore, IDArticolo)

Algebra

Determinare il nome di tutte le riviste dove ha pubblicato un articolo di almeno 5 pagine il professor Mario Rossi

Seleziono Mario Rossi dalla tabella Autore e faccio il join con PUBBLICA per sapere l'ID dell'articolo che ha pubblicato

MR:=πIDArticolo(PUBBLICA |X|IDAutore=IDNome='Mario' ^ Cognome='Rossi'AUTORE)

Join tra MR e Articolo. Da questa tabella seleziono le tuple che hanno NumPagine >5 e ne proietto l nome rivista

RISULTATO:= πNomeRivistaNumPagine>=5(MR |X|ID=IDArticoloARTICOLO))

Determinare nome e cognome degli autori che non hanno alcuna pubblicazione che superi le 20 pagine

Join tra PUBBLICA e ARTICOLO. Seleziono le tuple docve NumPagine >20 e ne proietto l'IDArticolo

PMA20:=πIDarticoloNumPagine>20(PUBBLICA|X|IDArticolo=IDARTICOLO))

Ora prendo l'IDArticolo di tutte le pubblicazioni

TUTTI:=πIDArticolo(PUBBLICA)

Ora tutti - quelli che hanno pubblicato + di 20 pagine

PMI20:=TUTTI - PMA20

Join tra coloro che hanno pubblicato meno di 20 pagine e AUTORE per proiettare nome e cognome

RISULTATO:=πNome, Cognome(PMI20 |X|IDAutore=IDAUTORE)

SQL

Determinare nome e cognome degli autori che hanno pubblicato almeno un articolo sulla rivista "ACM"


SELECT Nome,,Cognome
FROM Autore JOIN Pubblica ON ID=IDAutore

JOIN Articolo ON ID=IDArticolo

WHERE NomeRivista='ACM'

Determinare il nome delle riviste che tra il 9 febbraio 2004 e il 12 settembre 2006 hanno pubblicato il maggior numero di pagine

SELECT DISTINCT NomeRivista
FROM Articolo
WHERE Data BETWEEN 09/02/2004 AND 12/09/2006
GROUP BY NomeRivista
HAVING SUM(NumPagine)>=ALL

(SELECT SUM(NumPagine)
FROM Articolo
WHERE Data BETWEEN 09/02/2004 AND 12/09/2006
GROUP BYNomeRivista)

schema E-R


Torna alla pagina di Basi di Dati