Sei sulla pagina 1di 1

Esercitazione SQL

14-11-2018

Sia data la seguente basi di dati:

ATTORI (CodAttore, Nome, AnnoNascita, Nazionalità);

RECITA (CodAttore, CodFilm)


FK: CodAttore → ATTORI(CodAttore)
FK: CodFilm → FILM(CodFilm)

FILM (CodFilm, Titolo, AnnoProduzione, Nazionalità, Regista, Genere)

SALE (CodSala, Posti, Nome, Città)

PROIEZIONI (CodProiezione, CodFilm, CodSala, Incasso,


DataProiezione)
FK: CodFilm → FILM(CodFilm)
FK: CodSala → SALE(CodSala)

Si scrivano le procedure per ottenere le seguenti informazioni:


1) Il nome di tutte le sale in una data città;
2) Il titolo ed il genere di film proiettati in una dato giorno
3) Il titolo dei film in cui recitano due specifici attori
4) Per ogni film di un dato regista, il titolo del film, il numero totale di proiezioni in una data
città e il relativo incasso
5) I titoli dei film che non sono mai stati proiettati in una data città e quelli che sono stati proiettati
SOLO in quella città (le operazioni devono essere fatte entrambe o nessuna delle due).
6) Il nome degli attori di una data nazionalità che non hanno mai recitato in film di un dato regista

Date inoltre le sequenti tabelle aggregate:

STATS_FILM (Cod_Film, N_Attori, N_citta_proiezioni, tot_incasso)

Dove N_Attori è il numero di attori che hanno recitato in un film e N_citta_proiezioni, il numero di
città dove il fim è stato proiettato.

STATS_ATTORI(CodAttore, Cognome, Nome, N_Film)

Dove N_Film è il numero di film in cui l’attore ha recitato e tot_incasso quanto hanno incassato in
totale quei film.

Si realizzino i trigger per mantenere allineate le due tabelle. Nello specifico, il primo trigger si deve
attivare durante l’inserimento in PROIEZIONI, il secondo su RECITA.
Si realizzi inoltre un trigger che impedisca l’inserimento in PROIEZIONI se un dato film è proiettato
in più di 100 sale diverse.

Potrebbero piacerti anche