Какви са зависимите от базата данни?

Зависимостта на базата данни е тема, която често обърква както студентите, така и специалистите по бази данни. За щастие те не са толкова сложни и най-добре могат да бъдат илюстрирани чрез използването на редица примери. В тази статия разглеждаме общите типове зависимост на базата данни.

База данни зависи / функционални зависимости

В базата данни възниква зависимост, когато информацията, съхранявана в същата таблица на базата данни, уникално определя друга информация, съхранявана в същата таблица. Можете също така да опишете това като връзка, където знанието за стойността на един атрибут (или набор от атрибути) е достатъчно, за да ви покаже стойността на друг атрибут (или набор от атрибути) в същата таблица.

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

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

Тривиални функционални зависимости

Тривиална функционална зависимост се появява, когато описвате функционална зависимост на атрибут от колекция от атрибути, която включва оригиналния атрибут. Например "{A, B} -> B" е тривиална функционална зависимост, както е "{name, SSN} -> SSN". Този тип функционална зависимост се нарича тривиално, защото може да се извлече от здравия разум. Очевидно е, че ако вече знаете стойността на B, тогава стойността на B може да бъде уникално определена от това знание.

Пълнофункционални зависимости

Пълна функционална зависимост възниква, когато вече отговаряте на изискванията за функционална зависимост, а наборът от атрибути от лявата страна на изложението за функционална зависимост не може да бъде намален допълнително. Например "{SSN, age} -> name" е функционална зависимост, но това не е пълна функционална зависимост, защото можете да премахнете възрастта от лявата страна на изявлението, без да се отразява зависимостта.

Транзитивни зависимости

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

Многобройни зависимости

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

Значението на зависимостите

Базовите зависимости са важни за разбирането, защото те осигуряват основните градивни елементи, използвани в нормализирането на базата данни . Например: