esempio modello concettuale

20

Click here to load reader

description

Esempio di una progettazione di un database per gestire di dati delle partite di calcio

Transcript of esempio modello concettuale

Page 1: esempio modello concettuale

Modello concettuale della progettazione del database

Esempio di progettazione

Page 2: esempio modello concettuale

L’entità dominante Il campionato di calcio Quali sono gli attributi che permettono di definire la chiave primaria ?1. L’anno ?2. La serie ? (A, B, C….)3. Anno+serie ? L’anno è un dato ambiguo perché un campionato è come l’anno

scolastico, parte a settembre e finisce a maggio dell’anno successivo! Non sarebbe un problema perché convenzionalmente intenderemo

sempre l’anno di inizio Tuttavia questo dato posso trovarlo come chiave straniera in altre

tabelle. Conviene creare una chiave numerica surrogata Per lasciare aperta la porta dell’inserimento anche dei dati storici dei

campionati del passato posso gestire il valore di questa chiave numerica, magari prevedendo di usare dei numero non progressivi.

Ad esempio uso per il campionato in corso il codice 1000.

Page 3: esempio modello concettuale

L’entità dominante campionato

Page 4: esempio modello concettuale

L’attributo multivalued squadre

Espandiamo l’attributo multivalued in entità Per questa nuova entità devono essere scoperti ed

indicati gli attributi Tra questi attributi occorre comprendere quali sono

candidati per fare da chiave primaria Contemporanemente a questa espansione-

trasformazione dobbiamo creare la relazione binaria tra l’entità di partenza “campionato” e la nuova entità “squadre”.

Occorre indicare il nome della nuova relazione, la sua cardinalità e partecipazione.

Vanno individuato eventuali attributi di tale relazione

Page 5: esempio modello concettuale

Espansione squadra

Page 6: esempio modello concettuale

La chiave primaria di partita

Quale è la chiave primaria ? I codici delle due squadre che s’incontrano ? Il codice del campionato ? La data di svolgimento della partita ? Conviene creare un numero partita come

chiave surrogata ? Una partita è un’entità debole! Potrebbe esistere senza il campionato ?

Senza le squadre ? Senza i giocatori ?

Page 7: esempio modello concettuale

Espansione giocatori

Per ogni squadra devi memorizzare i nomi ed il ruolo dei giocatori che partecipano ad ogni partita di ogni campionato sportivo.

Per la nuova entità “giocatori” scopro tutti gli attributi richiesti e quali tra questi possono fungere da chiave primaria

Conviene anche in questo caso creare una chiave surrogata numerica da usare come chiave primaria

Occorre creare la relazione tra l’entità “squadra” e la nuova entità “giocatore”

Occorre stabilire tutte le proprietà di questa nuova relazione

Page 8: esempio modello concettuale

Espansione attributo multivalued giocatori

Page 9: esempio modello concettuale

Mapping dell’entità “giocatore”

Tabella GIOCATORE GIOCATORE(codiceG,nomeG,ruoloG)

Page 10: esempio modello concettuale

L’attributo multivalued partita

Partita è un attributo multivalued di molte entità: campionato, squadra, giocatore.

Infatti una partita è giocata in un campionato da due squadre e dai giocatori (non tutti) di queste due squadre !

Sembra opportuno vedere questo attributo non come attributo, ma addirittura come relazione quaternaria: riflessiva tra l’entità “squadre”, e in associazione con “campionato” e con “giocatori”

Page 11: esempio modello concettuale

La relazione partita

Page 12: esempio modello concettuale

Il giocatore segna gol

Page 13: esempio modello concettuale

Il gol è un’entità

Page 14: esempio modello concettuale

Attributi partita

Page 15: esempio modello concettuale

L’entità partita

Page 16: esempio modello concettuale

Proprietà delle relazioni con partita

Page 17: esempio modello concettuale

Mapping dell’entità partita

Proviamo a sistemare questa entità difficile da progettare

Tabella Partita: PARTITA(numeroPartita,codiceSq1,codiceSq2,codiceCa,dataP, oraInizioP, oraFineP, stadio, città, arbitro)

Page 18: esempio modello concettuale

Mapping della relazione “gioca”

Tabella “gioca” GIOCA(codiceG,numeroPartita,numCartellini

Gialli,Espulso,minutoIngresso,minutoUscita)

Page 19: esempio modello concettuale

Mapping dell’entità debole “gol”

Tabella GOL GOL(numeroPartita,codiceG,minutoRealizzazione,azione)

Page 20: esempio modello concettuale

Per concludere

Bisogna sistemare la “classifica” Inoltre si debbono espandere gli attributi

multivalued “allenatori”, “presidenti”, “scudetti” È facile. Invece occorre focalizzare la nostra

attenzione sulla “classifica”.