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:

  1. Iniziare con il candidato
  2. 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
  3. 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:

  1. Il candidato iniziale è
  2. non è superchiave quindi si aggiungono i candidati dagli attributi
  3. Il prossimo candidato è valido perchè non contiene chiavi
  4. è superchiave quindi anche chiave
  5. Il prossimo candidato è valido
  6. è superchiave quindi anche chiave