Multivērtība atkarībā no datubāzes dizaina

Daudzvalodu atkarība noņem ceturto parasto formu

Relāciju datubāzē atkarība rodas tad, kad tajā pašā datu bāzes tabulā saglabātā informācija viennozīmīgi nosaka citu informāciju, kas saglabāta tajā pašā tabulā. Daudzvalodu atkarība rodas tad, kad vienas vai vairāku rindu klātbūtne tabulā nozīmē vienas vai vairāku citu rindu klātbūtni tajā pašā tabulā. Vēl viens veids, ka tabulā divi atribūti (vai kolonnas) ir savstarpēji neatkarīgi, bet abi abi ir atkarīgi no trešā atribūta.

Daudzvalodu atkarība novērš standartizācijas standarta ceturto normālo formu (4NF). Relāciju datu bāzēs seko piecas parastās formas, kurās ir norādes par ierakstu dizainu. Tās novērš datu anomāliju un neatbilstību atjaunināšanu. Ceturtā standarta veidlapa attiecas uz daudzu pret vienu attiecībām datu bāzē .

Funkcionālā atkarība pret daudzvērtīgo atkarību

Lai izprastu daudzvērtīgu atkarību, ir noderīgi pārskatīt, kāda ir funkcionālā atkarība.

Ja atribūts X viennozīmīgi nosaka atribūtu Y, tad Y funkcionāli ir atkarīgs no X. Tas ir rakstīts kā X-> Y. Piemēram, Studentu tabulā zemāk Student_Name nosaka Major:

Studenti
Studenta vārds Majors
Ravi Mākslas vēsture
Beth Ķīmija


Šo funkcionālo atkarību var rakstīt: Student_Name -> Major . Katrs Student_Name nosaka tieši vienu Major, un ne vairāk.

Ja vēlaties, lai datubāze arī izsekotu sportu, ko šie studenti veic, jūs varētu domāt, ka vienkāršākais veids, kā to izdarīt, ir vienkārši pievienot vēl vienu sleju ar nosaukumu Sports:

Studenti
Studenta vārds Majors Sports
Ravi Mākslas vēsture Futbols
Ravi Mākslas vēsture Volejbols
Ravi Mākslas vēsture Teniss
Beth Ķīmija Teniss
Beth Ķīmija Futbols


Problēma ir tā, ka gan Ravi, gan Beth spēlē vairākus sporta veidus. Katram papildu sporta veidam ir jāpievieno jauna rinda.

Šajā tabulā ir ieviesta daudzvērtīga atkarība, jo galvenie un sports ir viens no otra neatkarīgi, bet abi ir atkarīgi no studenta.

Šis ir vienkāršs piemērs un viegli identificējams, bet daudzvalodu atkarība var kļūt par problēmu lielā, sarežģītā datubāzē.

Daudzvalodu atkarība tiek rakstīta X -> -> Y. Šajā gadījumā:

Student_Name -> -> Major
Student_Name -> -> Sports

Tas tiek lasīts kā "Student_Name multidetermines Major" un "Student_Name multidetermines Sport".

Daudzvalodu atkarība vienmēr prasa vismaz trīs atribūtus, jo tā sastāv no vismaz diviem atribūtiem, kas ir atkarīgi no trešās.

Daudzvalodu atkarība un normalizācija

Tabula ar daudzvērtīgu atkarību pārkāpj Ceturtās Normālās formas (4NK) normalizācijas standartu, jo tas rada nevajadzīgas atlaišanas gadījumus un var veicināt neatbilstošus datus. Lai to sasniegtu līdz 4NF, šī informācija jāpārtrauc divās tabulās.

Tālāk esošajā tabulā tagad ir Student_Name -> Major funkcionālā atkarība un nav daudzvērtīgu atkarību:

Studenti un maģistri
Studenta vārds Majors
Ravi Mākslas vēsture
Ravi Mākslas vēsture
Ravi Mākslas vēsture
Beth Ķīmija
Beth Ķīmija

Kaut arī šim tabulam ir viena funkcionāla atkarība no Student_Name -> Sports:

Studenti un sports
Studenta vārds Sports
Ravi Futbols
Ravi Volejbols
Ravi Teniss
Beth Teniss
Beth Futbols

Ir skaidrs, ka normalizēšanu bieži vien risina, vienkāršojot sarežģītas tabulas tā, lai tajās būtu informācija, kas saistīta ar vienu ideju vai tēmu, nevis mēģinājums izveidot vienu tabulu ar pārāk daudz atšķirīgu informāciju.