En funktionel afhængighed i en database håndhæver et sæt begrænsninger mellem attributter. Dette sker, når en attribut i en relation afgjort bestemmer en anden attribut. Dette kan skrives A -> B hvilket betyder "B er funktionelt afhængig af A." Dette kaldes også en databaseafhængighed.
I dette forhold bestemmer A værdien af B, mens B afhænger af A.
Hvorfor funktionel afhængighed er vigtig i database design
Funktionel afhængighed hjælper med at sikre datas gyldighed. Gennemse en tabel Medarbejdere, der lister karakteristika, herunder Social Security Number (SSN), navn, fødselsdato, adresse og så videre.
Attributten SSN bestemmer værdien af navn, fødselsdato, adresse og måske andre værdier, fordi et socialt sikkerhedsnummer er unikt, mens et navn, fødselsdato eller adresse muligvis ikke er. Vi kan skrive det sådan:
SSN -> navn, fødselsdato, adresse
Derfor er navn, fødselsdato og adresse funktionelt afhængig af SSN. Den omvendte erklæring (navn -> SSN) er dog ikke sand, fordi flere end én medarbejder kan have samme navn, men vil aldrig have samme SSN. Sæt en anden, mere konkret måde, hvis vi kender værdien af SSN-attributten, kan vi finde værdien af navn, fødselsdato og adresse. Men hvis vi i stedet kender værdien af kun navneattributten, kan vi ikke identificere SSN.
Den venstre side af en funktionel afhængighed kan indeholde mere end én attribut. Lad os sige, at vi har en forretning med flere steder. Vi kan have en bordmedarbejder med attributter medarbejder, titel, afdeling, placering og manager.
Medarbejderen bestemmer placeringen han arbejder, så der er en afhængighed:
medarbejder -> placering
Men lokationen kan have mere end en leder, så medarbejderen og afdelingen bestemmer sammen lederen:
medarbejder, afdeling -> manager
Funktionel afhængighed og normalisering
Funktionel afhængighed bidrager til det, der kaldes database normalisering, som sikrer dataintegritet og reducerer dataafskedigelser. Uden normalisering er der ingen sikkerhed for, at dataene i en database er nøjagtige og pålidelige.