Функционална зависимост в база данни

Функционални зависимости: Избягвайте дублирането на данни

Функционалната зависимост в базата данни налага набор от ограничения между атрибутите. Това се случва, когато един атрибут във връзка еднозначно определя друг атрибут. Това може да бъде написано A -> B, което означава, че "B е функционално зависим от А." Това също се нарича зависимост на базата данни .

В тази връзка A определя стойността на B, докато B зависи от А.

Защо функционалната зависимост е важна в дизайна на бази данни

Функционалната зависимост помага да се гарантира валидността на данните. Помислете за таблица Служители, които изброяват характеристики като SSN, име, дата на раждане, адрес и т.н.

Атрибутът SSN ще определи стойността на името, датата на раждане, адреса и може би други стойности, тъй като номерът на социалното осигуряване е уникален, докато името, датата на раждане или адресът може да не са. Можем да го напишем по следния начин:

SSN -> име, дата на раждане, адрес

Следователно, име, дата на раждане и адрес са функционално зависими от SSN. Обаче обратното изявление (име -> SSN) не е вярно, защото повече от един служител може да има същото име, но никога няма да има същото SSN. Поставете друг, по-конкретен начин, ако знаем стойността на атрибута SSN, можем да намерим стойността на името, датата на раждане и адреса. Но ако знаем само стойността на атрибута name, не можем да идентифицираме SSN.

Лявата страна на функционалната зависимост може да включва повече от един атрибут. Да приемем, че имаме бизнес с няколко местоположения. Може да имаме таблица Служител с атрибути служител, длъжност, отдел, местонахождение и мениджър.

Служителят определя местоположението, което работи, така че има зависимост:

служител -> местоположение

Местоположението обаче може да има повече от един мениджър, така че служителят и отделът заедно определят мениджъра:

служител, отдел -> мениджър

Функционална зависимост и нормализация

Функционалната зависимост допринася за това, което се нарича нормализиране на базата данни, което гарантира целостта на данните и намалява съкращенията в данните. Без нормализиране няма гаранция, че данните в дадена база данни са точни и надеждни.