Due insiemi di DF, F e G, sullo schema R sono equivalenti F ≡ G sse F+ = G+
F è una copertura di G e G è una copertura di F.
Copertura canonica
o canonica minima, ci permette di definire un insieme di equivalenze in maniera semplice e compatta.
Sia un insieme di dipendenze funzionali F, un attributo è estraneo sse (X-{Ai})→Y∈F+
Per esempio, data una relazione R({Nome, Telefono, Indirizzo, Città, Voto, Materia}, {(Nome, Telefono)→Indirizzo, (Nome, Indirizzo)→Telefono, (Nome, Materia)→Voto, Indirizzo→Città)})
si può scrivere A = Nome, B = Telefono, C = Indirizzo, D = Città, E = Voto, G = Materia
R({A, B, C, D, E, G}, {AB→C, AC→B, AG→E, C→D})
AB→C contiene l'attributo estraneo B, poiché AB-{B}→C è vero, cioè A→C
AC→B contiene l'attributo estraneo C, per lo stesso motivo.
ABGE è una superchiave di R, perché non esistono due elementi con lo stesso valore per gli attributi ABGE.
Però la chiave ABGE contiene un sottoinsieme AG che è superchiave ma è più "ristretta" della superchiave ABGE. Quando una superchiave (come AG) non contiene altre superchiavi più strette, si dice che è chiave.
Gli attributi che non compaiono mai a destra delle DF (come A e G nell'esempio) sono sicuramente contenute in ogni chiave di R.
Gli attributi che compaiono solo a destra delle DF (come D e E nell'esempio) non appartengono a nessuna chiave.
Appartiene a tutte le chiavi | Da determinare | Non appartiene sicuramente ad alcuna chiave |
---|---|---|
A, G | B, C | D, E |
Agli attributi B, C occorre applicare l'algoritmo di chiusura lenta per capire se fanno parte o meno di una chiave.
- AGB+ = AGB
- AGC+ = AGC