In un database relazionale chiavi e superchiavi ricoprono la medesima funzione: conferiscono la capacità di determinare in maniera non ambigua le tuple della relazione.
Chiave
Una chiave è un insieme di attributi, minimale, che identifica univocamente le tuple di una relazione, quindi due tuple non possono avere gli stessi valori in tutti gli attributi della chiave.
Superchiave
Una superchiave è un insieme di attributi, non minimale, che identifica univocamente ogni tupla della relazione.
Differenza
La differenza risiede nella minimalità: una chiave è una superchiave priva di attributi ridondanti. Una superchiave è detta chiave se è minimale, ovvero se nessun suo sottoinsieme proprio è ancora una superchiave, cioè se si rimuovesse anche un solo attributo da una chiave, essa non sarà più in grado di identificare univocamente le tuple della relazione. Al contrario, una superchiave può contenere attributi ridondanti, pertanto anche rimuovendo uno o più attributi da tale superchiave, le tuple della relazione sarebbero comunque identificabili in modo univoco. Ad esempio, l’insieme di attributi (Nome, Cognome, Matricola, Data di Nascita) è una superchiave per la relazione Studenti, non è una superchiave minimale e quindi non è una chiave, perché la chiave (Matricola), contenuta in essa, è sufficiente per identificare univocamente le tuple della relazione. In conclusione, ogni chiave è anche una superchiave ma non è vero il contrario.