| |
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 |
Chiavi e super-chiavi Clicca QUI per vedere il messaggio nel forum |
tolarian |
Ciao a tutti...mi sono impegolato in questa definizione:
"Un insieme X ⊆UR di attributi di R e` chiave di R se verifica entrambe le seguenti proprieta`:
1. qualsiasi sialo stato di R, non esistono due tuple distinte di R che abbiano lo stesso valore per tutti gli attributi in X
2. nessun sottoinsieme proprio di X verifica la proprieta` (1)
Un insieme di attributi che verifica la proprieta` (1) ma non la proprieta` (2), e` detto super-chiave di R "
mi potreste chiarire con un esempio pratico???
grazie |
Voodoo |
Ciao :)
Se hai R (A,B,C,D) con chiave (A,B) vuol dire che non troverai mai nessuna coppia di tuple distinte che abbia l'accoppiata A,B uguale,questo per definizione. La seconda proprietà ci dice che per nessun sottoinsieme proprio dell'insieme X (qui A,B) vale la proprietà di prima,cioè NON è vero che NON troverai mai una coppia di tuple distinta per cui A sia uguale in entrambe o lo sia B,perchè se succedesse A,B non sarebbe più una chiave MINIMALE ma una superchiave. Una superchiave è un insieme di attributi che contiene la chiave.
Spero sia più chiaro,sennò fatti sentire ;) |
tolarian |
allora provo a fare un esempio:
Nome,Cognome,DataNascita,Altezza;
Allora suppongo che Nome,Cognome sia chiave...quindi per la 2° proprietà direi che DEVO avere almeno 2 nomi uguali o almeno 2 cognomi uguali...
altrimenti l'accoppiata Nome,Cognome sarebbe una SuperChiave.
Ho capito??
grazie |
Voodoo |
Originally posted by tolarian
allora provo a fare un esempio:
Nome,Cognome,DataNascita,Altezza;
Allora suppongo che Nome,Cognome sia chiave...quindi per la 2° proprietà direi che DEVO avere almeno 2 nomi uguali o almeno 2 cognomi uguali...
altrimenti l'accoppiata Nome,Cognome sarebbe una SuperChiave.
Ho capito??
grazie
Si in linea teorica si,in linea pratica se hai come dici tu:
code:
CREATE TABLE (
Nome varchar(10),
Cognome varchar(10),
DataN date,
Altezza varchar(3),
primary key(Nome,Cognome));
Ci può anche essere solo
- Marco,Fantozzi,16416,1,62cm
- Clelia,Perozzi,4633,1.56cm
e non è errore anche se non ci sono due nomi uguali,quello che importa è che quando definisci la chiave non ci siano doppioni per quell'insieme,cmq va bene quel che hai detto (almeno credo :) ). |
|
|
|
|