leggi
Transcript
leggi
Esercizio 1 Definire uno schema E-R adatto alla realizzazione di una base di dati per il campionato italiano di calcio stagione 2013/14. Tra le informazioni da memorizzare abbiamo quelle relative a giocatori ed allenatori, entrambi caratterizzati da codice fiscale, nome e cognome. Inoltre, per i calciatori si vuole memorizzare il ruolo in cui giocano, mentre per ciascun allenatore si vuole conoscere quante squadre di calcio differenti ha allenato nelle precedenti stagioni. Ogni allenatore avrà una quadra da allenare; tuttavia, per ragioni di calcio-mercato, qualche giocatore potrebbe non giocare in nessuna squadra. Chiaramente, ogni squadra ha un solo allenatore ed almeno 11 giocatori. Una squadra è caratterizzata dal suo nome e dalla serie di appartenenza (‘A’, ‘B’ o ‘C’). Ad inizio campionato, si vuole memorizzare l’intero calendario delle partite, tenendo presente che esse sono caratterizzate da: numero giornata, data, squadra che gioca in casa e squadra che gioca fuori casa. Man mano che si svolgono le partite, si vuole memorizzare l’esito delle stesse mediante i goal fatti dalle varie squadre. Esercizio 2 nonché Soluzione Esercizio 1 Dato il seguente schema E-R, definire un modello relazionale equivalente. La generalizzazione è Totale/Esclusiva. Esercizio 3 nonché Soluzione Esercizio 2 Si consideri il seguente schema relazionale: Partita(nGiornata, Squadra-inCasa, goalSquadraInCasa*, Squadra-ospite, goalSquadraOspite*, data) Squadra(Nome, Serie) Giocatore(CF, Nome, Cognome, Ruolo, Squadra-diGioco*) Allenatore(Squadra-allenata, CF, Nome, Cognome, nSquadreAllenate) Formulare in SQL le seguenti interrogazioni: 1. L’elenco delle squadre che giocano in serie ‘A’ e che hanno fatto almeno 5 goal in qualche partita giocata fuori casa. 2. Nome e cognome dei giocatori che giocano in squadre di serie ‘B’, le quali sono allentate da allenatori che hanno già allentato esattamente alte 4 squadre. 3. Il numero totale di goal fatti in casa dalla ‘Fiorentina’. Soluzione Esercizio 3 Query 1: SELECT Nome as NomeSquadra FROM Squadra, Partita WHERE Serie = ‘A’ Squadra-ospite = Nome AND goalSquadraOspite >= 5; Query 2: SELECT G.Nome, G.Cognome FROM Giocatore G, Squadra S, Allenatore A WHERE G.Squadra-diGioco = S.Nome AND S.Serie = ‘B’ AND S.Nome = A.Squadra-Allenata AND A.nSquadreAllenate = 4; Query 3: SELECT sum(goalSuadraInCasa) as GoalFattiInCasadallaFiorentina FROM Partita WHERE Squadra-inCasa = ‘Fiorentina’;