Հարաբերական տվյալների բազայում կախվածություն է առաջանում, երբ տվյալների բազայի նույն աղյուսակում պահվող տեղեկատվությունը եզակիորեն որոշում է նույն աղյուսակում պահվող այլ տեղեկությունները: Բազմարժեք կախվածություն առաջանում է, երբ աղյուսակում մեկ կամ մի քանի տողերի առկայությունը ենթադրում է նույն աղյուսակում մեկ կամ մի քանի այլ տողերի առկայություն: Այլ կերպ ասած՝ աղյուսակի երկու հատկանիշ (կամ սյունակ) միմյանցից անկախ են, բայց երկուսն էլ կախված են երրորդ հատկանիշից:
Բազմարժեք կախվածությունը կանխում է նորմալացման ստանդարտ չորրորդ նորմալ ձևը: Հարաբերական տվյալների բազաները հետևում են հինգ նորմալ ձևերի, որոնք ներկայացնում են գրառումների ձևավորման ուղեցույցներ:Նրանք կանխում են տվյալների թարմացման անոմալիաները և անհամապատասխանությունները: Չորրորդ նորմալ ձևը վերաբերում է տվյալների բազայում շատ-մեկ հարաբերություններին:
Ֆունկցիոնալ կախվածություն ընդդեմ բազմարժեք կախվածության
Բազմարժեք կախվածությունը հասկանալու համար օգտակար է վերանայել, թե ինչ է ֆունկցիոնալ կախվածությունը:
Եթե X հատկանիշը եզակիորեն որոշում է Y հատկանիշը, ապա Y-ը ֆունկցիոնալորեն կախված է X-ից: Սա գրված է որպես X -> Y: Օրինակ, ստորև բերված Ուսանողների աղյուսակում Student_Name-ը որոշում է հիմնականը:
Ուսանողի_անուն | Մայոր |
---|---|
Ռավի | Արվեստի պատմություն |
Բեթ | Քիմիա |
Այս ֆունկցիոնալ կախվածությունը կարող է գրվել՝ Ուսանողի_անուն -> Հիմնական: Յուրաքանչյուր ուսանող_անուն սահմանում է մեկ հիմնական և ոչ ավելին:
Եթե ցանկանում եք, որ տվյալների բազան նաև հետևի այս ուսանողների սպորտաձևերին, կարող եք մտածել, որ դա անելու ամենահեշտ ձևը պարզապես ավելացնել մեկ այլ սյունակ՝ վերնագրված Sport::
Ուսանողի_անուն | Մայոր | Սպորտ |
---|---|---|
Ռավի | Արվեստի պատմություն | Ֆուտբոլ |
Ռավի | Արվեստի պատմություն | Վոլեյբոլ |
Ռավի | Արվեստի պատմություն | Թենիս |
Բեթ | Քիմիա | Թենիս |
Բեթ | Քիմիա | Ֆուտբոլ |
Խնդիրն այստեղ այն է, որ և՛ Ռավին, և՛ Բեթը խաղում են մի քանի սպորտաձևեր: Յուրաքանչյուր լրացուցիչ սպորտաձևի համար անհրաժեշտ է ավելացնել նոր տող։
Այս աղյուսակը ներկայացրել է բազմարժեք կախվածություն, քանի որ հիմնականը և սպորտը միմյանցից անկախ են, բայց երկուսն էլ կախված են ուսանողից: Սա պարզ օրինակ է և հեշտությամբ ճանաչելի, բայց բազմարժեք կախվածությունը կարող է խնդիր դառնալ մեծ, բարդ տվյալների բազայում:
Բազմարժեք կախվածությունը գրված է X ->-> Y: Այս դեպքում՝
Ուսանողի_անուն ->-> Գլխավոր
Ուսանողի_անուն -2633 > Սպորտ
Սա կարդացվում է որպես «Ուսանողի_անունը բազմորոշում է հիմնականը» և «Ուսանողի_անունը բազմորոշում է սպորտը»:
Բազմարժեք կախվածությունը միշտ պահանջում է առնվազն երեք հատկանիշ, քանի որ այն բաղկացած է առնվազն երկու հատկանիշից, որոնք կախված են երրորդից:
Բազմարժեք կախվածություն և նորմալացում
Բազմարժեք կախվածությամբ աղյուսակը խախտում է չորրորդ նորմալ ձևի նորմալացման ստանդարտը, քանի որ այն ստեղծում է անհարկի ավելորդություններ և կարող է նպաստել անհամապատասխան տվյալների առաջացմանը: Դա մինչև 4NF հասցնելու համար անհրաժեշտ է այս տեղեկատվությունը բաժանել երկու աղյուսակի:
Ստորև բերված աղյուսակն այժմ ունի Student_Name-ի ֆունկցիոնալ կախվածություն -> Հիմնական և ոչ մի բազմարժեք կախվածություն.
Ուսանողի_անուն | Մայոր |
---|---|
Ռավի | Արվեստի պատմություն |
Ռավի | Արվեստի պատմություն |
Ռավի | Արվեստի պատմություն |
Բեթ | Քիմիա |
Բեթ | Քիմիա |
Մինչ այս աղյուսակը նաև ունի մեկ գործառական կախվածություն Student_Name -> Սպորտ.
Ուսանողի_անուն | Սպորտ |
---|---|
Ռավի | Ֆուտբոլ |
Ռավի | Վոլեյբոլ |
Ռավի | Թենիս |
Բեթ | Թենիս |
Բեթ | Ֆուտբոլ |
Նորմալացումը հաճախ իրականացվում է բարդ աղյուսակների պարզեցմամբ, որպեսզի դրանք պարունակեն մեկ գաղափարի կամ թեմայի հետ կապված տեղեկատվություն, այլ ոչ թե փորձելով մեկ աղյուսակը պարունակի չափազանց շատ տարբեր տեղեկություններ: