dunerpenpo
Moderatore ITPS
 

Regione: Puglia
Prov.: Bari
Città: Gioia del Colle
|
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! |
PER ESSERE SEMPRE AGGIORNATI Sottoscriviti alla discussione ITPS/Generale/INFORMAZIONI Oppure Iscriviti al gruppo su Facebook Informatica T.P.S. Bari
Se nessuno risponde ai vostri interventi per più di 5 giorni, contattatemi via email (I PM potrei non leggerli in tempo) e proveremo a trovare una risposta alla vostra domanda.
|
Modificato da - dunerpenpo in data 22/05/2009 12:18:40 |
 |
|
dunerpenpo
Moderatore ITPS
 

Regione: Puglia
Prov.: Bari
Città: Gioia del Colle
|
Inserito il - 28/05/2009 : 21:54:58
|
Di niente, anzi pensavo di essere stato poco chiaro e molto prolisso, meglio così!  |
PER ESSERE SEMPRE AGGIORNATI Sottoscriviti alla discussione ITPS/Generale/INFORMAZIONI Oppure Iscriviti al gruppo su Facebook Informatica T.P.S. Bari
Se nessuno risponde ai vostri interventi per più di 5 giorni, contattatemi via email (I PM potrei non leggerli in tempo) e proveremo a trovare una risposta alla vostra domanda.
|
 |
|