Vícehodnotová závislost v návrhu databáze

Vícehodnotová závislost rozděluje čtvrtou normální formu

V relační databázi dochází k závislostem, pokud informace uložené ve stejné tabulce databáze jednoznačně určují další informace uložené ve stejné tabulce. Vícehodnotová závislost nastane, když přítomnost jednoho nebo více řádků v tabulce znamená přítomnost jednoho nebo více řádků v téže tabulce. Jinými slovy, dva atributy (nebo sloupce) v tabulce jsou navzájem nezávislé, ale oba závisí na třetím atributu.

Vícehodnotová závislost zabraňuje normalizaci standardní čtvrté normální podobě (4NF). Relační databáze vycházejí z pěti normálních formulářů, které představují pokyny pro návrh záznamů. Zabraňují aktualizaci anomálií a nesrovnalostem v datech. Čtvrtá normální forma se zabývá vztahy typu "mnoho k jednomu" v databázi .

Funkční závislost vs. vícehodnotová závislost

Chcete-li pochopit vícehodnotovou závislost, je užitečné přehodnotit funkční závislost.

Pokud atribut X jednoznačně určuje atribut Y, pak Y je funkčně závislý na X. To je napsáno jako X -> Y. Například ve Studentské tabulce níže Student_Name určuje Major:

Studenti
Jméno studenta Hlavní, důležitý
Ravi Historie umění
Beth Chemie


Tuto funkční závislost lze zapsat: Student_Name -> Major . Každý Student_Name určuje přesně jedno majora a ne více.

Chcete-li, aby databáze sledovala také sporty, které tito studenti přijali, můžete si myslet, že nejjednodušší způsob, jak to udělat, je jen přidat další sloupec s názvem Sport:

Studenti
Jméno studenta Hlavní, důležitý Sport
Ravi Historie umění Fotbal
Ravi Historie umění Volejbal
Ravi Historie umění Tenis
Beth Chemie Tenis
Beth Chemie Fotbal


Problém je, že Ravi i Beth hrají více sportů. Pro každý další sport je nutné přidat nový řádek.

Tato tabulka zavedla vícehodnotovou závislost, protože hlavní a sport jsou navzájem nezávislé, ale oba závisí na studentovi.

Jedná se o jednoduchý příklad a lze snadno rozpoznat, ale závislost na vícedávkových místech by se mohla stát velkým a komplexním databází.

Vícehodnotovou závislost je napsána X -> -> Y. V tomto případě:

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

Toto je přečteno jako "Student_Name multidetermines Major" a "Student_Name multidetermines Sport".

Vícehodnotová závislost vždy vyžaduje alespoň tři atributy, protože se skládá z alespoň dvou atributů, které jsou závislé na třetině.

Vícehodnotová závislost a normalizace

Tabulka s vícehodnotovou závislostí porušuje normalizační normu Čtvrtého normálního formuláře (4NK), protože vytváří zbytečné propouštění a může přispívat k nekonzistentním datům. Chcete-li toto přinést až na 4NF, je nutné tyto informace rozdělit do dvou tabulek.

Níže uvedená tabulka má nyní funkční závislost Student_Name -> Major a žádné závislosti na více hodnotách:

Studenti a velcí
Jméno studenta Hlavní, důležitý
Ravi Historie umění
Ravi Historie umění
Ravi Historie umění
Beth Chemie
Beth Chemie

Zatímco tato tabulka má také jednu funkční závislost Student_Name -> Sport:

Studenti a sporty
Jméno studenta Sport
Ravi Fotbal
Ravi Volejbal
Ravi Tenis
Beth Tenis
Beth Fotbal

Je zřejmé, že normalizace je často řešena zjednodušením složitých tabulek, které obsahují informace týkající se jediného nápadu nebo tématu, spíše než pokusit se vytvořit jednu tabulku obsahující příliš mnoho nesourodých informací.