Տվյալների բազայի ձեւավորման բազմարժութային կախվածություն

Բազմարժութային կախվածությունը խախտում է չորրորդ նորմալ ձեւը

Հարաբերական տվյալների բազայում կախվածություն է առաջանում, երբ նույն տվյալների բազայի աղյուսակում պահվող տեղեկությունները միանշանակորեն նույնականացնում են նույն աղյուսակում պահվող այլ տեղեկությունները: Բազմակի կախվածությունը տեղի է ունենում, երբ սեղանի մեկ կամ ավելի տողերի առկայությունը ենթադրում է նույն աղյուսակում մեկ կամ ավելի այլ տողերի առկայություն: Այլ կերպ ասած `սեղանի մեջ երկու հատկանիշներ (կամ սյուներ) միմյանցից անկախ են, բայց երկուսն էլ կախված են երրորդ հատկանիշից:

Միակողմանի կախվածությունը խանգարում է նորմալացման ստանդարտ չորրորդ նորմալ ձեւը (4NF): Հարաբերական տվյալների բազաները հետեւում են հինգ նորմալ ձեւերի, որոնք ներկայացնում են ռեկորդային նախագծման ուղեցույցներ: Նրանք կանխում են թարմացման անոմալիաներ եւ տվյալների անհամապատասխանություններ: Չորրորդ նորմալ ձեւը տվյալների շտեմարանում շատ-մի հարաբերություններ ունի:

Ֆունկցիոնալ կախվածություն եւ բազմակի կախվածություն

Հասկանալ միմյանցից կախվածությունը, օգտակար է, թե ինչ ֆունկցիոնալ կախվածություն է:

Եթե ​​հատկանիշ X- ը բացառիկ կերպով որոշում է Y հատկությունը, ապա Y- ը ֆունկցիոնալ կախված է X- ի վրա: Սա գրված է որպես X-> Y: Օրինակ, ստորեւ ներկայացված ուսանողական աղյուսակում Student_Name- ը սահմանում է Major:

Ուսանողները
Ուսանողի անունը Մայոր
Ռավի Արվեստի պատմություն
Բեթ Քիմիա


Այս ֆունկցիոնալ կախվածությունը կարող է գրվել. Student_Name -> Major : Յուրաքանչյուր Student_Name- ը որոշում է հենց մեկ Major, եւ ոչ ավելին:

Եթե ​​ցանկանում եք, որ տվյալների բազան նույնպես հետեւի այդ ուսանողներին սպորտին, ապա կարող եք մտածել, թե դա ամենադյուրին ճանապարհն է, պարզապես ավելացրեք մեկ այլ սյուն `Sports:

Ուսանողները
Ուսանողի անունը Մայոր Սպորտ
Ռավի Արվեստի պատմություն Ֆուտբոլ
Ռավի Արվեստի պատմություն Վոլեյբոլ
Ռավի Արվեստի պատմություն Թենիս
Բեթ Քիմիա Թենիս
Բեթ Քիմիա Ֆուտբոլ


Խնդիրն այն է, որ Ռավիի եւ Բեթի միջեւ շատ սպորտեր են խաղում: Անհրաժեշտ է լրացնել լրացուցիչ սպորտի համար նոր տող:

Այս աղյուսակը ներկայացրել է մի քանի կախվածություն, քանի որ խոշոր եւ սպորտը միմյանցից անկախ են, բայց երկուսն էլ կախված են ուսանողից:

Սա պարզ օրինակ է եւ հեշտությամբ ճանաչելի է, բայց բազմաբնույթ կախվածությունը կարող է դառնալ մեծ, բարդ տվյալների բազայում:

Մի բազմալեզու կախվածությունը գրված է X -> -> Y: Այս դեպքում `

Student_Name -> -> Major
Student_Name -> -> Սպորտ

Սա կարդացվում է որպես «Student_Name multidetermines Major» եւ «Student_Name multidetines of Sport»:

Միակողմանի կախվածությունը միշտ պահանջում է առնվազն երեք հատկանիշ, քանի որ բաղկացած է առնվազն երկու հատկանիշներից, որոնք կախված են երրորդից:

Բազմակի կախվածություն եւ նորմալացում

Միարժեք կախվածություն ունեցող աղյուսակը խախտում է չորրորդ նորմալ ձեւի (4NK) նորմալացման ստանդարտը, քանի որ այն ստեղծում է ավելորդ վերագնահատում եւ կարող է նպաստել անհամապատասխան տվյալների: Այսինքն 4NF- ին բերելու համար անհրաժեշտ է այս տեղեկատվությունը կոտրել երկու աղյուսակ:

Ստորեւ ներկայացված աղյուսակը այժմ Student_Name-> Major- ի ֆունկցիոնալ կախվածությունն ունի եւ ոչ մի բազմակի կախվածություն.

Ուսանողներ եւ հիմնական ուղղություններ
Ուսանողի անունը Մայոր
Ռավի Արվեստի պատմություն
Ռավի Արվեստի պատմություն
Ռավի Արվեստի պատմություն
Բեթ Քիմիա
Բեթ Քիմիա

Մինչ այս աղյուսակը ունի Student_Name- ի միակ ֆունկցիոնալ կախվածությունը `Sport:

Ուսանողներ եւ սպորտ
Ուսանողի անունը Սպորտ
Ռավի Ֆուտբոլ
Ռավի Վոլեյբոլ
Ռավի Թենիս
Բեթ Թենիս
Բեթ Ֆուտբոլ

Հասկանալի է, որ կարգավորումը հաճախ կարգավորվում է բարդ սեղանների պարզեցման միջոցով, որպեսզի նրանք պարունակեն մի գաղափարի կամ թեմայի վերաբերյալ տեղեկատվություն, այլ ոչ թե մեկ աղյուսակ պատրաստելը, չափազանց անհամապատասխան տեղեկատվություն պարունակող: