Kif Oħloq Keys Barranin f'Microsoft SQL Server

Wieħed mill-iktar kunċetti importanti fid-databases qed joħloq relazzjonijiet bejn it-tabelli tad-database. Dawn ir-relazzjonijiet jipprovdu mekkaniżmu biex jgħaqqdu d-data maħżuna f'ħafna tabelli u nġabruha b'mod effiċjenti. Sabiex tinħoloq rabta bejn żewġ tabelli, int trid tispeċifika ċavetta barranija f'tabella waħda li tirreferi kolonna f'tabella oħra.

Tabelli u Relazzjonijiet Database

Int tista 'diġà taf li d-databases huma sempliċiment serje ta' tabelli , simili għal dak li diġà tista 'tuża fi programm ta' spreadsheet , bħal Microsoft Excel. Fil-fatt, tista 'anki tikkonverti spreadsheet Excel għal database. Fejn il-bażijiet tad-dejta jvarjaw minn spreadsheets, madankollu, huwa meta jiġu biex jinbnew relazzjonijiet qawwija bejn it-tabelli.

Ikkunsidra, pereżempju, database użata minn kumpanija biex issegwi informazzjoni dwar ir-riżorsi umani. Dik id-database jista 'jkollha tabella msejħa Impjegati li jkun fiha l-informazzjoni li ġejja għal kull membru tal-persunal tal-kumpanija:

F'dan l-eżempju, id-ID tal-impjegat huwa numru sħiħ iġġenerat b'mod uniku li jiġi assenjat lil kull impjegat meta dawn jiżdiedu mad-database. L-ID tal-pożizzjoni hija kodiċi tax-xogħol użata biex tirreferi l-pożizzjoni tal-impjegat fil-kumpanija. F'din l-iskema, impjegat jista 'jkollu biss pożizzjoni waħda, iżda impjegati multipli (jew le) jistgħu jimlew kull pożizzjoni. Per eżempju, jista 'jkollok mijiet ta' impjegati b'pożizzjoni "Cashier".

Id-database jista 'jkun fiha wkoll tabella msejħa Pożizzjonijiet bl-informazzjoni addizzjonali li ġejja dwar kull pożizzjoni:

Il-qasam tal-ID tal-Pożizzjoni f'din it-tabella huwa simili għall-qasam ta 'l-ID ta' l-Impjegat fit-tabella ta 'l-Impjegati - huwa numru sħiħ iġġenerat b'mod uniku li jinħoloq meta pożizzjoni tiżdied mad-database.

Meta immorru biex iġibu lista ta 'impjegati mid-database, ikun naturali li titlob l-isem ta' kull persuna u t-titlu tagħhom. Madankollu, din l-informazzjoni hija maħżuna f'diversi tabelli ta 'database, u għalhekk tista' tinkiseb biss billi tintuża mistoqsija JOIN li teħtieġ relazzjoni eżistenti bejn it-tabelli.

Meta tħares lejn l-istruttura tat-tabelli, il-qasam li jiddefinixxi r-relazzjoni probabbilment huwa ovvju - il-qasam tal-ID tal-Pożizzjoni. Kull impjegat jista 'jkollu pożizzjoni waħda biss u dik il-pożizzjoni hija identifikata billi tinkludi l-ID tal-Pożizzjoni mid-dħul korrispondenti tat-tabella tal-Pożizzjonijiet. Minbarra li hija ċ -ċavetta ewlenija għat-tabella tal-Pożizzjonijiet, f'dan l-eżempju, il-qasam tal-ID tal-Pożizzjoni huwa wkoll ċavetta barranija mill-mejda tal-Impjegati għat-tabella tal-Pożizzjonijiet. Id-database jista 'mbagħad juża dan il-qasam biex jikkorrelata l-informazzjoni minn tabelli multipli u jiżgura li kwalunkwe tibdil jew żidiet fid-database ikomplu jinfurzaw l- integrità referenzjali .

Ladarba tkun identifikat iċ-ċavetta barranija, tista 'timxi' l quddiem u ġib l-informazzjoni mixtieqa mid-database billi tuża din il-mistoqsija:

TAGĦŻEL FirstName, LastName, Titolu MINN IMPRIŻI INNER JOIN Pożizzjonijiet FUQ Impjegati.PositionID = Pożizzjonijiet.PositionID

Ħolqien ta 'Ċwievet Barranin fis-SQL Server

Teknikament, m'għandekx tiddefinixxi r-relazzjoni espliċitament biex tkun tista 'twettaq mistoqsijiet bħal dik ta' hawn fuq. Madankollu, jekk inti tiddefinixxi b'mod espliċitu r-relazzjoni billi tuża restrizzjoni ewlenija barranija, id-database tkun tista 'twettaq xi xogħol ta' manutenzjoni għalik:

Hawnhekk kif toħloq iċ-ċavetta barranija fis-SQL Server:

ALTER TABLE Impjegati ADD TAGĦRIF BARRANI (POŻIZZJONI) REFERENZI Pożizzjonijiet (Pożizzjoni ID)

Tista 'wkoll toħloq ċavetta barranija meta toħloq tabella billi żżid il-klawżola:

REFERENZI EWLENIN TA 'EWLENIN Pożizzjonijiet (PożizzjoniID)

sat-tmiem tad-definizzjoni tal-kolonna għall-kolonna ewlenija barranija.