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

Многообразната зависимост нарушава четвъртата нормална форма

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

Многовариантната зависимост предотвратява стандартната четвърта нормална форма (4NF). Релационните бази данни следват пет нормални форми, които представляват насоки за запис на проекти. Те предотвратяват актуалните аномалии и несъответствия в данните. Четвъртата нормална форма разглежда взаимоотношенията "много към едно" в база данни .

Функционална зависимост и многобройна зависимост

За да се разбере многобройната зависимост, е полезно да се преразгледа функционалната зависимост.

Ако атрибутът X уникално определя атрибут Y, тогава Y е функционално зависим от X. Това е написано като X -> Y. Например в таблицата Students по-долу Student_Name определя Major:

Ученици
Student_Name голям
Рави История на изкуството
Бет Химия


Тази функционална зависимост може да бъде написана: Student_Name -> Major . Всеки Student_Name определя точно един майор и не повече.

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

Ученици
Student_Name голям спорт
Рави История на изкуството футбол
Рави История на изкуството волейбол
Рави История на изкуството Тенис
Бет Химия Тенис
Бет Химия футбол


Проблемът тук е, че и Рави, и Бет играят многобройни спортове. Необходимо е да добавите нов ред за всеки допълнителен спорт.

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

Това е прост пример и лесно се идентифицира, но зависимостта от няколко вида може да се превърне в проблем в голяма, сложна база данни.

Многозависима зависимост е написана X -> -> Y. В този случай:

Student_Name -> -> Майор
Student_Name -> -> Спорт

Това се чете като "Student_Name multidetermines Major" и "Student_Name multidetermines Sport".

Многовариантната зависимост винаги изисква най-малко три атрибута, защото тя се състои от най-малко два атрибута, които зависят от една трета.

Многовариантна зависимост и нормализация

Таблица с многонационална зависимост нарушава стандарта за нормализиране на четвъртата нормална форма (4NK), защото създава ненужни съкращения и може да допринесе за несъответстващи данни. За да донесете това до 4NF, е необходимо тази информация да бъде прекъсната на две таблици.

Таблицата по-долу има функционална зависимост на Student_Name -> Major и няма многобройни зависимости:

Студенти и майстори
Student_Name голям
Рави История на изкуството
Рави История на изкуството
Рави История на изкуството
Бет Химия
Бет Химия

Докато тази таблица има и една функционална зависимост на Student_Name -> Sport:

Студенти и спорт
Student_Name спорт
Рави футбол
Рави волейбол
Рави Тенис
Бет Тенис
Бет футбол

Ясно е, че нормализирането често се разрешава чрез опростяване на сложните таблици, така че те да съдържат информация, свързана с една идея или тема, вместо да се опитват да направят една таблица да съдържа твърде много разнородна информация.