Ricordiamo le condizioni per essere chiave: un sottoinsieme di uno schema di relazione è una chiave di se

  • non esiste un sottoinsieme proprio di tale che

tips per trovare una chiave

  1. coviene partire da quelli con cardinalità maggiore - se la loro chiusura non contiene R, non ha senso calcolare la chiusura dei loro sottoinsiemi.
  2. attributi che non appaiono mai come dipendenti devono essere per forza in una chiave - la chiave li determinerà per riflessività
  3. un attributo che compare sempre solo come dipendente non sarà nella chiave
  4. un attributo che non compare in F dovrà essere nella chiave - come quelli che non ci sono come dipendenti
  5. non è detto che una chiave debba apparire come determinante - è possibile che un determinante con un pezzo aggiunto sia chiave
  6. aver trovato una chiave non è sufficiente - in uno stesso schema possiamo avere più chiavi

esempio

cose da tenere a mente in questo caso: in tutte le chiavi ci deve essere , perché non è in , e in nessuna ci sarà , perché non determina niente.

le chiavi sono quindi:

  • ( e si aggiunge )
    • per questa dobbiamo verificare che e non siano chiavi

metodo alternativo

  • in alternativa, si può anche cominciare dagli insiemi individuati dalle dipendenze funzionali: data una dipendenza funzionale , calcoliamo la chiusura dell’insieme di attributi
    • la differenza interna evita di considerare dipendenze vuote dovute alla riflessività
    • la differenza esterna esclude gli attributi “solo” dipendenti nella dipendenza in esame

test di unicità di una chiave

dati uno schema di relazione e un insieme di dipendenze funzionali , calcoliamo l’intersezione degli insiemi con .

  • se l’intersezione di questi insiemi determina tutto , allora questa è l’unica chiave di
  • se invece non determina tutto , allora esistono più chiavi

[questa verifica non può essere usata all’esame per trovare le chiavi]