Բազմարժութային կախվածությունը խախտում է չորրորդ նորմալ ձեւը
Հարաբերական տվյալների բազայում կախվածություն է առաջանում, երբ նույն տվյալների բազայի աղյուսակում պահվող տեղեկությունները միանշանակորեն նույնականացնում են նույն աղյուսակում պահվող այլ տեղեկությունները: Բազմակի կախվածությունը տեղի է ունենում, երբ սեղանի մեկ կամ ավելի տողերի առկայությունը ենթադրում է նույն աղյուսակում մեկ կամ ավելի այլ տողերի առկայություն: Այլ կերպ ասած `սեղանի մեջ երկու հատկանիշներ (կամ սյուներ) միմյանցից անկախ են, բայց երկուսն էլ կախված են երրորդ հատկանիշից:
Միակողմանի կախվածությունը խանգարում է նորմալացման ստանդարտ չորրորդ նորմալ ձեւը (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:
Ուսանողի անունը | Սպորտ |
---|---|
Ռավի | Ֆուտբոլ |
Ռավի | Վոլեյբոլ |
Ռավի | Թենիս |
Բեթ | Թենիս |
Բեթ | Ֆուտբոլ |
Հասկանալի է, որ կարգավորումը հաճախ կարգավորվում է բարդ սեղանների պարզեցման միջոցով, որպեսզի նրանք պարունակեն մի գաղափարի կամ թեմայի վերաբերյալ տեղեկատվություն, այլ ոչ թե մեկ աղյուսակ պատրաստելը, չափազանց անհամապատասխան տեղեկատվություն պարունակող: