Օտար բանալիների և հիմնական բանալիների միջև հիմնական տարբերությունն այն է, որ օտար բանալին սյունակ է կամ սյունակների մի շարք, որոնք վերաբերում են հիմնական բանալին կամ այլ աղյուսակի թեկնածու բանալին, մինչդեռ հիմնական բանալին սյունակ է կամ սյունակների մի շարք: որը կարող է օգտագործվել աղյուսակի տողը եզակիորեն նույնացնելու համար:
Սյունակը կամ սյունակների մի շարք, որոնք կարող են օգտագործվել տվյալների բազայում տող կամ տողերի շարք նույնականացնելու կամ մուտք գործելու համար, կոչվում է բանալի: Հարաբերական տվյալների բազայում առաջնային բանալին աղյուսակի սյունակների համակցությունն է, որը եզակի կերպով նույնացնում է աղյուսակի տողը: Հարաբերական տվյալների բազայում արտասահմանյան բանալին աղյուսակի դաշտ է, որը համընկնում է մեկ այլ աղյուսակի հիմնական բանալիին:Արտասահմանյան բանալին օգտագործվում է հղման աղյուսակները հատելու համար:
Ի՞նչ է արտաքին բանալին:
Օտար բանալին ռեֆերենցիոն սահմանափակում է երկու աղյուսակների միջև: Այն նույնացնում է սյունակ կամ սյունակների մի շարք մեկ աղյուսակում, որը կոչվում է հղումային աղյուսակ, որը վերաբերում է մեկ այլ աղյուսակի սյունակների շարքին, որը կոչվում է հղումով աղյուսակ: Հղման աղյուսակի արտաքին բանալին կամ սյունակները պետք է լինեն հիմնական բանալին կամ թեկնածուի բանալին (բանալին, որը կարող է օգտագործվել որպես հիմնական բանալի) հղվող աղյուսակում: Ավելին, օտարերկրյա բանալիները թույլ են տալիս կապել տվյալները մի քանի աղյուսակների միջև:Հետևաբար, արտաքին բանալին չի կարող պարունակել արժեքներ, որոնք չեն երևում այն աղյուսակում, որին այն վերաբերում է: Այնուհետև օտարերկրյա բանալիով տրամադրված հղումն օգնում է կապել տեղեկատվությունը մի քանի աղյուսակներում, և դա անհրաժեշտ կլինի նորմալացված տվյալների բազաների դեպքում: Հղման աղյուսակի մի քանի տող կարող է վերաբերել նշված աղյուսակի մեկ տողին:
Նկար 01. Արտաքին բանալիների քարտեզագրում
ANSI SQL ստանդարտում FOREIGN KEY սահմանափակումը սահմանում է օտար բանալիները: Ավելին, հնարավոր է սահմանել արտաքին ստեղները հենց աղյուսակը ստեղծելիս: Աղյուսակը կարող է ունենալ մի քանի օտար բանալի, և դրանք կարող են հղում կատարել տարբեր աղյուսակների:
Ի՞նչ է հիմնական բանալին:
Առաջնային բանալին սյունակ է կամ սյունակների համակցություն, որը եզակի կերպով սահմանում է տող հարաբերական տվյալների բազայի աղյուսակում: Աղյուսակը կարող է ունենալ առավելագույնը մեկ հիմնական բանալի: Առաջնային բանալին պարտադրում է բացահայտ NOT NULL սահմանափակումը: Հետևաբար, հիմնական բանալիով սյունակը չի կարող իր մեջ ունենալ NULL արժեքներ: Առաջնային բանալին կարող է լինել սովորական հատկանիշ աղյուսակում, որը երաշխավորված է եզակի, օրինակ՝ սոցիալական ապահովության համարը, կամ կարող է լինել եզակի արժեք, որը ստեղծվել է տվյալների բազայի կառավարման համակարգի կողմից, ինչպիսին է գլոբալ եզակի նույնացուցիչը (GUID) Microsoft SQL Server-ում:
Նկար 02. Հիմնական բանալի
Ավելին, PRIMARY KEY սահմանափակումը ANSI SQL ստանդարտում սահմանում է հիմնական բանալիները: Աղյուսակը ստեղծելիս հնարավոր է նաև հիմնական բանալի սահմանել։ Ի հավելումն դրան, SQL-ն թույլ է տալիս առաջնային բանալին կազմված լինել մեկ կամ մի քանի սյունակներից, և յուրաքանչյուր սյունակ, որը ներառված է հիմնական բանալիում, անուղղակիորեն սահմանված է որպես NOT NULL: Սակայն տվյալների բազայի կառավարման որոշ համակարգեր պահանջում են հիմնական բանալիների սյունակները բացահայտորեն NOT NULL:
Ո՞րն է տարբերությունը օտար բանալիի և հիմնական բանալիի միջև:
Օտար բանալին ընդդեմ հիմնական բանալի |
|
Օտար բանալին հարաբերական տվյալների բազայի աղյուսակի սյունակ կամ սյունակների խումբ է, որն ապահովում է երկու աղյուսակների տվյալների միջև կապ: | Առաջնային բանալին հատուկ հարաբերական տվյալների բազայի աղյուսակի սյունակ է կամ մի քանի սյունակների համակցություն, որը թույլ է տալիս եզակիորեն նույնականացնել աղյուսակի բոլոր գրառումները: |
NULL | |
Օտար բանալին ընդունում է NULL արժեքը: | Առաջնային բանալու արժեքը չի կարող լինել NULL: |
Բանալիների քանակը | |
Սեղան կարող է ունենալ մի քանի օտար բանալի: | Աղյուսակը կարող է ունենալ միայն մեկ հիմնական բանալի: |
Կրկնօրինակում | |
Tuples-ը կարող է ունենալ արտասահմանյան բանալի հատկանիշի կրկնօրինակ արժեք: | Հարաբերության մեջ գտնվող երկու զույգերը չեն կարող կրկնօրինակ արժեքներ ունենալ հիմնական բանալին հատկանիշի համար: |
Ամփոփում – Արտաքին բանալի ընդդեմ հիմնական բանալի
Օտար բանալիների և հիմնական բանալիների միջև տարբերությունն այն է, որ օտար բանալին սյունակ է կամ սյունակների մի շարք, որոնք վերաբերում են հիմնական բանալին կամ այլ աղյուսակի թեկնածու բանալին, մինչդեռ հիմնական բանալին սյունակ է կամ սյունակների մի շարք: կարող է օգտագործվել աղյուսակի տողը եզակիորեն նույնացնելու համար: