esempio modello concettuale
Click here to load reader
-
Upload
silvano-natalizi-itis-alessandro-volta-perugia -
Category
Education
-
view
6.254 -
download
0
description
Transcript of esempio modello concettuale
Modello concettuale della progettazione del database
Esempio di progettazione
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.
L’entità dominante campionato
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
Espansione squadra
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 ?
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
Espansione attributo multivalued giocatori
Mapping dell’entità “giocatore”
Tabella GIOCATORE GIOCATORE(codiceG,nomeG,ruoloG)
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”
La relazione partita
Il giocatore segna gol
Il gol è un’entità
Attributi partita
L’entità partita
Proprietà delle relazioni con partita
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)
Mapping della relazione “gioca”
Tabella “gioca” GIOCA(codiceG,numeroPartita,numCartellini
Gialli,Espulso,minutoIngresso,minutoUscita)
Mapping dell’entità debole “gol”
Tabella GOL GOL(numeroPartita,codiceG,minutoRealizzazione,azione)
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”.