Տվյալների շտեմարանի փոխհարաբերությունները

Տվյալների շտեմարանային հարաբերությունները բոլոր հարաբերական տվյալների բազաների հիմնական մասերն են

Կա հարաբերություն երկու բազայի աղյուսակների միջեւ, երբ մեկ աղյուսակում արտասահմանյան բանալին է, որը հղում է կատարում մեկ այլ աղյուսակի հիմնական բանալին: Սա պայմանական բազայի տերմինի հիմնական հասկացությունն է:

Ինչպես է օտարերկրյա գործը փոխհարաբերություններ հաստատել

Եկեք վերանայենք առաջնային եւ արտաքին բանալիների հիմունքները: Առաջնային բանալին յուրահատուկ նույնականացնում է յուրաքանչյուր գրառում սեղանին: Դա թեկնածուի բանալիի տեսակն է, որը սովորաբար սեղանի առաջին սյունն է եւ կարող է ավտոմատ կերպով գեներացվել է տվյալների բազայում `ապահովելու համար, որ այն եզակի է:

Օտարերկրյա ստեղնը հերթական թեկնածուի ստեղն է (ոչ առաջնային բանալին), որն օգտագործվում է գրառումը այլ աղյուսակում տվյալների կապելու համար:

Օրինակ, հաշվի առեք այս երկու աղյուսակը, որոնք բացահայտում են, թե որ ուսուցիչը դասավանդում է դասընթացին:

Այստեղ դասընթացների աղյուսակի առաջնային բանալին `Course_ID- ը: Արտասահմանյան բանալին Ուսուցիչ_ID է.

Դասընթացներ
Course_ID- ը Դասընթացի անվանումը Ուսուցիչ_ID
Course_001 Կենսաբանություն Ուսուցիչ_001
Course_002 Մաթեմատիկա Ուսուցիչ_001
Course_003 Անգլերեն Ուսուցիչ_003

Դուք կարող եք տեսնել, որ Դասընթացների օտարերկրյա բանալին համապատասխանում է ուսուցիչների առաջնային բանալին.

Ուսուցիչները
Ուսուցիչ_ID Ուսուցիչ_Name
Ուսուցիչ_001 Կարմեն
Ուսուցիչ_002 Վերոնիկա
Ուսուցիչ_003 Խորխե

Կարող ենք ասել, որ Teacher_ID օտարերկրյա բանալին օգնում է հաստատել դասընթացների եւ ուսուցիչների սեղանների միջեւ կապը:

Տվյալների շտեմարանի տեսակները

Օգտագործելով արտաքին բանալիների կամ այլ թեկնածուի ստեղներ, դուք կարող եք իրականացնել երեք տեսակի հարաբերություններ աղյուսակների միջեւ:

One-to-one : Այս տեսակի հարաբերությունը թույլ է տալիս միայն մեկ արձանագրություն հարաբերության երկու կողմերում:

Առաջնային բանալին վերաբերում է միայն մեկ գրառումին, կամ ոչ մեկը `մեկ այլ աղյուսակում: Օրինակ, ամուսնության մեջ յուրաքանչյուր ամուսին ունի միայն մեկ այլ ամուսնական զույգ: Նման փոխհարաբերությունները կարող են իրականացվել միայն մեկ սեղանի վրա, եւ, հետեւաբար, չի օգտագործվում օտարերկրյա բանալին:

One to to many : Մեկից ավելի շատ փոխհարաբերություններ թույլ են տալիս մեկ սեղանի վրա մեկ ռեկորդ ունենալ `կապված այլ աղյուսակի բազմակի գրառումների հետ:

Մտածեք բիզնեսը հաճախորդների եւ պատվերների աղյուսակ ունեցող տվյալների բազայի հետ:

Մեկ հաճախորդը կարող է ձեռք բերել բազմաթիվ պատվերներ, սակայն մեկ պատվիրանը չի կարող կապվել բազմակի հաճախորդների հետ: Հետեւաբար, Պատվերների աղյուսակը պարունակում է արտաքին բանալի, որը համապատասխանում է Հաճախորդների սեղանի առաջնային բանալին, իսկ Հաճախորդների աղյուսակը չպետք է արտասահմանյան բանալին մատնանշի Պատվերների աղյուսակում:

Շատ-շատերի համար . Սա բարդ հարաբերություններ է, որի մեջ շատ աղյուսակում բազմաթիվ գրառումները կարող են կապվել այլ աղյուսակի բազմաթիվ գրառումներին: Օրինակ, մեր բիզնեսը հավանաբար կարիք ունի ոչ միայն հաճախորդների եւ պատվերների սեղանների, այլեւ, նաեւ, արտադրանքի աղյուսակին:

Կրկին, Հաճախորդների եւ Պատվերի աղյուսակի միջեւ փոխհարաբերությունները մեկից շատ են, սակայն համարում են Պատվերի եւ արտադրանքի սեղանի միջեւ հարաբերությունները: Պատվերը կարող են պարունակել բազմաթիվ ապրանքներ, եւ արտադրանքը կարող է կապվել բազմակի պատվերների հետ. Մի քանի հաճախորդներ կարող են ներկայացնել այնպիսի պատվեր, որը պարունակում է որոշակի ապրանքներ: Նման հարաբերությունները պահանջում են առնվազն երեք աղյուսակ:

Ինչ է նշանակում տվյալների շտեմարանների փոխհարաբերությունները:

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

Ուսուցիչները եւ դասընթացները
Ուսուցիչ_ID Ուսուցիչ_Name Դասընթաց
Ուսուցիչ_001 Կարմեն Կենսաբանություն, Մաթեմատիկա
Ուսուցիչ_002 Վերոնիկա Մաթեմատիկա
Ուսուցիչ_003 Խորխե Անգլերեն

Այս դիզայնը անխոչընդոտ է եւ խախտում է տվյալների բազայի նորմալացման առաջին սկզբունքը, Առաջին Normal Form (1NF), որը նշում է, որ յուրաքանչյուր աղյուսակի բջիջը պետք է պարունակի մեկ, առանձին տվյալներ:

Կամ գուցե մենք որոշեցինք պարզապես ավելացնել երկրորդ ռեկորդ Carmen- ի համար, որպեսզի կիրառենք 1NF- ը.

Ուսուցիչները եւ դասընթացները
Ուսուցիչ_ID Ուսուցիչ_Name Դասընթաց
Ուսուցիչ_001 Կարմեն Կենսաբանություն
Ուսուցիչ_001 Կարմեն Մաթեմատիկա
Ուսուցիչ_002 Վերոնիկա Մաթեմատիկա
Ուսուցիչ_003 Խորխե Անգլերեն

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

Օրինակ, եթե ուսուցիչը բազմակի գրառում ունի, ինչ է, եթե ինչ-որ տվյալներ պետք է խմբագրվեն, բայց տվյալների խմբագրումն իրականացնող անձը չի գիտակցում, որ բազմակի գրառում կա: Աղյուսակը այնուհետեւ պարունակում է նույն անձի համար այլ տվյալներ, առանց որեւէ պարզ ձեւի բացահայտելու կամ խուսափելու համար:

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