Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi A - F > Basi di dati ~ informatica triennale
 
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.

Shady90
.

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate