Vícehodnotová závislost v databázích

Obsah:

Vícehodnotová závislost v databázích
Vícehodnotová závislost v databázích
Anonim

V relační databázi nastává závislost, když informace uložené ve stejné databázové tabulce jednoznačně určují jiné informace uložené ve stejné tabulce. Vícehodnotová závislost nastane, když přítomnost jednoho nebo více řádků v tabulce implikuje přítomnost jednoho nebo více dalších řádků ve stejné tabulce. Jinak řečeno, dva atributy (nebo sloupce) v tabulce jsou na sobě nezávislé, ale oba závisí na třetím atributu.

Image
Image

Vícehodnotová závislost brání standardní čtvrté normální formě normalizace. Relační databáze se řídí pěti normálními formami, které představují pokyny pro návrh záznamů. Zabraňují aktualizačním anomáliím a nesrovnalostem v datech. Čtvrtá normální forma se zabývá vztahy mnoho ku jedné v databázi.

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

Abyste porozuměli vícehodnotové závislosti, je užitečné znovu se podívat, co je to funkční závislost.

Pokud atribut X jednoznačně určuje atribut Y, pak Y je funkčně závislý na X. To je zapsáno jako X -> Y. Například v níže uvedené tabulce Studenti určuje Jméno studenta Major:

Student_Name Major
Ravi Historie umění
Beth Chemie

Tato funkční závislost může být zapsána: Student_Name -> Major. Každé jméno studenta určuje přesně jednoho majora a ne více.

Pokud chcete, aby databáze také sledovala sporty, které tito studenti provozují, možná si myslíte, že nejjednodušší způsob, jak toho dosáhnout, je přidat další sloupec s názvem Sport:

Student_Name Major 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 v tom, že Ravi i Beth hrají několik sportů. Pro každý další sport je nutné přidat nový řádek.

Tato tabulka zavedla vícehodnotovou závislost, protože obor a sport jsou na sobě nezávislé, ale oba závisí na studentovi. Toto je jednoduchý příklad a snadno identifikovatelný, ale vícehodnotová závislost by se mohla stát problémem ve velké, složité databázi.

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

Student_Name ->-> Major

Student_Name43345 -6 > Sport

Toto se čte jako "Jméno studenta více určuje hlavní obor" a "Jméno studenta více určuje sport."

Závislost s více hodnotami vždy vyžaduje alespoň tři atributy, protože se skládá alespoň ze dvou atributů, které jsou závislé na třetím.

Vícehodnotová závislost a normalizace

Tabulka s vícehodnotovou závislostí porušuje normalizační standard čtvrté normální formy, protože vytváří zbytečné redundance a může přispívat k nekonzistentním datům. Abychom to dostali na 4NF, je nutné tyto informace rozdělit do dvou tabulek.

Tabulka níže má nyní funkční závislost Student_Name -> Major a žádné vícehodnotové závislosti:

Student_Name Major
Ravi Historie umění
Ravi Historie umění
Ravi Historie umění
Beth Chemie
Beth Chemie

I když tato tabulka má také jedinou funkční závislost Student_Name -> Sport:

Student_Name Sport
Ravi Fotbal
Ravi Volejbal
Ravi Tenis
Beth Tenis
Beth Fotbal

Normalizace se často dosahuje zjednodušením složitých tabulek tak, aby obsahovaly informace související s jedinou myšlenkou nebo tématem, spíše než se snažit, aby jedna tabulka obsahovala příliš mnoho nesourodých informací.

Doporučuje: