Cominciamo con un esempio:
Nella relazione sopra, possiamo notare che i valori delle varie tuple sull’ attributo Matricola sono tutti diversi l’uno dall’ altro. Infatti il valore della matricola identifica univocamente gli studenti. Analogamente possiamo notare che non ci sono coppie di tuple con gli stessi valori su ciascuno dei tre attributi Cognome, Nome, Nascita, infatti anche i dati anagrafici identificano univocamente le persone (in questo caso è vero). Intuitivamente una chiave è un insieme di attributi che identifica univocamente le tuple di una relazione. Per formalizzare la definizione , procediamo in due passi:
un insieme K di attributi è superchiave per una relazione r se r non contiene due ennuple distinte t1 e t2 con t1[K] = t2[K]
K è chiave per r se è una superchiave minimale, cioè non contiene un’altra superchiave per r
Nell’ esempio sopra Matricola è una chiave in quanto:
Matricola è superchiave in quanto non c’è nessuna riga per la quale abbiamo lo stesso valore.
contiene un solo attributo e quindi è minimale
Cognome, Nome, Nascita è un’altra chiave:
l’insieme Cognome, Nome, Nascita è superchiave in quanto non c’è nessuna riga per la quale abbiamo gli stessi valori per questi attributi.
nessuno dei suoi sottoinsiemi che otteniamo eliminando un attributo è superchiave, in quanto ci sono righe con gli stessi valori
Si noti che l’insieme di tutti gli attributi è sempre una superchiave per ogni relazione. Il fatto che su ciascun schema di relazione possa essere definita almeno una chiave, garantisce la accessibilità a tutti i valori di una base di dati, e la loro univoca identificazione. Le chiavi sono lo strumento principale attraverso il quale vengono correlati i dati in relazioni (tabelle) diverse. In presenza di valori nulli però, i valori degli attributi che formano la chiave non permettono di identificare le ennuple come desiderato e né permettono di risalire facilmente ad altre relazioni.
La presenza di valori nulli nelle chiavi deve quindi essere limitata. La soluzione pratica è che per ogni relazione scegliamo una chiave (la chiave primaria) su cui non ammettiamo valori nulli.
Per convenzione gli attributi che compongono la chiave primaria sono sottolineati.
Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.