Daudzvērtīga atkarība datu bāzēs

Satura rādītājs:

Daudzvērtīga atkarība datu bāzēs
Daudzvērtīga atkarība datu bāzēs
Anonim

Relāciju datu bāzē atkarība rodas, ja tajā pašā datu bāzes tabulā saglabātā informācija unikāli nosaka citu tajā pašā tabulā saglabāto informāciju. Daudzvērtību atkarība rodas, ja vienas vai vairāku rindu klātbūtne tabulā nozīmē vienas vai vairāku citu rindu klātbūtni tajā pašā tabulā. Citiem vārdiem sakot, divi atribūti (vai kolonnas) tabulā ir neatkarīgi viens no otra, bet abi ir atkarīgi no trešā atribūta.

Image
Image

Daudzvērtību atkarība novērš normalizācijas standarta ceturto normālo formu. Relāciju datu bāzēs tiek izmantotas piecas parastās formas, kas atspoguļo ierakstu izstrādes vadlīnijas. Tie novērš atjaunināšanas anomālijas un neatbilstības datos. Ceturtā parastā forma attiecas uz daudzām attiecībām datu bāzē.

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

Lai izprastu daudzvērtību atkarību, ir lietderīgi vēlreiz apskatīt, kas ir funkcionālā atkarība.

Ja atribūts X unikāli nosaka atribūtu Y, tad Y ir funkcionāli atkarīgs no X. Tas ir rakstīts kā X -> Y. Piemēram, tālāk esošajā tabulā Studenti Studenta_nosaukums nosaka galveno:

Studenta_vārds Majors
Ravi Mākslas vēsture
Beta Ķīmija

Šo funkcionālo atkarību var uzrakstīt: Studenta_nosaukums -> Galvenā. Katrs Student_Name nosaka tieši vienu specialitāti un ne vairāk.

Ja vēlaties, lai datu bāze izsekotu arī sporta veidus, kuros šie studenti nodarbojas, varat 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
Beta Ķīmija Teniss
Beta Ķīmija Futbols

Šeit problēma ir tā, ka gan Ravi, gan Beta nodarbojas ar vairākiem sporta veidiem. Katram papildu sporta veidam ir jāpievieno jauna rinda.

Šajā tabulā ir ieviesta daudzvērtīga atkarība, jo specialitāte un sporta veids ir neatkarīgi viens no otra, bet abi ir atkarīgi no studenta. Šis ir vienkāršs piemērs un viegli identificējams, taču daudzvērtību atkarība var kļūt par problēmu lielā, sarežģītā datu bāzē.

Daudzvērtību atkarība ir uzrakstīta X ->-> Y. Šajā gadījumā:

Studenta_Vārds ->-> Major

Studenta_vārds34 > Sports

Tas tiek lasīts kā "Studenta_Vārds vairākkārt nosaka galveno" un "Studenta_vārds daudznosaka sportu."

Daudzvērtību atkarībai vienmēr ir nepieciešami vismaz trīs atribūti, jo tā sastāv no vismaz diviem atribūtiem, kas ir atkarīgi no trešā.

Daudzvērtību atkarība un normalizēšana

Tabula ar daudzvērtību atkarību pārkāpj ceturtās normālās formas normalizācijas standartu, jo rada nevajadzīgas dublēšanas un var veicināt pretrunīgus datus. Lai to palielinātu līdz 4NF, šī informācija ir jāsadala divās tabulās.

Tālāk esošajā tabulā tagad ir funkcionālā atkarība no Student_Name -> Major, un nav vairāku vērtību atkarību:

Studenta_vārds Majors
Ravi Mākslas vēsture
Ravi Mākslas vēsture
Ravi Mākslas vēsture
Beta Ķīmija
Beta Ķīmija

Lai gan šai tabulai ir arī viena funkcionālā atkarība no Student_Name -> Sports:

Studenta_vārds Sports
Ravi Futbols
Ravi Volejbols
Ravi Teniss
Beta Teniss
Beta Futbols

Normalizāciju bieži panāk, vienkāršojot sarežģītas tabulas, lai tās saturētu ar vienu ideju vai tēmu saistītu informāciju, nevis mēģinātu panākt, lai viena tabula saturētu pārāk daudz atšķirīgas informācijas.

Ieteicams: