Լրիվ ֆունկցիոնալ կախվածություն տվյալների շտեմարանում կարգավորելու համար

Լրիվ ֆունկցիոնալ կախվածությունը տվյալների բազայի նորմալացման վիճակ է, որը հավասարեցնում է երկրորդ բնական ձեւի (2NF) նորմալացման ստանդարտին: Կարճ ասած, դա նշանակում է, որ այն համապատասխանում է Առաջին Normal Form (1NF) պահանջներին, եւ բոլոր առանցքային հատկանիշները լիովին գործունակորեն կախված են առաջնային բանալինից:

Սա ոչ թե բարդ է, որքան հնչում է: Այս մասին ավելի մանրամասն քննարկենք:

Առաջին բնականոն ձեւի ամփոփում

Նախքան տվյալների բազան կարող է լիովին գործունակորեն կախված լինել, այն պետք է նախ ստանա առաջին Normal ձեւը :

Այս ամենը նշանակում է, որ յուրաքանչյուր հատկանիշ պետք է ունենա միակ, ատոմային արժեք:

Օրինակ, հետեւյալ աղյուսակը չի համապատասխանում 1NF- ին, քանի որ Tina- ի աշխատակիցը կապված է երկու վայրի հետ, երկուսն էլ մեկ խցում.

Առաջին նորմալ ձեւը չպահպանելը
Աշխատակիցը Որտեղից
Ջոն Լոս Անջելես
Թինա Լոս Անջելես, Չիկագո

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

Առաջին նորմալ ձեւի համապատասխանությունը
Աշխատակիցը Որտեղից
Ջոն Լոս Անջելես
Թինա Լոս Անջելես
Թինա Չիկագո

Սակայն 1NF- ն դեռեւս բավարար չէ տվյալների հետ կապված խնդիրներից խուսափելու համար:

Ինչպես 2NF- ն աշխատում է ապահովել ամբողջական կախվածություն

Անկախ կախված լինելու համար բոլոր ոչ թեկնածուի հիմնական հատկանիշները պետք է կախված լինեն առաջնային բանալին: (Հիշեք, թեկնածուի հիմնական հատկանիշը ցանկացած բանալի (օրինակ, առաջնային կամ օտարերկրյա բանալին) օգտագործվում է տվյալների բազայի յուրահատուկ հայտնաբերման համար:

Տվյալների շտեմարանների դիզայներները օգտագործում են նշում, նկարագրելու համար հատկանիշների կախվածությունը.

Եթե ​​Ա հատկանիշը սահմանում է B- ի արժեքը, մենք գրում ենք այս A-> B- նշանակում է, որ B- ն ֆունկցիոնալ կախված է Ա-ում: Այս հարաբերություններում A- ը սահմանում է B- ի արժեքը, իսկ B- ն կախված է Ա-ից:

Օրինակ, Աշխատակազմի հետեւյալ ստորաբաժանման ներքո EmployeeID- ը եւ DeptID- ը երկուսն էլ թեկնածուական ստեղներ են. EmployeeID- ը աղյուսակի առաջնային բանալին է, իսկ DeptID- ը օտարերկրյա բանալին է:

Ցանկացած այլ հատկանիշ, այս դեպքում, EmployeeName- ի եւ DeptName- ը պետք է կախված լինեն հիմնական արժեքից ստացվող արժեքից:

Աշխատակիցների ստորաբաժանումներ
EmployeeID- ը Աշխատողի անունը DeptID- ը DeptName
Emp1 Ջոն Dept001 Ֆինանսներ
Emp2 Թինա Dept003 Վաճառք
Emp3 Կառլոս Dept001 Ֆինանսներ

Այս պարագայում սեղանը լիովին կախված չէ, քանի որ EmployeeName- ն կախված է առաջնային բանալի EmployeeID- ից, DeptName կախված է DeptID- ի փոխարեն: Սա կոչվում է մասնակի կախվածություն :

Այս աղյուսակը համապատասխանում է 2NF- ին, պետք է առանձնացնել տվյալները երկու աղյուսակներում.

Աշխատակիցներ
EmployeeID- ը Աշխատողի անունը DeptID- ը
Emp1 Ջոն Dept001
Emp2 Թինա Dept003
Emp3 Կառլոս Dept001

Մենք հեռացնում ենք DeptName- ի հատկանիշը Աշխատակիցների աղյուսակում եւ ստեղծում ենք նոր աղյուսակի բաժիններ .

Բաժիններ
DeptID- ը DeptName
Dept001 Ֆինանսներ
Dept002 Մարդկային ռեսուրսներ
Dept003 Վաճառք

Այժմ աղյուսակների միջեւ հարաբերությունները լիովին կախված են կամ 2NF- ում:

Ինչու է լիարժեք կախվածությունը կարեւոր

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

Օրինակ, վերը նշված սյունակում դիտարկեք միայն 1NF- ին: Ահա, կրկին.

Առաջին նորմալ ձեւի համապատասխանությունը
Աշխատակիցը Որտեղից
Ջոն Լոս Անջելես
Թինա Լոս Անջելես
Թինա Չիկագո

Tina- ն ունի երկու գրառում: Եթե ​​մենք թարմացնենք, առանց գիտակցելու, որ կան երկու, արդյունքը կլինի անհամապատասխան տվյալներ:

Կամ, եթե ինչ-որ մեկը ցանկանում է ավելացնել աշխատակցին այս սեղանին, բայց մենք դեռ տեղյակ չենք: Մենք կարող ենք նույնիսկ թույլ չտալ, որ նոր աշխատակից ավելացնենք, եթե Տեղի հատկանիշը թույլ չի տալիս NULL արժեքներ:

Ճիշտ կախվածությունը ամբողջ պատկերը չէ, այնուամենայնիվ, երբ խոսքը վերաբերում է նորմալացմանը: Դուք պետք է համոզվեք, որ ձեր տվյալների բազան գտնվում է երրորդ հերթական ձեւաչափով (3NF):