Viševrijedna ovisnost u bazama podataka

Sadržaj:

Viševrijedna ovisnost u bazama podataka
Viševrijedna ovisnost u bazama podataka
Anonim

U relacijskoj bazi podataka, ovisnost se javlja kada informacije pohranjene u istoj tablici baze podataka jedinstveno određuju druge informacije pohranjene u istoj tablici. Višeznačna zavisnost se javlja kada prisustvo jednog ili više redova u tabeli implicira prisustvo jednog ili više drugih redova u istoj tabeli. Drugim rečima, dva atributa (ili kolone) u tabeli su nezavisni jedan od drugog, ali oba zavise od trećeg atributa.

Image
Image

Viševrijedna zavisnost sprječava normalizaciju standardnog četvrtog normalnog oblika. Relacijske baze podataka slijede pet normalnih oblika koji predstavljaju smjernice za dizajn zapisa. One sprječavaju anomalije ažuriranja i nedosljednosti u podacima. Četvrta normalna forma bavi se odnosima više prema jedan u bazi podataka.

Funkcionalna zavisnost naspram viševrijedne zavisnosti

Da biste razumjeli viševrijednu zavisnost, korisno je ponovo pogledati šta je funkcionalna zavisnost.

Ako atribut X jedinstveno određuje atribut Y, tada je Y funkcionalno ovisan o X. Ovo se piše kao X -> Y. Na primjer, u tabeli Studenti ispod, Student_Name određuje smjer:

Ime_studenta Major
Ravi Historija umjetnosti
Beth Hemija

Ova funkcionalna zavisnost se može napisati: Student_Name -> Major. Svaki Student_Name određuje tačno jedan smjer i ne više.

Ako želite da baza podataka prati i sportove koji se bave ovim studentima, možda mislite da je najlakši način da to uradite samo da dodate još jednu kolonu pod nazivom Sport:

Ime_studenta Major Sport
Ravi Historija umjetnosti Soccer
Ravi Historija umjetnosti Odbojka
Ravi Historija umjetnosti Tenis
Beth Hemija Tenis
Beth Hemija Soccer

Ovdje problem je što se i Ravi i Beth bave nekoliko sportova. Za svaki dodatni sport potrebno je dodati novi red.

Ova tabela je uvela viševrednostnu zavisnost jer su smer i sport nezavisni jedan od drugog, ali oba zavise od učenika. Ovo je jednostavan primjer i lako ga je prepoznati, ali ovisnost o više vrijednosti može postati problem u velikoj, složenoj bazi podataka.

Piše se višeznačna zavisnost X ->-> Y. U ovom slučaju:

Ime_studenta ->-> Major

Student_Name -24-64 > Sport

Ovo se čita kao "Ime_studenta višestruko određuje glavni predmet" i "Ime_učenika višestruko određuje sport."

Zavisnost sa više vrijednosti uvijek zahtijeva najmanje tri atributa jer se sastoji od najmanje dva atributa koja zavise od trećeg.

Višestruka zavisnost i normalizacija

Tabela sa viševrijednom zavisnošću krši standard normalizacije četvrtog normalnog oblika jer stvara nepotrebne redundancije i može doprinijeti nedosljednim podacima. Da biste ovo doveli do 4NF, potrebno je ovu informaciju podijeliti u dvije tabele.

Tabela ispod sada ima funkcionalnu zavisnost Student_Name -> Major, i nema viševrijednih zavisnosti:

Ime_studenta Major
Ravi Historija umjetnosti
Ravi Historija umjetnosti
Ravi Historija umjetnosti
Beth Hemija
Beth Hemija

Dok ova tabela takođe ima jednu funkcionalnu zavisnost od Student_Name -> Sport:

Ime_studenta Sport
Ravi Soccer
Ravi Odbojka
Ravi Tenis
Beth Tenis
Beth Soccer

Normalizacija se često postiže pojednostavljivanjem složenih tabela tako da sadrže informacije vezane za jednu ideju ili temu umjesto pokušaja da jedna tabela sadrži previše različitih informacija.

Preporučuje se: