• Non ci sono risultati.

ESERCIZIO DI PROGETTAZIONE DI BASI DI DATI 18 Novembre 2020

N/A
N/A
Protected

Academic year: 2021

Condividi "ESERCIZIO DI PROGETTAZIONE DI BASI DI DATI 18 Novembre 2020"

Copied!
3
0
0

Testo completo

(1)

ESERCIZIO DI PROGETTAZIONE DI BASI DI DATI 18 Novembre 2020

Si vuole progettare una base di dati per un sistema di gestione delle edizioni del Giro d’Italia di ciclismo. Per ogni edizione, si vuole tenere traccia dell’anno di svolgimento (si svolge esattamente 1 edizione ogni anno), del nome/cognome dell’organizzatore, del numero complessivo dei km percorsi. Inoltre, si vogliono gestire le informazioni delle rose delle squadre partecipanti ad ogni edizione: ogni rosa dispone di un nome della squadra (es. “Team Ineos”), fa riferimento ad una ed una sola edizione del Giro, ed è composta da una lista di ciclisti. Ogni ciclista dispone di un codice (univoco), nome, cognome, anno di nascita e può avere zero, una o più foto associate (una foto consiste di nome e file). Lo stesso ciclista può far parte di più rose.

Ogni edizione del Giro è composta da una serie di tappe, ciascuna caratterizzata da un numero progressivo (univoco all’interno di un’edizione ma non a livello globale), una località di partenza, una località di arrivo, un lunghezza in km. Per ogni località (di partenza o di arrivo) si vuole tenere traccia del nome, della regione, del numero di abitanti. Una stessa località può essere partenza o arrivo in edizioni differenti del Giro. Le tappe possono appartenere a due categorie (e solo a quelle): tappe in linea o cronosquadre. Delle tappe in linea si vogliono conoscere la descrizione e la difficoltà. Per le cronosquadre, si vuole tenere traccia della percentuale di km in pianura. Inoltre, si vuole tenere traccia del vincitore di ogni tappa: nel caso delle tappe in linea, il vincitore è un ciclista, nel caso delle cronosquadre, il vincitore è una rosa.

Infine, si vogliono gestire le classifiche associate ad ogni edizione: ogni classifica dispone di un nome (es. maglia rosa/maglia verde/etc) ed un regolamento. Si vuole tenere traccia del posizionamento dei ciclisti nelle classifiche disponibili in ogni edizione.

a) (6pt) Costruire il modello Entità-Relazione (E-R) della base di dati.

b) (4pt) Tradurre il modello E-R nel modello logico relazionale, preferendo (NELLA TRADUZIONE DI EVENTUALI GENERALIZZAZIONI, E SOLO IN QUESTE) la soluzione che minimizzi la presenza di valori NULL nelle tabelle generate. Indicare i vincoli di integrità referenziale tra gli attributi dello schema.

c) (2pt) Il campo “numero complessivo dei km” di un’edizione è una ridondanza concettuale, in quanto l’informazione può essere ottenuta anche sommando la lunghezza delle singole tappe. Valutare il costo, con o senza la ridondanza, delle seguenti operazioni:

Ø Aggiungere una nuova tappa ad un’edizione data in input (Batch, 1 volte/mese).

Ø Calcolare la lunghezza complessiva di un’edizione data in input (Interattivo, 5 volte volte/mese).

Tabella dei volumi: 20 tappe per edizione, 10 edizioni, a(peso operazioni scrittura)=2, w

I

(peso

operazioni interattive)=1, w

B

(peso operazioni batch)=0.5

(2)

MODELLO ER

MODELLO LOGICO

EDIZIONE(Anno, CognomeOrg, NomeOrg, NumeroKm) LOCALITA(Nome, Regione, NumAbitanti)

TAPPA(Numero, AnnoEdizione, Lunghezza, NomeLocPartenza, RegioneLocPartenza, NomeLocArrivo, RegioneLocArrivo)

TAPPA_LINEA(Numero, AnnoEdizione, Difficolta, Descrizione, CodVincitoreCiclista) TAPPA_CRONO(Numero, AnnoEdizione, Percentuale, NomeSquadra)

ROSA(NomeSquadra,AnnoEdizione) CICLISTA(Codice, Cognome, Nome, Anno) FOTO(Nome, File, CodCiclista)

CLASSIFICA(Nome, AnnoEdizione, Regolamento)

FORMAZIONE(CodCiclista, NomeSquadra, AnnoEdizione)

POSIZIONAMENTO(NomeClassifica, AnnoEdizione,CodCiclista,Posizione)

(3)

ANALISI DEI COSTI

OP1: Aggiungere una tappa ad un’edizione esistente (Batch, 1 volte/mese).

OP2: Visualizzare la lunghezza di un’edizione esistente (Interattivo, 5 volte volte/mese).

Analisi del Costo Operazionale

Costi senza ridondanza

o Costo(OP1)=1*0.5*(2*2+0)=2 o Costo(OP2)=5*1*(0+20+20)=200 o Costo Totale(senza ridondanza)=202

Costi con ridondanza

o Costo(OP1)=1*0.5*(2*3+0)=2 o Costo(OP2)=5*1*(0+1)=25

o Costo Totale(con ridondanza)=27

SpeedUp=Costo (senza ridondanza)/Costo(con ridondanza)=202/27= 7.48

Analisi Memoria

Memoria (senza ridondanza) = X bytes

o Memoria (con ridondanza) = X + Num_Edizioni * Dimensione_campo_aggiuntivo

= X + 10 * 4 = 40 bytes o Overhead Memoria= 40 bytes

Conclusioni

La ridondanza migliora considerevolmente il costo operazionale, a fronte di un’occupazione di

memoria molto ridotta. Si conclude che la ridondanza concettuale possa essere mantenuta

all’interno dello schema E-R.

Riferimenti

Documenti correlati

Completa le didascalie riferite alla cucina inserendo le funzioni degli oggetti.. Collega ogni elemento del bagno con il

Completa le didascalie riferite alla cucina inserendo i nomi degli oggetti.. Collega ogni elemento del soggiorno con il

Prenotazione(CodTes, CodE, Data, Ora, Costo, Urgente) RuolodelMedico(CodFisc, DataInizio, DataFine*, Ruolo). Traduzione della relazione

Ridondanza e Anomalie In tutte le righe in cui compare uno studente è ripetuta la sua

Una decomposizione conserva le dipendenze se ciascuna delle dipendenze funzionali dello. schema originario è presente in una delle

Ogni giocatore sia identificato univocamente da un codice e sia caratterizzato da un nome, un cognome, un sesso, un anno di nascita, una nazionalit` a (per semplicit` a,

Tale punto si connette a (0, −1) con un arco nel

Ogni francobollo nuovo può appartenere a più serie; quest’ultima può essere composta da un numero arbitrario (>1) di francobolli nuovi.. Inoltre, la piattaforma gestisce