Հիմնական բանալին ընդդեմ եզակի բանալի
Սյունակը կամ սյունակների մի շարք, որոնք կարող են օգտագործվել տվյալների բազայում տող կամ տողերի շարք նույնականացնելու կամ մուտք գործելու համար, կոչվում է բանալի: Յուրահատուկ բանալին այն բանալին է, որը կարող է եզակի կերպով նույնականացնել աղյուսակի տողը հարաբերական տվյալների բազաների համատեքստում: Եզակի բանալին կազմված է մեկ սյունակից կամ սյունակների մի շարքից: Առաջնային բանալին նաև աղյուսակի սյունակների համակցությունն է, որը եզակի կերպով նույնացնում է տողը: Բայց դա համարվում է յուրահատուկ բանալի հատուկ դեպք։
Ի՞նչ է եզակի բանալին:
Ինչպես նշվեց ավելի վաղ, եզակի բանալին մեկ սյունակ է կամ սյունակների հավաքածու, որը կարող է եզակի կերպով նույնականացնել աղյուսակի տողը:Այսպիսով, եզակի բանալին սահմանափակված է այնպես, որ դրա երկու արժեքները հավասար չեն: Կարևոր հատկություն է այն, որ եզակի բանալիները չեն կիրառում NOT NULL սահմանափակումը: Քանի որ NULL-ը ներկայացնում է արժեքի բացակայություն, եթե սյունակում երկու տող ունի NULL, ապա դա չի նշանակում, որ արժեքները հավասար են: Որպես եզակի բանալի սահմանվող սյունակը թույլ է տալիս միայն մեկ NULL արժեք այդ սյունակում: Այնուհետև դա կարող է օգտագործվել տվյալ տողը եզակիորեն նույնականացնելու համար: Օրինակ, ուսանողի տեղեկատվություն պարունակող աղյուսակում ուսանողի ID-ն կարող է սահմանվել որպես եզակի բանալի: Քանի որ ոչ մի ուսանող չի կարող ունենալ նույն ID-ն, այն եզակիորեն նույնականացնում է մեկ ուսանողին: Այսպիսով, ուսանողի ID սյունակը բավարարում է եզակի բանալու բոլոր հատկությունները: Կախված տվյալների բազայի ձևավորումից՝ աղյուսակը կարող է ունենալ մեկից ավելի եզակի բանալի:
Ի՞նչ է առաջնային բանալին:
Առաջնային բանալին նաև սյունակ է կամ սյունակների համակցություն, որը եզակի կերպով սահմանում է տող հարաբերական տվյալների բազայի աղյուսակում: Աղյուսակը կարող է ունենալ առավելագույնը մեկ հիմնական բանալի: Առաջնային բանալին պարտադրում է բացահայտ NOT NULL սահմանափակումը:Այսպիսով, սյունակը, որը սահմանվում է որպես հիմնական բանալի, չի կարող իր մեջ ունենալ NULL արժեքներ: Առաջնային բանալին կարող է լինել աղյուսակի նորմալ հատկանիշ, որը երաշխավորված է եզակի, օրինակ՝ սոցիալական ապահովության համարը կամ կարող է լինել եզակի արժեք, որը ստեղծվել է տվյալների բազայի կառավարման համակարգի կողմից, ինչպիսին է գլոբալ եզակի նույնացուցիչը (GUID) Microsoft SQL Server-ում: Հիմնական բանալիները սահմանվում են ANSI SQL ստանդարտում PRIMARY KEY սահմանափակման միջոցով: Առաջնային բանալին կարող է սահմանվել նաև աղյուսակը ստեղծելիս: SQL-ն թույլ է տալիս առաջնային բանալին կազմված լինել մեկ կամ մի քանի սյունակից, և յուրաքանչյուր սյունակ, որը ներառված է հիմնական բանալիում, անուղղակիորեն սահմանված է որպես NOT NULL: Սակայն տվյալների բազայի կառավարման որոշ համակարգեր պահանջում են, որ հիմնական բանալիների սյունակները բացահայտորեն NOT NULL:
Տարբերությունը հիմնական և եզակի բանալիների միջև
Թեև և՛ հիմնական բանալին, և՛ եզակի բանալին մեկ կամ մի քանի սյունակ են, որոնք կարող են եզակիորեն նույնականացնել աղյուսակի տողը, դրանք ունեն որոշ կարևոր տարբերություններ: Ամենակարևորը, աղյուսակը կարող է ունենալ միայն մեկ հիմնական բանալի, մինչդեռ այն կարող է ունենալ մեկից ավելի եզակի բանալի:Առաջնային բանալին կարելի է դիտարկել որպես յուրահատուկ բանալի հատուկ դեպք: Մեկ այլ տարբերություն այն է, որ առաջնային բանալիներն ունեն բացահայտ NOT NULL սահմանափակում, մինչդեռ եզակի բանալին չունի այդ սահմանափակումը: Հետևաբար, եզակի բանալի սյունակները կարող են պարունակել կամ չպարունակել NULL արժեքներ, սակայն հիմնական բանալու սյունակները չեն կարող պարունակել NULL արժեքներ: