Esercizio E-R progettazione concettuale
Ragazzi devo progettare il seguente modello:
Le parole chiavi da me trovate sono:
-Atleti
-Gare
-Allenatore
-Squadre
Il modello che ho progettato sin ora è il seguente:

Non capisco come implementare le seguenti frasi:
1)In una certa data, non si possono svolgere due gare dello stesso tipo; in un certo luogo, non si possono svolgere due gare dello stesso tipo.
2)per le gare in due manche il tracciatore è diverso per ogni manche. Vuol dire che devo fare una generalizzazione di gare?
Grazie a tutti per le risposte!
Si vuole rappresentare la base di dati per la “gestione delle gare di Coppa del Mondo di Sci” secondo le seguenti specifiche: Gli atleti sono individuati da un numero di tessera di FIS (Federazione Italiana Sci) e hanno come attributi principali: cognome, nome, luogo e data di nascita, nazionalità e sesso. Le gare hanno un luogo, una data, un nome della pista, un tipo (SlalomFemminile, SlalomMaschile, GiganteFemminile,….LiberaMaschile). In una certa data, non si possono svolgere due gare dello stesso tipo; in un certo luogo, non si possono svolgere due gare dello stesso tipo. Gli atleti sono raggruppati in squadre nazionali, rispettivamente maschili e femminili, e ogni squadra ha un allenatore, che è individuato con numero di tessera FIS e ha come attributi principali: cognome, nome, luogo e data di nascita e nazionalità. Un allenatore allena un’unica squadra. Ogni gara ha un tracciatore, che è un allenatore; per le gare in due manche il tracciatore è diverso per ogni manche. Per ogni partecipazione di un atleta ad una gara si registra la posizione di arrivo ed il tempo finale; per le gare in due manche si registra anche il tempo di prima manche. Si disegni il modello E-R con tutti i suoi attributi, le chiavi, e le cardinalità per ciascuna relazione introdotta. Del modello E-R si attui la ristrutturazione giustificando le scelte applicate e per ultimo si traduca il modello ristrutturato in un modello relazione dove devono essere specificati i vincoli interrelazionali e intrarelazionali.
Le parole chiavi da me trovate sono:
-Atleti
-Gare
-Allenatore
-Squadre
Il modello che ho progettato sin ora è il seguente:

Non capisco come implementare le seguenti frasi:
1)In una certa data, non si possono svolgere due gare dello stesso tipo; in un certo luogo, non si possono svolgere due gare dello stesso tipo.
2)per le gare in due manche il tracciatore è diverso per ogni manche. Vuol dire che devo fare una generalizzazione di gare?
Grazie a tutti per le risposte!
Risposte
Gare - Possesso - Allenatore?
Nel senso che ogni gara ha un tracciatore, che è un allenatore. E' sbagliato?
Mi sfuggiva questo nesso, per quello chiedevo


Io di solito penso al sostantivo e alle sue proprietà.
Esempio la gara in prima o seconda? Allora ha un tipo e quindi la tab ha un type_id per esempio
Esempio la gara in prima o seconda? Allora ha un tipo e quindi la tab ha un type_id per esempio

Ho capito. In genere allora quando è che devo pensare ad una specializzazione? Inoltre come implemento l'altra frase, come faccio a dire che in un certo luogo non si possono fare più di due gare? DEvo usare le cardinalità?
Io userei una chiave primaria con luogo + gara così il db ti impedisce di suo di avere un luogo con più gare.
In teoria non specializzi ma fai questo ragionamento: ho degli oggetti che hanno proprietà e fanno azioni (le chiavi primarie) .
Le rende più specifiche possibili eliminando quello che è comune e lo metto in una tabella "comune".
Non so se mi spiego però
In teoria non specializzi ma fai questo ragionamento: ho degli oggetti che hanno proprietà e fanno azioni (le chiavi primarie) .
Le rende più specifiche possibili eliminando quello che è comune e lo metto in una tabella "comune".
Non so se mi spiego però
Quindi per dire che non si possono svolgere gare in stesse date e nello stesso luogo metto come chiave primaria luogo+data+gara. Fin qui ci sono.
Non capisco però la seguente frase
Non capisco però la seguente frase

"Luc@s":
In teoria non specializzi ma fai questo ragionamento: ho degli oggetti che hanno proprietà e fanno azioni (le chiavi primarie) .
Le rende più specifiche possibili eliminando quello che è comune e lo metto in una tabella "comune".
Non so se mi spiego però
Mi spiego meglio.
Di solito uso questa logica.
1. Definisci le entità con cui lavori basandoti
sull'osservazione del problema che ti è stato dato.
2. Elenchi tutte le proprietà delle entità in questione
3. Togli quelle che non ti interessano
4. "Battezza" le relazioni
5. Definisci le cardinalità ( 0..n, 1..n, n...n)
6. Fai un bel disegno. (carta o UML)
Poi passi alla parte implementativa:
7. Trasformi le proprietà in attributi
8. Trasformi le relazioni in chiavi.
Meglio?
Di solito uso questa logica.
1. Definisci le entità con cui lavori basandoti
sull'osservazione del problema che ti è stato dato.
2. Elenchi tutte le proprietà delle entità in questione
3. Togli quelle che non ti interessano
4. "Battezza" le relazioni
5. Definisci le cardinalità ( 0..n, 1..n, n...n)
6. Fai un bel disegno. (carta o UML)
Poi passi alla parte implementativa:
7. Trasformi le proprietà in attributi
8. Trasformi le relazioni in chiavi.
Meglio?

ok ok ora ci sono
. Per i prossimi esercizi procederò nel seguente modo, ti ringrazio dell'aiuto.

Nulla
