Viachodnotová závislosť v databázach

Obsah:

Viachodnotová závislosť v databázach
Viachodnotová závislosť v databázach
Anonim

V relačnej databáze vzniká závislosť, keď informácie uložené v rovnakej databázovej tabuľke jednoznačne určujú iné informácie uložené v tej istej tabuľke. Viachodnotová závislosť nastane, keď prítomnosť jedného alebo viacerých riadkov v tabuľke znamená prítomnosť jedného alebo viacerých ďalších riadkov v tej istej tabuľke. Inými slovami, dva atribúty (alebo stĺpce) v tabuľke sú od seba nezávislé, ale oba závisia od tretieho atribútu.

Image
Image

Viachodnotová závislosť zabraňuje štandardnej štvrtej normálnej forme normalizácie. Relačné databázy sa riadia piatimi normálnymi formami, ktoré predstavujú usmernenia pre návrh záznamov. Zabraňujú aktualizačným anomáliám a nezrovnalostiam v údajoch. Štvrtá normálna forma sa zaoberá vzťahmi typu many-to-one v databáze.

Funkčná závislosť vs. viachodnotová závislosť

Ak chcete porozumieť viachodnotovej závislosti, je užitočné vrátiť sa k tomu, čo je funkčná závislosť.

Ak atribút X jedinečne určuje atribút Y, potom Y je funkčne závislý od X. Toto je napísané ako X -> Y. Napríklad v tabuľke Študenti nižšie určuje Meno študenta Major:

Student_Name Major
Ravi História umenia
Beth Chémia

Túto funkčnú závislosť možno zapísať: Meno_študenta -> Major. Každé meno študenta určuje presne jeden hlavný odbor a nie viac.

Ak chcete, aby databáza sledovala aj športy, ktoré títo študenti venujú, možno si myslíte, že najjednoduchší spôsob, ako to urobiť, je pridať ďalší stĺpec s názvom Šport:

Student_Name Major Šport
Ravi História umenia Futbal
Ravi História umenia Volejbal
Ravi História umenia Tenis
Beth Chémia Tenis
Beth Chémia Futbal

Problém je v tom, že Ravi aj Beth hrajú viacero športov. Pre každý ďalší šport je potrebné pridať nový riadok.

Táto tabuľka zaviedla viachodnotovú závislosť, pretože odbor a šport sú od seba nezávislé, ale obe závisia od študenta. Toto je jednoduchý príklad a je ľahko identifikovateľný, ale viachodnotová závislosť by sa mohla stať problémom vo veľkej, komplexnej databáze.

Viachodnotová závislosť je napísaná X ->-> Y. V tomto prípade:

Student_Name ->-> Major

Student_Name43345 -6 > Sport

Toto sa číta ako "Meno študenta viacnásobne určuje Majora" a "Meno študenta viacrozhoduje šport."

Viachodnotová závislosť vždy vyžaduje aspoň tri atribúty, pretože pozostáva aspoň z dvoch atribútov, ktoré sú závislé od tretieho.

Viachodnotová závislosť a normalizácia

Tabuľka s viachodnotovou závislosťou porušuje štandard normalizácie štvrtej normálnej formy, pretože vytvára zbytočné redundancie a môže prispieť k nekonzistentným údajom. Aby sme to dosiahli na 4NF, je potrebné rozdeliť tieto informácie do dvoch tabuliek.

Tabuľka nižšie má teraz funkčnú závislosť Student_Name -> Major a žiadne viachodnotové závislosti:

Student_Name Major
Ravi História umenia
Ravi História umenia
Ravi História umenia
Beth Chémia
Beth Chémia

Táto tabuľka má tiež jednu funkčnú závislosť Student_Name -> Šport:

Student_Name Šport
Ravi Futbal
Ravi Volejbal
Ravi Tenis
Beth Tenis
Beth Futbal

Normalizácia sa často dosahuje zjednodušením zložitých tabuliek tak, aby obsahovali informácie súvisiace s jednou myšlienkou alebo témou, namiesto toho, aby jedna tabuľka obsahovala príliš veľa nesúrodých informácií.

Odporúča: