Բազմարժեք կախվածություն տվյալների բազաներում

Բովանդակություն:

Բազմարժեք կախվածություն տվյալների բազաներում
Բազմարժեք կախվածություն տվյալների բազաներում
Anonim

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

Image
Image

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

Ֆունկցիոնալ կախվածություն ընդդեմ բազմարժեք կախվածության

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

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

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

Այս ֆունկցիոնալ կախվածությունը կարող է գրվել՝ Ուսանողի_անուն -> Հիմնական: Յուրաքանչյուր ուսանող_անուն սահմանում է մեկ հիմնական և ոչ ավելին:

Եթե ցանկանում եք, որ տվյալների բազան նաև հետևի այս ուսանողների սպորտաձևերին, կարող եք մտածել, որ դա անելու ամենահեշտ ձևը պարզապես ավելացնել մեկ այլ սյունակ՝ վերնագրված Sport::

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

Խնդիրն այստեղ այն է, որ և՛ Ռավին, և՛ Բեթը խաղում են մի քանի սպորտաձևեր: Յուրաքանչյուր լրացուցիչ սպորտաձևի համար անհրաժեշտ է ավելացնել նոր տող։

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

Բազմարժեք կախվածությունը գրված է X ->-> Y: Այս դեպքում՝

Ուսանողի_անուն ->-> Գլխավոր

Ուսանողի_անուն -2633 > Սպորտ

Սա կարդացվում է որպես «Ուսանողի_անունը բազմորոշում է հիմնականը» և «Ուսանողի_անունը բազմորոշում է սպորտը»:

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

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

Բազմարժեք կախվածությամբ աղյուսակը խախտում է չորրորդ նորմալ ձևի նորմալացման ստանդարտը, քանի որ այն ստեղծում է անհարկի ավելորդություններ և կարող է նպաստել անհամապատասխան տվյալների առաջացմանը: Դա մինչև 4NF հասցնելու համար անհրաժեշտ է այս տեղեկատվությունը բաժանել երկու աղյուսակի:

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

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

Մինչ այս աղյուսակը նաև ունի մեկ գործառական կախվածություն Student_Name -> Սպորտ.

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

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

Խորհուրդ ենք տալիս: