Kā izveidot ārējo atslēgu Microsoft SQL Server

Viens no svarīgākajiem datubāzu jēdzieniem ir izveidot attiecības starp datu bāzes tabulām. Šīs attiecības nodrošina mehānismu, kā apvienot datus, kas glabājas vairākās tabulās, un efektīvi tos izgūt. Lai izveidotu saikni starp divām tabulām, vienā tabulā jānorāda ārējā atslēga , kas norāda uz kolonnu citā tabulā.

Datu bāzes tabulas un attiecības

Iespējams, jūs jau zināt, ka datubāzes ir vienkārši virkne tabulu , kas ir līdzīga tai, ko jūs jau izmantojat izklājlapas programmā , piemēram, Microsoft Excel. Patiesībā jūs pat varat pārvērst Excel izklājlapu datu bāzē. Tomēr, ja datu bāzes atšķiras no izklājlapām, tad runa ir par spēcīgu attiecību veidošanu starp tabulām.

Apsveriet, piemēram, datubāzi, ko uzņēmums izmanto, lai izsekotu cilvēku resursu informāciju. Šajā datu bāzē var būt tabula, kuras nosaukums ir "Darbinieki", un katram uzņēmuma darbiniekam ir šāda informācija:

Šajā piemērā darbinieka ID ir unikāli radīts vesels skaitlis, kas tiek piešķirts katram darbiniekam, kad tie tiek pievienoti datu bāzei. Pozīcijas ID ir darba kods, ko izmanto, lai norādītu darbinieka pozīciju uzņēmumā. Šajā shēmā darbiniekam var būt tikai viena pozīcija, bet vairāki (vai ne) darbinieki var aizpildīt katru pozīciju. Piemēram, jums varētu būt simtiem darbinieku ar "Kases" pozīciju.

Datu bāzē var būt arī tabula ar nosaukumu Positions ar šādu papildu informāciju par katru pozīciju:

Pozīcijas ID šajā tabulā ir līdzīgs Darbinieku tabulas laukam Darbinieku ID - tas ir vienīgi radīts vesels skaitlis, kas izveidots, kad pozīcija tiek pievienota datu bāzei.

Kad mēs ejam, lai izveidotu darbinieku sarakstu no datubāzes, būtu dabiski pieprasīt katras personas vārdu un nosaukumu. Tomēr šī informācija tiek saglabāta vairākās datu bāzu tabulās, tādēļ to var iegūt tikai, izmantojot JOIN vaicājumu, kuram vajadzīgas esošas attiecības starp tabulām.

Aplūkojot tabulu struktūru, laukums, kas definē attiecības, iespējams, ir acīmredzams - stāvokļa ID lauks. Katram darbiniekam var būt tikai viena pozīcija, un šī pozīcija tiek identificēta, norādot pozīcijas ID no pozīcijas tabulas atbilstošā ieraksta. Papildus pastmarku tabulas primārajam taustiņam šajā piemērā pozīcijas ID laukums ir arī sveša atslēga no tabulas Darbinieki uz pozīciju tabulu. Datu bāze pēc tam var izmantot šo lauku, lai korelētu informāciju no vairākām tabulām un nodrošinātu, ka jebkādas izmaiņas vai papildinājumi datu bāzē turpina piemērot atsauces integritāti .

Kad esat identificējis ārējo atslēgu, jūs varat iet uz priekšu un izvilkt vajadzīgo informāciju no datubāzes, izmantojot šādu vaicājumu:

SELECT FirstName, LastName, Title no darbiniekiem INNER JOIN pozīcijas ON Employees.PositionID = Positions.PositionID

Ārējo atslēgu izveide SQL Server

Tehniski, jums nav nepieciešams precīzi definēt attiecības, lai varētu veikt tādus vaicājumus kā iepriekš. Tomēr, ja jūs skaidri definēsit attiecības, izmantojot ārēju atslēgu ierobežojumu, datubāze varēs veikt dažus mājsaimniecības darbus:

Lūk, kā SQL serverī izveidot ārējo atslēgu:

ALTER TABLE Darbinieki PIEVIENOT ĀRĒJĀ KEY (PositionID) ATSAUCES Pozīcijas (PositionID)

Jūs varat arī izveidot ārējo atslēgu, kad izveidojat tabulu, pievienojot klauzulu:

ĀRĒJĀS galvenās atsauces pozīcijas (PositionID)

uz kolonnas ārējās atslēgas kolonnas definīcijas beigām.