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
- coviene partire da quelli con cardinalità maggiore - se la loro chiusura non contiene R, non ha senso calcolare la chiusura dei loro sottoinsiemi.
- attributi che non appaiono mai come dipendenti devono essere per forza in una chiave - la chiave li determinerà per riflessività
- un attributo che compare sempre solo come dipendente non sarà nella chiave
- un attributo che non compare in F dovrà essere nella chiave - come quelli che non ci sono come dipendenti
- non è detto che una chiave debba apparire come determinante - è possibile che un determinante con un pezzo aggiunto sia chiave
- 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
esempio 2
(trovare dipendenze, chiave/i, se è 3NF)
le dipendenze sono:
- (un cliente può fare più di un ordine ma ogni ordine ha un cliente solo)
la chiave è:
non è 3nf (es: non la rispetta - è sottochiave e non superchiave, e non è primo)
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]