Chiavi
Degli attributi di si possono definire come:
- Superchiave quando
- Chiave quando è superchiave e
- Attributi primi se ognuno appartiene ad almeno una chiave
Algoritmo
Dato il candidato , la cui è una possibile chiave mentre sono i possibili attributi da aggiungere se non lo fosse, si possono trovare tutte le chiavi di attraverso:
- Iniziare con il candidato
- Estrarre il primo candidato assicurandosi che non contenga alcuna chiave già trovata
- Se è superchiave si può aggiungere alle chiavi trovate
- Altrimenti ai candidati si unisce , dove
- Ripetere finchè rimangono candidati validi
Serve anche a verificare la primalità degli attributi, dato che altrimenti il processo è molto inefficiente.
Esempio
Per esempio, se e i passaggi sono:
- Il candidato iniziale è
- non è superchiave quindi si aggiungono i candidati dagli attributi
- Il prossimo candidato è valido perchè non contiene chiavi
- è superchiave quindi anche chiave
- Il prossimo candidato è valido
- è superchiave quindi anche chiave