Si può usare l’algoritmo per il calcolo della chiusura di un insieme di attributi per determinare le chiavi di uno schema su cui è definito un insieme di dipendenze funzionali .

Si parte da un insieme di attributi che si sospetta essere una chiave e si calcola la sua chiusura con l’algoritmo.

La condizione necessaria per cui è una chiave è che esso determini tutto . Quindi se il risultato dell’algoritmo non è , esso non può essere una chiave.

Poi va controllato (sempre con l’algoritmo della chiusura) anche che non esiste nessun sottoinsieme proprio di che determina tutto .

Osservazioni:

  • Conviene partire dai sottoinsiemi di con cardinalità maggiore, oppure meglio dagli insiemi con .
  • Gli attributi che non sono determinati da nessuna dipendenza funzionale (non compaiono mai a destra) sono sicuramente in ogni chiave.
  • Uno schema può avere più chiavi.

Test di unicità della chiave

  1. Si calcola l’intersezione tra tutti gli insiemi con (scelta una alla volta per ogni insieme calcolato);
  2. Si calcola la chiusura del risultato;
  3. Se la chiusura determina tutto esiste una sola chiave, altrimenti ne esistono di più e vanno trovate tutte.

Test per la 3NF (terza forma normale)

  1. Iniziamo calcolando le chiusure dei determinanti delle dipendenze funzionali per verificare che non sono superchiavi (la loro chiusura è e non contengono chiavi)
  2. Se nessuna è una superchiave, aggiungiamo a ognuna gli attributi che sicuramente fanno parte della chiave, cioè quelli che non compaiono in nessuna dipendenza funzionale oppure non compaiono mai a destra (non sono determinati da nessuna dipendenza funzionale)

Oppure, trovata la chiave di uno schema, se si trova anche una sola dipendenza parziale o transitiva, allora lo schema non è in 3NF.