Progetto di Basi di Dati
Realizzazione di un database sul campionato di calcio di serie A (21 pagine formato doc)
Si vuole progettare la base di dati del campionato di Serie A di calcio 2006-07.
Di ogni squadra interessa il nome, la città, i colori sociali e lo sponsor. Ogni squadra è composta da un determinato numero di giocatori di cui si vuole memorizzare numero di tessera, nome, cognome, data di nascita, nazionalità, ruolo e numero; degli allenatori invece interessa numero di tessera, nome, cognome, data di nascita, nazionalità, modulo preferito e reputazione. Di ogni membro di una squadra inoltre si vuole tenere traccia dei dati relativi alla sua carriera, in particolare presenze in Serie A e gol (solo per i giocatori attuali), aggiornate fino alla stagione 2005-06. Per ogni giocatore, inoltre, interessa memorizzare gli eventuali trofei da lui conquistati in carriera; per le squadre, invece, si vogliono registrare i titoli conquistati e l’anno della relativa vittoria. I giocatori possono trasferirsi da una squadra all’altra durante il campionato, per cui interessa anche fornire l’eventuale costo e data del trasferimento di un calciatore da una squadra ad un’altra. Di ogni partita si vuole memorizzare il codice identificativo, le due squadre che l’hanno disputata, la giornata e il risultato finale. Interessano infine il minuto e il giocatore coinvolto negli eventi salienti di un incontro, oltre alla prestazione di tutti i giocatori in una partita, ovvero voto, ammonizioni ed espulsioni ottenute.
Progettazione concettuale
Il modello E-R scelto per la concettualizzazione del problema è quello riportato in figura 1. Note sulla stesura dello schema:
• gli attributi comuni di giocatori e allenatori suggeriscono di creare una gerarchia totale composta da un’entità padre, chiamata Tesserato, e dalle due entità figlie, Allenatore e Giocatore, che hanno i loro attributi esclusivi;
• l’attributo presenze di Tesserato indica le presenze in serie A per i giocatori e le partite allenate in serie A per gli allenatori;
• il Trasferimento può essere modellato come relazione tra squadre e giocatore; tuttavia si è preferito creare un’entità che tenga conto delle possibili ripetizioni (seppur rare) delle parti in causa nel trasferimento;
• gli eventi salienti di una partita sono stati concettualizzati come un’entità avente come chiave Giocatore, Partita e minuto; l’attributo tipo identifica il tipo di evento (gol, occasione da rete o autogol).
Progettazione logica
Eliminazione delle generalizzazioni
L’unica gerarchia presente è stata eliminata attraverso la soluzione separatista, che semplifica tutte le operazioni relative alle entità figlie, le cui relazioni sono maggiori rispetto a quelle dell’entità padre. Per questo motivo la relazione tra Tesserato e Squadra viene sdoppiata in due relazioni con le entità figlie (Fig. 2).