Višestrukovna zavisnost u dizajniranju baza podataka

Višestruka zavisnost prekida četvrtu normalnu formu

U relacionoj bazi podataka, zavisnost se javlja kada informacije koje se čuvaju u istoj tablici baze podataka jedinstveno određuju druge informacije koje se čuvaju u istoj tabeli. Multivalentna zavisnost se javlja kada prisustvo jednog ili više redova u tabeli podrazumeva prisustvo jednog ili više drugih redova u toj istoj tabeli. Stavite drugi način, dva atributa (ili kolona) u tabeli su nezavisna jedni od drugih, ali oboje zavise od trećeg atributa.

Multivalentna zavisnost sprečava normalizaciju standardnog četvrtog normalnog oblika (4NF). Relacijske baze podataka prate pet standardnih formulara koji predstavljaju smernice za dizajn zapisa. Oni sprečavaju anomalije ažuriranja i nedoslednosti u podacima. Četvrti uobičajeni oblik bavi se odnosom mnogih sa jednim u bazi podataka .

Funkcionalna zavisnost u odnosu na višestruku zavisnost

Da bi se shvatila zavisnost od višenamenskih, korisno je da se ponovo osvrnemo na funkcionalnu zavisnost.

Ako atribut X jedinstveno određuje atribut Y, onda je Y funkcionalno zavisan od X. Ovo je napisano kao X -> Y. Na primer, u Tabeli Studenti ispod, Student_Name određuje glavnog:

Studenti
Ime studenta Majore
Ravi Istorija umjetnosti
Beth Hemija


Ova funkcionalna zavisnost može biti napisana: Student_Name -> Major . Svaki Student_Name određuje tačno jedan Major i više.

Ako želite da baza podataka takođe prati sportove koje učenici uzimaju, možda mislite da je najlakši način da to uradite samo da dodate novu kolonu pod nazivom Sport:

Studenti
Ime studenta Majore Sport
Ravi Istorija umjetnosti Fudbal
Ravi Istorija umjetnosti Odbojka
Ravi Istorija umjetnosti Tenis
Beth Hemija Tenis
Beth Hemija Fudbal


Problem je u tome što Ravi i Beth igraju više sportova. Neophodno je dodati novi red za svaki dodatni sport.

Ova tabela je uvela višenamensku zavisnost, jer glavni i sport su nezavisni jedni od drugih, ali oboje zavise od učenika.

Ovo je jednostavan primjer i lako se može prepoznati, ali višestruka zavisnost može postati problem u velikoj, složenoj bazi podataka.

Višestukovana zavisnost je napisana X -> -> Y. U ovom slučaju:

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

Ovo se čita kao "Student_Name multidetermines Major" i "Student_Name multidetermines Sport."

Višestuvanost zavisnosti uvek zahteva najmanje tri atribute jer se sastoji od najmanje dva atributa koji zavise od trećine.

Višestruka zavisnost i normalizacija

Tabela sa višenamjenskom zavisnošću krši standardizaciju standardne četvrte normalne forme (4NK) jer stvara nepotrebne tehnološke viškove i može doprinijeti nekonzistentnim podacima. Da bi se ovo dovelo do 4NF, neophodno je razbiti ove informacije u dvije tabele.

Donja tabela sada ima funkcionalnu zavisnost Student_Name -> Major i bez višenamenskih zavisnosti:

Studenti i majstori
Ime studenta Majore
Ravi Istorija umjetnosti
Ravi Istorija umjetnosti
Ravi Istorija umjetnosti
Beth Hemija
Beth Hemija

Iako ova tabela ima i jednu funkcionalnu zavisnost Student_Name -> Sport:

Studenti i sport
Ime studenta Sport
Ravi Fudbal
Ravi Odbojka
Ravi Tenis
Beth Tenis
Beth Fudbal

Jasno je da se normalizaciji često obraća pojednostavljenjem složenih tabela, tako da sadrže informacije vezane za jednu ideju ili temu umesto da pokušaju napraviti jednu tablicu koja sadrži previše različitih informacija.