Повеќенаменска зависност во дизајнот на бази на податоци

Повеќенаменската зависност ја крши четвртата нормална форма

Во релациона база на податоци, зависноста се јавува кога информациите зачувани во истата табела на бази на податоци единствено ги одредуваат другите информации што се зачувани во истата табела. Многозначената зависност се јавува кога присуството на еден или повеќе редови во табелата подразбира присуство на еден или повеќе други редови во истата табела. Стави друг начин, две атрибути (или колони) во табелата се независни еден од друг, но и двете зависат од третиот атрибут.

Многозначната зависност ја спречува стандардната четврта нормална форма (4NF). Релациони бази на податоци следат пет нормални форми кои претставуваат насоки за евиденција. Тие ги спречуваат аномалиите за ажурирање и недоследностите во податоците. Четвртата нормална форма се занимава со многу-на-еден врски во базата на податоци .

Функционална зависност наспроти повеќезначна зависност

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

Ако атрибут X уникатно го одредува атрибутот Y, тогаш Y е функционално зависен од X. Ова е напишано како X -> Y. На пример, во табелата Студентите подолу, Student_Name го одредува главниот:

Студенти
Student_Name Мајор
Рави Историја на уметност
Бет Хемија


Оваа функционална зависност може да биде напишана: Student_Name -> Major . Секој Student_Name одредува точно еден мајор, и нема повеќе.

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

Студенти
Student_Name Мајор Спорт
Рави Историја на уметност Фудбал
Рави Историја на уметност Одбојка
Рави Историја на уметност Тенис
Бет Хемија Тенис
Бет Хемија Фудбал


Проблемот е што и Рави и Бет играат повеќе спортови. Потребно е да се додаде нов ред за секој дополнителен спорт.

Оваа табела воведе повеќезначна зависност, бидејќи главните и спортот се независни еден од друг, но и двете зависат од ученикот.

Ова е едноставен пример и лесно препознатлив, но зависноста од повеќеслојно може да стане проблем во една голема, комплексна база на податоци.

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

Student_Name -> -> Major
Student_Name -> -> Sport

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

Многозначната зависност секогаш бара најмалку три атрибути, бидејќи таа се состои од најмалку два атрибути кои се зависни од една третина.

Повеќезначна зависност и нормализација

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

Табелата подолу сега има функционална зависност од Student_Name -> Големи и без повеќезначни зависности:

Студенти и специјалност
Student_Name Мајор
Рави Историја на уметност
Рави Историја на уметност
Рави Историја на уметност
Бет Хемија
Бет Хемија

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

Студенти и спорт
Student_Name Спорт
Рави Фудбал
Рави Одбојка
Рави Тенис
Бет Тенис
Бет Фудбал

Јасно е дека нормализацијата често се решава со поедноставување на комплексните табели, така што тие содржат информации поврзани со една идеја или тема, наместо да се обидува да направи една табела да содржи премногу различни информации.