Որոնք են տվյալների բազայի կախվածությունը:

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

Տվյալների բազայի կախվածությունը / ֆունկցիոնալ կախվածությունը

Կախվածությունը տվյալների շտեմարանում տեղի է ունենում, երբ նույն տվյալների բազայի աղյուսակում պահվող տեղեկությունները միանգամայն որոշում են նույն աղյուսակում պահվող այլ տեղեկություններ: Դուք նաեւ կարող եք նկարագրել այն որպես հարաբերություն, որտեղ իմանալով մեկ հատկանիշի (կամ մի շարք հատկանիշների) արժեքը բավական է ձեզ համար մեկ սեղանի այլ հատկանիշի (կամ հատկանիշների շարք) արժեքը:

Ասելով, որ սեղանի հատկանիշների միջեւ կախվածություն կա, նույնն է, որ կա այդ հատկանիշների միջեւ ֆունկցիոնալ կախվածություն: Եթե ​​առկա է տվյալների բազայում կախվածություն, որ B հատկանիշը կախված է Ա հատկանիշից, ապա դա գրեք որպես «A -> B»:

Օրինակ, Սոցիալական ապահովության համարը (SSN) եւ անունը ցուցակի աշխատողների հատկանիշների ցանկում կարելի է ասել, որ անունը կախված է SSN- ով (կամ SSN-> անունը), քանի որ աշխատողի անունը կարող է առանձնահատուկ որոշվել SSN- ից: Այնուամենայնիվ, հակառակ հայտարարությունը (անունը `SSN) ճիշտ չէ, քանի որ մեկից ավելի աշխատողներ կարող են ունենալ նույն անունը, այլ տարբեր SSN- ները:

Աննշան ֆունկցիոնալ կախվածություններ

Աննշան ֆունկցիոնալ կախվածությունը տեղի է ունենում, երբ նկարագրում եք հատկանիշի ֆունկցիոնալ կախվածությունը բնորոշ հատկանիշների հավաքածուն, որը ներառում է բնորոշ հատկանիշը: Օրինակ, «{A, B} -> B» - չնչին ֆունկցիոնալ կախվածությունը, ինչպես «{name, SSN} -> SSN»: Այս տեսակի ֆունկցիոնալ կախվածությունը կոչվում է չնչին, քանի որ դա կարող է հանգեցնել առողջ իմաստով: Ակնհայտ է, որ եթե դուք արդեն գիտեք B արժեքը, ապա B- ի արժեքը կարող է բացառապես որոշվել այդ գիտելիքով:

Full ֆունկցիոնալ կախվածություններ

Ֆունկցիոնալ կախվածության պահանջները բավարարում են լիարժեք ֆունկցիոնալ կախվածությունը եւ ֆունկցիոնալ կախվածության ձախ կողմում ներկայացված հատկանիշների շարքը չի կարող կրճատվել հետագա: Օրինակ, «{SSN, age} -> անունը» ֆունկցիոնալ կախվածությունն է, բայց դա լիարժեք ֆունկցիոնալ կախվածություն չէ, քանի որ դուք կարող եք հեռացնել տարիքը հայտարարության ձախ կողմում առանց կախվածության հարաբերության վրա ազդելու:

Անցումային կախվածություններ

Անցումային կախվածությունը տեղի է ունենում, երբ առկա է անուղղակի փոխհարաբերություն, որն առաջացնում է ֆունկցիոնալ կախվածություն: Օրինակ, «A-> C- ը անցումային կախվածություն է, երբ ճիշտ է միայն այն պատճառով, որ« A-> B »եւ« B-> C- ը ճիշտ են:

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

Բազմակի կախվածությունը տեղի է ունենում, երբ սեղանի մեկ կամ ավելի տողերի առկայությունը ենթադրում է նույն աղյուսակում մեկ կամ ավելի այլ տողերի առկայություն: Օրինակ, պատկերացրեք մի մեքենա, որն արտադրում է ավտոմեքենաների բազմաթիվ մոդելներ, բայց միշտ էլ յուրաքանչյուր մոդելի համար կարմիր եւ կապույտ գույներ է տալիս: Եթե ​​ունեք սեղան, որը պարունակում է մոդելի անվանումը, գույնը եւ յուրաքանչյուր մեքենայի տարին, ընկերությունը արտադրում է, այդ աղյուսակում գոյություն ունի բազմաբնույթ կախվածություն : Եթե ​​կա որոշակի մոդելի անուն եւ տարվա կապույտ գիծ, ​​ապա պետք է լինի նույն շարքը, որը համապատասխանում է նույն մեքենայի կարմիր տարբերակին:

Կախվածության կարեւորությունը

Տվյալների բազայի կախվածությունը կարեւոր է հասկանալ, քանի որ ապահովում են տվյալների շտեմարանի նորմալացման համար օգտագործվող հիմնական կառուցվածքային բլոկները: Օրինակ: