Стварэнне знешніх ключоў у Microsoft SQL Server

Адным з найбольш важных паняццяў у базах дадзеных з'яўляецца стварэнне сувязяў паміж табліцамі базы дадзеных. Гэтыя адносіны забяспечваюць механізм для звязвання дадзеных, якія захоўваюцца ў некалькіх табліцах і здабывання яго эфектыўным спосабам. Для таго , каб стварыць сувязь паміж двума табліцамі, неабходна ўказаць знешні ключ у адной табліцы , якая спасылаецца на слупок ў іншы табліцы.

Табліцы баз дадзеных і адносіны

Магчыма , вы ўжо ведаеце , што базы дадзеных проста шэраг табліц , падобных тым, што вы маглі б ужо выкарыстоўваць у праграме электронных табліц , такіх як Microsoft Excel. На самай справе, вы можаце нават пераўтварыць табліцу Excel ў базу дадзеных. Калі базы дадзеных разыходзяцца з электроннымі табліцамі, аднак, калі справа даходзіць да пабудовы магутных сувязяў паміж табліцамі.

Разгледзім, напрыклад, база дадзеных, выкарыстоўваная кампаніяй для адсочвання інфармацыі людскіх рэсурсаў. Гэтая база дадзеных можа мець табліцу з імем Служачыя, які змяшчае наступную інфармацыю для кожнага супрацоўніка кампаніі:

У гэтым прыкладзе ідэнтыфікатар супрацоўніка адназначна генеруецца цэлы лік, якое прысвойваецца кожнаму супрацоўніку, калі яны дадаюцца ў базу дадзеных. Становішча ID гэта код заданні выкарыстоўваецца для спасылкі на пазіцыю супрацоўніка ў кампаніі. У гэтай схеме, работнік можа мець толькі адну пазіцыю, але некалькі (ці не) супрацоўнікі могуць запоўніць кожную пазіцыю. Напрыклад, вы можаце мець сотні супрацоўнікаў з пазіцыі «Касір».

База дадзеных можа таксама ўтрымліваць табліцу з імем пазіцыі з наступнага дадатковай інфармацыяй аб кожнай пазіцыі:

Поле ідэнтыфікатара Становішча ў гэтай табліцы падобная на поле ВД супрацоўніка ў табліцы супрацоўнікаў - гэта адназначна генеруецца цэлы лік, якое ствараецца, калі пазіцыя дададзеная ў базу дадзеных.

Калі мы ідзем, каб выцягнуць спіс супрацоўнікаў з базы дадзеных, натуральна было б прасіць імя кожнага чалавека і іх назва. Тым не менш, гэтая інфармацыя захоўваецца ў некалькіх табліцах базы дадзеных, таму ён можа быць атрымана толькі з дапамогай JOIN запыту, які патрабуе існуючых адносін паміж табліцамі.

Калі вы глядзіце на структуру табліц, поле вызначэння адносіны, верагодна, відавочна, - поле Пазіцыі ID. Кожны супрацоўнік можа мець толькі адну пазіцыю, і гэта пазіцыя вызначаецца шляхам ўключэння Пазіцыя ідэнтыфікатар з адпаведнай запісу табліцы пазіцый у. У дадатак да таго, першасны ключ для табліцы пазіцый, у гэтым прыкладзе, поле ID Палажэнне таксама знешні ключ з табліцы супрацоўнікаў да табліцы пазіцый. База дадзеных можа затым выкарыстоўваць гэта поле для супастаўлення інфармацыі з некалькіх табліц і пераканайцеся , што любыя змены ці дапаўненні да базы дадзеных па- ранейшаму забяспечваць захаванне спасылачныя цэласнасці .

Пасля таго, як вы вызначылі знешні ключ, вы можаце пайсці наперад і выцягнуць патрэбную інфармацыю з базы дадзеных з дапамогай наступнага запыту:

ВЫБРАЦЬ FirstName, LastName, назву ад супрацоўнікаў INNER JOIN пазіцыі на Employees.PositionID = Positions.PositionID

Стварэнне знешніх ключоў у SQL Server

Тэхнічна, вы не павінны вызначаць адносіны відавочна, каб мець магчымасць выконваць запыты, як паказана вышэй. Аднак, калі вы відавочна вызначыць адносіны з выкарыстаннем знешняга ключа, база дадзеных будзе мець магчымасць выконваць некаторыя ўборка працу за вас:

Вось як вы можаце стварыць знешні ключ у SQL Server:

ALTER TABLE Супрацоўнікі ADD FOREIGN KEY (PositionID) Літ пазіцый (PositionID)

Вы таксама можаце стварыць знешні ключ, калі вы ствараеце табліцу, дадаўшы пункт:

Спасылкі на знешнія ключы Пазіцыі (PositionID)

у канец вызначэння слупка для ключавога слупка знешняга.