View Single Post
Old 14-01-2008, 11:17   #7
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
Quote:
Originariamente inviato da D4rkAng3l Guarda i messaggi
Ah quindi se ho ben capito posso usare la seconda forma per importare tutta la chiave di una tabella B come attributi dentro una tabella A? che intendi che devono essere trattati come un'unica entità?

Grazie
Andrea
supponi di avere lo schema seguente:

DIPARTIMENTO(ID, INDIRIZZO, attr1, attr2) avente chiave primaria (ID, INDIRIZZO)

supponi poi che alla relazione DIPARTIMENTO appartengano le tuple:
<0, blabla, null, null>
<1, albalb, 123, 456>

supponi poi di avere la relazione
IMPIEGATO(ID, nome, cognome, IDdip, IndDip)
in cui IDdip, IndDip identificano il dipartimento di afferenza.

ora, se IDdip e IndDip sono trattati come unica chiave esterna hai correttamente riferito una ben precisa tupla di DIPARTIEMNTO.

ma cosa succede se IDdip e IndDip sono trattati come 2 chiavi esterne indipendenti?

diventa lecito inserire in IMPIEGATO la tupla seguente:
<123, tizio, caio, 0, albalb>

come vedi, a livello teorico la tupla è lecita, ma rompe la coerenza della base di dati in quanto non esiste in DIPARTIEMNTO una tupla avente chiave (0, albalb)
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso