1 Soluzione esercizio 1 del 27/06/2005 Riportiamo e discutiamo i

Transcript

1 Soluzione esercizio 1 del 27/06/2005 Riportiamo e discutiamo i
1
Soluzione esercizio 1 del 27/06/2005
Riportiamo e discutiamo i punti fondamentali; in alcune entità gli attributi semplici sono omessi.
1 Le fotografie hanno un codice identificativo e una descrizione. Una fotografia è relativa ad un luogo. Ogni
luogo, che ha una descrizione ed una tipologia, è identificato da un codice che è univoco all’interno della
provincia alla quale il luogo appartiene. La provincia ha una sigla e una descrizione.
Soluzione : Conviene introdurre Provincia come entità in quanto ha un identificatore (si può ovviamente
considerare la sigla come univoca e quindi come identificatore di provincia) ed una descrizione.
DESCR.
FOTOGRAFIA
COD
(1,1)
DEL
(1,N)
DESCR.
COD
DESCR.
LUOGO
(1,1)
IN
(1,N)
SIGLA
PROVINCIA
2 Una fotografia è scattata con una macchina fotografica, identificata dalla marca e dal modello, che può essere
analogica o digitale. Per le macchine digitali occorre indicare la capacità del sensore e la potenza dello
zoom ottico; per le macchine analogiche la marca dell’ottica montata .
Soluzione : È evidente che per descrivere macchina fotografica conviene introdurre una specializzazione
in analogica e digitale.
MODELLO
MARCA
MACCHINA
(1,N)
SCATTO
(1,1)
FOTOGRAFIA
(T,E)
DIGITALE
ANALOGICA
3 Una fotografia fa parte di un servizio fotografico. Un servizio fotografico è realizzato da un fotografo, ha
una data ed una descrizione; in una certa data, un fotografo può realizzare un solo servizio fotografico;
un servizio fotografico contiene da 5 a 100 fotografie.
I fotografi e gli utenti sono descritti dagli usuali dati anagrafici; inoltre, gli utenti hanno anche un nomeutente, ovviamente unico.
Soluzione : Per i fotografi e gli utenti si introduce una entità comune UTENTE/FOTOGRAFO che deve
essere specializzata in UTENTE, in quanto solo per tale entità é valido l’identificatore nomeutente.
Conviene inoltre introdurre anche la specializzazione FOTOGRAFO in quanto il fotografo, anche se non
ha degli attributi propri viene utilizzato nella descrizione del servizio fotografico.
L’entità UTENTE/FOTOGRAFO può essere anche chiamata PERSONA: il fatto che siano fotografi ed
utenti si vede dalla gerarchia di generalizzazione.
2
FOTOGRAFIA
(1,1)
IN
SERVIZIO
FOTOGR.
(5,100)
DESCRIZIONE
(1,1)
DI
(1,N)
DATA
FOTOGRAFO
NOMEUTENTE
UTENTE
(t,s)
CF
DATIANAGRAFICI
UTENTE/
FOTOGRAFO
4 Il sistema informativo permette l’accesso ad utenti che possono esprimere un voto per le fotografie, con il
vincolo che un utente voti una sola volta per una fotografia. Ogni voto ha la data in cui viene espresso e
può essere corredato da più motivazioni.
Soluzione : Il voto riguarda un utente ed una fotografia, quindi viene espresso tramite una associazione
binaria che chiamiamo VOTAZIONE tra UTENTE e FOTOGRAFIA. Si noti che tale associazione descrive
solo il legame logico tra una foto ed un utente (ovvero solo il fatto che un utente ha votato per una certa
foto); per esprimere il valore del voto occorre mettere un attributo voto per tale associazione; inoltre si
aggiunge su tale associazione un attibuto data e motivazione (come attributo multiplo). Possiamo
assumere che VOTAZIONE sia molti-a-molti: un utente vota più fotografie e, viceversa, su una foto
verranno fatte più votazioni; assumiamo inoltre che entrambe le entità partecipino in modo opzionale.
VOTO
FOTOGRAFIA
(0,N)
DATA
VOTAZIONE
(0,N)
UTENTE
MOTIVAZIONI(1,N)
L’associazione binaria VOTAZIONE esprime già il vincolo che “un utente voti una sola volta per una
fotografia”: è inutile reificare tale associazione.
5 Aggiungere allo schema E/R il seguente vincolo, relativo ai voti espressi dagli utenti: in una certa data, un
utente può esprimere al massimo un solo voto.
Soluzione : Il vincolo equivale a dire che “in una certa data, un utente può effettuare al massimo una
votazione”, ovvero che VOTAZIONE deve essere identificato da data e da UTENTE. Allora si reifica
l’associazione (si noti che per definizione l’identificatore di VOTAZIONE è UTENTE e FOTOGRAFIA:
tale identificatore eve restare perchè deve continuare ad essere valido il vincolo che “un utente voti una
sola volta per una fotografia”):
3
(0,N)
FOTOGRAFIA
HA
(1,1)
VOTAZIONE
VOTO
(1,1)
DI
(0,N)
UTENTE
(0,N)
UTENTE
DATA
MOTIVAZIONI(1,N)
e quindi si aggiunge l’altro identificatore formato da data e da UTENTE.
(0,N)
FOTOGRAFIA
HA
(1,1)
VOTAZIONE
VOTO
(1,1)
DI
DATA
MOTIVAZIONI(1,N)
6 Il sistema informativo permette anche a critici di giornali di effettuare recensioni sui servizi fotografici. Un
critico è caratterizzato dagli usuali dati anagrafici. Il critico scrive una recensione di servizio fotografico
che può fare riferimento ad altre recensioni.
Soluzione : Il critico si può rappresentare come ulteriore specializzazione dell’entità UTENTE/FOTOGRAFO
che a questo punto chiameremo più PERSONA. L’entità CRITICO avrà come attributo il giornale (si noti
che non è necessario rappresentare il giornale come un’entità, in quanto nel testo non viene richiesto di
rappresentare alcuna proprietà del giornale).
Come prima cosa rappresentiamo le recensioni come associazione binaria tra SERVIZIO/FOTOGRAFICO
e CRITICO; possiamo assumere che sia una associazione molti-a-molti: un critico fa più di una recensione e, viceversa, su un servizio fotografico verranno fatte più recensioni. Inoltre, anche se non richiesto
esplicitamente, per un discorso simile a quello fatto al punto 4. sulle votazioni, tale associazione avrà un
attributo testo che rappresenta il testo della recensione.
FOTOGRAFO
UTENTE
GIORNALE
CRITICO
TESTO
(1,N)
RECENSIONE
NOMEUTENTE
(t,s)
CF
DATIANAGRAFICI
PERSONA
(0,N)
SERVIZIO
FOTOGR.
Aggiungiamo adesso a tale schema il fatto che “una recensione di un servizio fotografico può fare riferimento ad altre recensioni”; in altre parole si vuole rappresentare una sorta di bibliografia della recensione,
nella quale vengono citate altre recensioni. Si noti che i riferimenti sono ad altre recensioni e non ad altri
servizi fotografici, quindi una ternaria del tipo
4
GIORNALE
TESTO
RECENSIONE
(1,N)
CRITICO
SERVIZIO
RIFERITO
SERVIZIO
RECENSITO
(0,N)
(0,N)
SERVIZIO
FOTOGR.
non è corretta. Inoltre con l’associazione ternaria, per scrivere una recensione su un articolo fotografico
devo necessariamente fare un riferimento ad un altro servizio fotografico.
Una soluzione corretta è la seguente. Si parte dal fatto che un riferimento è un legame logico tra due recensioni, quindi deve essere espressa come una associazione tra RECENSIONE e se stessa, ovvero come
un anello su RECENSIONE. Ma con il modello E/R non possiamo fare un’associazione tra associazioni,
cioè non posso fare una ssociazione tra RECENSIONE e se stessa. Allora devo reificare l’associazione
RECENSIONE
SERVIZIO
FOTOGR.
(0,N)
A
(1,1)
RECENSIONE
(1,1)
B
(1,N)
CRITICO
RECENSIONE
(1,1)
B
(1,N)
CRITICO
TESTO
e adesso posso fare l’anello su RECENSIONE:
SERVIZIO
FOTOGR.
(0,N)
A
(1,1)
TESTO
(0,N)
(0,N)
E' RIFERITA
SI RIFERISCE
RIFERIMENTO
Si ossesvi che:
• min-card(E’-RIFERITA, RIFERIMENTO) = 0 : una recensione può non essere citata
• max-card(E’-RIFERITA, RIFERIMENTO) = N : una recensione può essere citata più volte
• min-card(SI-RIFERISCE, RIFERIMENTO) = 0 : una recensione può non citare altre recensioni (non ha bibliografia)
• max-card(SI-RIFERISCE, RIFERIMENTO) = N : una recensione può citare più recensioni.