Ինչպես ստեղծել օտարերկրյա բանալիներ Microsoft SQL Server- ում

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

Տվյալների բազայի աղյուսակներ եւ հարաբերություններ

Գուցե դուք արդեն գիտեք, որ տվյալների բազաները պարզապես սեղաններ են , որոնք նման են այնպիսի ծրագրերի , ինչպիսիք են Microsoft Excel- ը: Փաստորեն, դուք նույնիսկ կարող եք Excel աղյուսակի փոխարկել տվյալների բազա: Այն դեպքերում, երբ տվյալների բազաները բաժանվում են աղյուսակներից, այն դեպքում, երբ խոսքը վերաբերում է սեղանների միջեւ հզոր փոխհարաբերությունների ստեղծմանը :

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

Այս օրինակում աշխատողի ID- ն յուրահատուկ գեներացվող ամբողջական թիվ է, որը յուրաքանչյուր աշխատակցի համար նշանակված է, երբ դրանք ավելացվում են տվյալների բազայում: Պաշտոն ID- ն աշխատանքային օրենսգրքի մեջ օգտագործվում է ընկերության աշխատակցի դիրքորոշման վերաբերյալ: Այս սխեմայում աշխատողը կարող է ունենալ միայն մեկ պաշտոն, սակայն յուրաքանչյուր պաշտոնի կարող է լրացնել բազմաթիվ (կամ ոչ) աշխատողներ: Օրինակ, կարող եք հարյուրավոր աշխատակիցներ ունենալ «Կարիերայի» դիրքով:

Տվյալների շտեմարանը կարող է պարունակել նաեւ Պատվեր կոչվող աղյուսակը, յուրաքանչյուր դիրքորոշման վերաբերյալ հետեւյալ լրացուցիչ տեղեկությունները.

Այս աղյուսակում Պաշտոն ID- ի դաշտը նման է Employees ID- ի Employee ID- ի դաշտի, որը աշխատակիցների աղյուսակում է, որը ստեղծվում է բացառիկ գեներացվող ամբողջականություն, երբ ստեղծվում է տվյալների բազա:

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

Երբ նայում եք սեղանների կառուցվածքին, հարաբերությունները որոշող դաշտը, հավանաբար, ակնհայտ է `Position ID դաշտը: Յուրաքանչյուր աշխատող կարող է ունենալ միայն մեկ պաշտոն, եւ այդ պաշտոնը նույնականացվում է, ներառելով Պաշտոն ID- ն, Պաշտոնային աղյուսակի համապատասխան մուտքի մեջ: Բացի դիրքերից ստացվող աղյուսակի հիմնական բանալին , այս օրինակում Պաշտոն ID- ի դաշտը նաեւ օտարերկրյա ստանդարտ է Աշխատակիցների սեղանից դեպի դիրքերի աղյուսակ: Այնուհետեւ տվյալների բազան կարող է օգտագործել այս դաշտը տեղեկատվության փոխանակման համար մի քանի աղյուսակներից եւ ապահովել, որ տվյալների բազայում ցանկացած փոփոխություն կամ լրացում շարունակվում է կիրառել տվյալների ամբողջականությունը :

Արտասահմանյան բանալին հայտնաբերելուց հետո, կարող եք առաջ գնալ եւ ցանկալի տեղեկություններ ստանալ տվյալների բազայից `օգտագործելով հետեւյալ հարցումները.

SELECT անունը, ազգանունը, վերնագիր FROM աշխատակիցների ներսը միացնել պաշտոնները աշխատողների.PositionID = դիրքերը.PositionID

Ստեղծելով օտարերկրյա բանալիներ SQL Server- ում

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

Ահա թե ինչպես եք ստեղծել SQL Server օտարերկրյա բանալին:

ALTER TABLE- ի աշխատակիցները Օտարերկրյա ՀԻՇԵՑՈՒՄ (PositionID) Հղումներ Կապեր (PositionID)

Դուք կարող եք ստեղծել նաեւ արտասահմանյան բանալիներ, երբ դուք ստեղծեք աղյուսակը `ավելացնելով դրույթը.

ՕՏԱՐԵՐԿՐՅԱ ՀԻՇՈՂՈՒԹՅՈՒՆՆԵՐԸ (PositionID)

օտարերկրյա բանալիների սյունակի սյունակի սահմանման ավարտին: