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.