Una dipendenza funzionale in un database applica una serie di vincoli tra gli attributi. Ciò si verifica quando un attributo in una relazione determina univocamente un altro attributo. Questo può essere scritto A -> B il che significa che "B dipende funzionalmente da A." Questo è anche chiamato una dipendenza del database.
In questa relazione, A determina il valore di B, mentre B dipende da A.
Perché la dipendenza funzionale è importante nella progettazione di database
La dipendenza funzionale aiuta a garantire la validità dei dati. Considera una tabella Dipendenti che elenca le caratteristiche tra cui numero di previdenza sociale (SSN), nome, data di nascita, indirizzo e così via.
L'attributo SSN determinerà il valore di nome, data di nascita, indirizzo e forse altri valori, perché un numero di previdenza sociale è unico, mentre un nome, data di nascita o indirizzo potrebbe non essere. Possiamo scrivere così:
SSN -> nome, data di nascita, indirizzo
Pertanto, nome, data di nascita e indirizzo dipendono funzionalmente da SSN. Tuttavia, l'istruzione inversa (nome -> SSN) non è vera perché più di un dipendente può avere lo stesso nome ma non avrà mai lo stesso SSN. Metti un altro, più concreto, se conosciamo il valore dell'attributo SSN, possiamo trovare il valore di nome, data di nascita e indirizzo. Ma se invece conosciamo il valore solo dell'attributo name, non possiamo identificare il SSN.
Il lato sinistro di una dipendenza funzionale può includere più di un attributo. Diciamo che abbiamo un'attività commerciale con più sedi. Potremmo avere un dipendente dipendente con attributi dipendente, titolo, dipartimento, sede e responsabile.
Il dipendente determina la posizione in cui lavora, quindi c'è una dipendenza:
impiegato -> posizione
Ma la sede potrebbe avere più di un manager, quindi i dipendenti e il reparto determinano insieme il manager:
impiegato, dipartimento -> responsabile
Dipendenza funzionale e normalizzazione
La dipendenza funzionale contribuisce alla cosiddetta normalizzazione del database, che garantisce l'integrità dei dati e riduce le ridondanze dei dati. Senza la normalizzazione, non vi è alcuna garanzia che i dati in un database siano accurati e affidabili.