Skip to main content

Definicja zależności funkcjonalnej

Backupy w MS SQL Server 2012 (MS 10-775) - webinar / tutorial - ALTKOM Akademia (Czerwiec 2026)

Backupy w MS SQL Server 2012 (MS 10-775) - webinar / tutorial - ALTKOM Akademia (Czerwiec 2026)
Anonim

Funkcjonalna zależność w bazie danych wymusza zestaw ograniczeń między atrybutami. Dzieje się tak, gdy jeden atrybut w relacji jednoznacznie określa inny atrybut. To można zapisać A -> B co oznacza "B jest funkcjonalnie zależny od A." Nazywa się to również zależnością od bazy danych.

W tej zależności A określa wartość B, natomiast B zależy od A.

Dlaczego funkcjonalna zależność jest ważna w projektowaniu bazy danych

Funkcjonalna zależność pomaga zapewnić ważność danych. Zastanów się nad tabelą Pracownicy, którzy wymieniają cechy, w tym numer ubezpieczenia społecznego (SSN), imię i nazwisko, datę urodzenia, adres i tak dalej.

Atrybut SSN określa wartość nazwiska, daty urodzenia, adresu i być może innych wartości, ponieważ numer ubezpieczenia społecznego jest unikalny, a nazwisko, data urodzenia lub adres nie mogą być. Możemy napisać tak:

SSN -> imię i nazwisko, data urodzenia, adres

Dlatego nazwa, data urodzenia i adres są funkcjonalnie zależne od SSN. Jednak odwrotna instrukcja (nazwa -> SSN) nie jest prawdziwa, ponieważ więcej niż jeden pracownik może mieć tę samą nazwę, ale nigdy nie będzie miał tego samego numeru SSN. Podaj inny, bardziej konkretny sposób, jeśli znamy wartość atrybutu SSN, możemy znaleźć wartość imienia, daty urodzenia i adresu. Ale jeśli zamiast tego wiemy wartość tylko atrybutu nazwy, nie możemy zidentyfikować numeru SSN.

Lewa strona funkcjonalnej zależności może zawierać więcej niż jeden atrybut. Załóżmy, że mamy firmę z wieloma lokalizacjami. Możemy mieć tabelę Pracownik z atrybutem pracownik, tytuł, dział, lokalizacja i menedżer.

Pracownik określa lokalizację, w której pracuje, więc istnieje zależność:

pracownik -> lokalizacja

Ale lokalizacja może mieć więcej niż jednego menedżera, więc pracownik i dział wspólnie określają menedżera:

pracownik, dział -> kierownik

Funkcjonalna zależność i normalizacja

Funkcjonalna zależność przyczynia się do tak zwanej normalizacji baz danych, która zapewnia integralność danych i zmniejsza nadmiarowość danych. Bez normalizacji nie ma gwarancji, że dane w bazie danych są dokładne i niezawodne.