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:
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:
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:
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:
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.