Повеќенаменската зависност ја крши четвртата нормална форма
Во релациона база на податоци, зависноста се јавува кога информациите зачувани во истата табела на бази на податоци единствено ги одредуваат другите информации што се зачувани во истата табела. Многозначената зависност се јавува кога присуството на еден или повеќе редови во табелата подразбира присуство на еден или повеќе други редови во истата табела. Стави друг начин, две атрибути (или колони) во табелата се независни еден од друг, но и двете зависат од третиот атрибут.
Многозначната зависност ја спречува стандардната четврта нормална форма (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 | Спорт |
---|---|
Рави | Фудбал |
Рави | Одбојка |
Рави | Тенис |
Бет | Тенис |
Бет | Фудбал |
Јасно е дека нормализацијата често се решава со поедноставување на комплексните табели, така што тие содржат информации поврзани со една идеја или тема, наместо да се обидува да направи една табела да содржи премногу различни информации.