Domanda schema ER Clicca QUI per vedere il messaggio nel forum |
pintu |
Mi sorge un dubbio..Se in uno schema ER ho un associazione binaria di grado 1:N a cui partecipano due entità E1, E2 come mi devo comportare nella traduzione in relazionale?
Supponendo che E1 partecipi al lato 1 e E2 al lato N, dovrò inserire la chiave primaria di E1 in E2 come chiave esterna o il contrario? |
CowBoy |
mmmm.... mi sa che non hai chiaro alcune cose sull'ER e sulla progettazione logica. Prova a guardare di nuovo la teoria sui file del corso:
07MODELLO_ER
07Prog-logica
Se il tuo schema è:
[E1] (1:N) ---- <ASSOCIAZIONE1> ---- (1:N) [E2]
ASSOCIAZIONE1(PRIM_E1, PRIM_E2);
allora la chiave primaria della relazione ASSOCIAZIONE1 è composta dalla chiave primaria di E1 e la chiave primaria di E2.
Se invece il tuo schema è:
[E1] (1:1) ---- <ASSOCIAZIONE1> ---- (1:N) [E2]
E1(PRIM_E1, PRIM_E2);
allora la chiave primaria di E2 diventa chiave esterna nella relazione di E1.
Se hai ancora dei dubbi troverai degli esempi nel materiale che ti ho indicato.
Ciao! |
pintu |
Grazie per la risposta CowBoy. Mi è chiaro il primo esempio che hai messo in quanto in caso di associazione "molti-a-molti" viene creata una nuova relazione che ha come chiave primaria l'insieme delle chiavi primarie delle entità che vi partecipano.
Prendendo invece il tuo secondo esempio, il libro di basi dice l'opposto. E2, che si trova sul lato N, conterrà la chiave primaria di E1 come chiave esterna! |
number15 |
A che pagina del libro? Mi sembra strano che ci sia un errore del genere.
Guarda le slides perché le ricordo belle chiare, con tanto di esempi. |
pintu |
Dal libro di basi di dati, Capitolo 7 pagina 236:
"Traduzione di tipi di associzioni binarie 1:N. (Quindi il secondo esempio messo da CowBoy)
Per ogni tipo di associzione R binaria 1:N si individui la relazione S che rappresenta il tipo di entità partecipante al lato-N del tipo di associazione. Si inserisca in S come chiave esterna la chiave primaria della relazione T che rappresenta l'altro tipo di entità partecipante a R; ciò perchè ogni istanza di entità al lato-N è collegata al più a un'istanza di entità al lato-1 del tipo di associazione. Si inseriscano fra gli attributi di S tutti gli attributi semplici del tipo di associzione 1:N.
Nel nostro esempio S = E2, T = E1 quindi la traduzione diventa:
E2( pkE1, PKE2) il minuscolo sta per chiave esterna
Io ho studiato sul libro e quando sono andato a fare le esercitazioni sulla traduzione di schemi er presenti sul sito del corso mi sono trovato con mille dubbi! Infatti nell'esercitazione viene usato il criterio che ha detto Cowboy, ma il libro dice il contrario!
Tutto questo studio mi sta mandando in fumo il cervello :( |
CowBoy |
Allora la cosa migliore è quella di confrontare i dubbi con più fonti possibili. Anche in questo sito la traduzione viene eseguita secondo quanto ti avevo descritto prima: http://sole.dimi.uniud.it/~massimo....traduzione.html
Guardando il materiale di corsi simili in altre università, la traduzione non cambia... |
pintu |
Si ho fatto anche io una ricerca nel web e praticamente la traduzione viene fatta sempre come hai detto tu. Da notare che il corso è tenuto dalla prof.essa Castano e il libro "Sistemi di basi di dati" è sempre a cura della Castano... Forse era meglio un pò più di "cura"! |
number15 |
In effetti è sbagliato.
Comunque se guardi poi l'esempio è corretto.
Comunque ti consiglio di usare le slides che sono ottime e contengono tutto il necessario ;) |
pintu |
Ho solo un ultimo dubbio sull'esempio presentato nell'esercitazione. In base a quale criterio viene creata la relazione E5 nella traduzione dello schema ER? L'associazione R5 viene già tradotta prima quando assegno ad E4 , come chiave esterna, la chiave primaria di E1 quindi perchè creare una nuova relazione? |
CowBoy |
Non trovo l'entità E5 nello schema e nemmeno l'attributo A51. Forse hanno riproposto un vecchio esercizio semplificando lo schema ER. |
number15 |
Concordo.
Stando a quel diagramma ER, quell'E5 non dovrebbe esserci.
ps: me le ricordavo migliori le slides :D |
Fego |
Anche io notai che sul libro è sbagliato.
In giro per il Web si trova sempre che la chiave va messa dalla parte 1 (come è anche logico supporre).
Dovremmo notificare la Castano di questa cosa. |
Fego |
La relazione E5 e il risultato di traduzione dell'attributo multivalore A23 della relazione E2. |
lektronar |
Sul libro non c'è errore, semplicemente usa una presentazione dove non vengono mai espresse graficamente le cardinal ita minime, ma solo i rapporti di cardinal ita, invertiti. Cioè una relaz che graficamente è rappresentata come 1:n, è una relazione con cardinalit (..., n)------(..., 1) |
lektronar |
Infatti basta confrontare la FIG 7.2 con quella dove le cardinal ita sn espresse in toto, più avanti nel capitolo. |
|
|
|