Un esercizio svolto completo per costruire diagramma ER e Schema Logico. In questo video si parla di relazioni N-N e di chiavi esterne. Link al testo: bit.ly/3SIxp0A
Un museo può esistere ma non avere ancora opere, ad esempio prima della inaugurazione. Non è un errore, si tratta di una interpretazione del testo. Può andare bene anche 1,N, dipende dalle specifiche di partenza o dalle ipotesi che facciamo.
Dato che nel testo c'è scritto "eventuale data di morte", non dovrebbe comparire un vincolo di cardinalità (0,1) sull'attributo data di morte? se si, come va gestito?
Si tratta di un attributo non obbligatorio.quando viene implementato sul DBMS È sufficiente impostarlo come attributo che ha la possibilità di essere nullo. La cardinalità la imponi solo nelle relazioni tra due entità, non quando imposti un attributo.
Molte opere sono state realizzate da più di un artista così come ci sono alcune opere delle quali non se ne conosce l'autore, per esempio opere molto vecchie come le pitture rupestri, per questo ho messo 0,N
Nella realtà quotidiana è così. Nell'esercizio, però, il testo fissa una situazione differente, e cioè che un'opera possa essere prodotta da un solo artista. Per cui a quello ti devi attenere. In una eventuale verifica, la tua scelta sarebbe considerata un errore, in quanto non rispetta le condizioni impostate. Al contrario: se nel testo non ci fosse questa precisazione, tu avresti potuto fare la tua ipotesi, scriverla e quindi applicarla al diagramma ER e a tutto il resto.
mi scusi, ma credo ci sia un errore nel interpretazione dell'entità Artista: se vien detto di inserire l'eventuale data di morte, non significa che siamo tenuti a inserire una gerarchia di tipo T,E con 2 sotto entità: vivo e morto, andando poi a inserire l'attributo dataMorte solo alla sotto entità Morto? Altrimenti significa che tutte le opere sono associate solo a artisti morti.
Buongiorno, ma perchè id museo, id artista ecc. vengono aggiunti senza che ci sia nessuna informazione che indica di aggiungerli? Perchè sono stati aggiunti? Comunque complimenti, spiegazioni molto chiare
In realtà l’indicazione c’è, ed è la relazione tra Opera e Museo. Quell’attributo si aggiunge proprio perché c’è la relazione 1 a N. Ci serve per sapere il codice identificativo del museo in cui si trova l’opera. Stesso discorso vale per l’artista.
Scusi il disturbo ma non capisco il perché ha scomposto la relazione fra museo e finanziatore, ho capito che l'ha fatto per far si che ci fossero solo cardinalità (1:N) ma non capisco se è obbligatorio da fare oppure no, c'é se lei si fosse fermato a prima della scomposizione sarebbe stato un errore?
Se l'esercizio richiede solo il diagramma ER, a seconda della rchiesta delll'esercizio, puoi lasciarlo così. Se invece devi costruire anche lo schema logico, allora è necessario: quel passaggio ti consente di creare la tabella intermedia tra le due entità in relazione N:N che ti permette di comprendere e strutturare correttamente il database
buongiorno prof, avevo una domanda riguardo alle cardinalità. Perché si ha nel database nella cardinalità Finanziatore-museo ha messo (0,N) e non (1,N)? un finanziatore può donare a nessun museo? per essere considerato un donatore non è obbligatorio donare almeno una volta ad un museo?
Non si tratta di un errore ma di una scelta. Rendendo non obbligatoria la relazione (cardinalità 0,N) consenti all'utente del database di inserire i dati di un finanziatore prima ancora che faccia la donazione. Allora tu potrai dire: "Ma nel testo non è specificato come comportarsi". In mancanza di una chiarezza nel testo dell'esercizio, in una verifica ad esempio, lo studente si preoccuperà di giustificare la scelta fatta e di inserire la cardinalità (0,N) o (1,N) che corrisponde. Spero di essere stato chiaro.
In realtà il nome non deve essere necessariamente lo stesso. L’importante è che nella colonna Artista di Opera ci siano valori dello stesso tipo della chiave primaria della tabella Artista (idArtista in questo caso). In termini pratici, devi assegnare all’opera un artista che è già presente nella tabella artista.
Diciamo che nella composizione dello schema logico bisognerebbe mettere dei vincoli di Foreign Key (chiave esterna) che collega l'attributo "artista" della relazione "opera" alla chiave primaria della relazione artista, ossia "idArtista" es: (vincolo di Fk: Artista references Artista(idArtista)). Quindi di fatto la chiave esterna di opera è proprio l'id dell'artista ma non è importante che abbiano lo stesso nome