V I S U A L I Z Z A D I S C U S S I O N E |
bircastri |
Inserito il - 22/05/2009 : 10:46:15 Salve ragazzi,
sapete spiegarmi in maniere semplice quale è la sostanziale differenza tra chiave e superChiave? |
3 U L T I M E R I S P O S T E (in alto le più recenti) |
dunerpenpo |
Inserito il - 28/05/2009 : 21:54:58 Di niente, anzi pensavo di essere stato poco chiaro e molto prolisso, meglio così!  |
bircastri |
Inserito il - 28/05/2009 : 18:47:40 Grazie mille sei stato molto chiaro. Ho chiesto anche in giro da altre parti ma sono stati troppo evasivi e non avevo capito un bene amato accidenti invece tu sei stato veramente chiaro
Grazie assai
|
dunerpenpo |
Inserito il - 22/05/2009 : 12:15:34 Una superchiave di una relazione R è costituita da un sottoinsieme di attributi di R tali che quegli attributi da soli bastano ad indicare univocamente le tuple contenute nella relazione. In altre parole se hai una Relazione R contenente N attributi dei quali ne prendi un sottoinsieme minore o uguale ad N e in tutte le occorrenze della relazione i valori di quegli attributi non sono MAI gli stessi allora l'insieme di quegli attributi si dice Superchiave della Relazione.
Ad esempio hai la relazione Persona con attributi Cognome, Nome, Data_nasc, indirizzo. Se in tutte le tuple della relazione non ci sono mai due tuple che hanno stesso cognome, nome e data di nascita, allora l'insieme di Cognome, nome e data di nascita si dice che è una superchiave perchè quei tre campi bastano da soli per indicare quella specifica occorrenza.
Si dice chiave, invece, una superchiave minimale della relazione R. Una superchiave si dice minimale se togliendo anche uno solo degli attributi della superchiave ottengo delle tuple duplicate.
Tornando all'esempio di prima, dalla superchiave Cognome, nome e data_nasc se elimino data_nasc potrei ottenere dei cognomi e nomi duplicati (in caso di omonimia) o eliminando nome potrei ottenere persone che hanno stesso cognome e stessa data di nascita, oppure ancora eliminando il congome potrei avere persone che hanno stessa data di nascita e stesso nome, quindi per identificare univocamente tutte le tuple della relazione sono necessari tutti e tre i campi. Quindi i tre campi sono una chiave della relazione(o superchiave minimale).
Non so se sono stato abbastanza chiaro, è un po complicato da spiegare a parole senza essere formali! Ti incollo la stessa cosa descritta con i simboli dal prof, se ti è più chiaro.
Siano R una relazione con schema R(X) e K un sottoinsieme degli attributi di R, cioè K è contenuto in X.
K è superchiave per R se per ogni t1, t2 appartenente ad R, con t1 diverso da t2, risulta tl[K] diverso da t2[K], (cioè, R non contiene tuple distinte che abbiano gli stessi valori in K - vincolo di univocità)
K è chiave per R se è una superchiave minimale (cioè, non contiene un’altra superchiave)
Pertanto, la superchiave K è una chiave di R se per ogni attributo A appartenente a K esiste una t1 e t2 appartenenti ad R, con t1 diverso da t2, risulta quindi che t1[K-A] = t2[K-A].
Spero di essere stato abbastanza chiaro, se non lo sono stato dimmelo che ci riprovo con altre parole! |
|
|