Si të krijoni çelësa të jashtëm në Microsoft SQL Server

Një nga konceptet më të rëndësishme në bazat e të dhënave është krijimi i marrëdhënieve midis tabelave të bazës së të dhënave. Këto marrëdhënie sigurojnë një mekanizëm për lidhjen e të dhënave të ruajtura në tabela të shumta dhe marrjen e saj në një mënyrë efikase. Për të krijuar një lidhje midis dy tabelave, duhet të specifikoni një çelës të huaj në një tabelë që i referohet një kolone në një tabelë tjetër.

Tabelat dhe marrëdhëniet e të dhënave

Ju mund ta dini që bazat e të dhënave janë thjesht një sërë tabelash , të ngjashme me atë që mund të përdorni në një program spreadsheet , si Microsoft Excel. Në fakt, mund të konvertohesh edhe një spreadsheet Excel në një bazë të dhënash. Ku bazat e të dhënave dallojnë nga tabelat, megjithatë, është kur është fjala për ndërtimin e marrëdhënieve të fuqishme midis tabelave.

Shqyrto, për shembull, një bazë të dhënash që përdoret nga një kompani për të gjurmuar informacionet e burimeve njerëzore. Kjo bazë të dhënash mund të ketë një tabelë të quajtur Punonjësit që përmban informacionin e mëposhtëm për secilin anëtar të stafit të kompanisë:

Në këtë shembull, ID-ja e punonjësve është një numër i plotë i krijuar në mënyrë unike që i është caktuar çdo punonjësi kur ato i shtohen databazës. ID-ja e pozicionit është një kod pune që përdoret për të referuar pozicionin e punonjësit në kompani. Në këtë skemë, një punonjës mund të ketë vetëm një pozicion, por punonjës të shumtë (ose jo) mund të mbushin secilën pozitë. Për shembull, mund të keni qindra të punësuar me pozicionin "Cashier".

Baza e të dhënave gjithashtu mund të përmbajë një tabelë të quajtur Pozicionet me informacionin e mëposhtëm shtesë për çdo pozicion:

Fusha ID e Pozicionit në këtë tabelë është e ngjashme me fushën e ID Employee në tryezën e Punonjësve - është një numër i plotë i krijuar në mënyrë unike që krijohet kur një pozicion i shtohet databazës.

Kur shkojmë të tërheqim një listë të të punësuarve nga baza e të dhënave, do të ishte e natyrshme të kërkohej emri dhe titulli i secilit person. Megjithatë, ky informacion ruhet në tabela të shumta të bazës së të dhënave, kështu që mund të merret vetëm duke përdorur një pyetje JOIN e cila kërkon një marrëdhënie ekzistuese midis tabelave.

Kur shikoni strukturën e tabelave, fusha që përcakton marrëdhënien është ndoshta e dukshme - fusha ID Pozicioni. Secili punonjës mund të ketë vetëm një pozicion dhe ky pozicion identifikohet duke përfshirë ID-në e pozicionit nga hyrja përkatëse e tabelës së pozicioneve. Përveç kësaj që të jesh çelësi primar për tryezën e pozicioneve, në këtë shembull, fusha ID Pozicioni është gjithashtu një çelës i huaj nga tabela e punonjësve në tabelën e pozicioneve. Baza e të dhënave pastaj mund të përdorë këtë fushë për të lidhur informacionin nga tabelat e shumëfishta dhe për të siguruar që çdo ndryshim apo shtim në bazën e të dhënave të vazhdojë të zbatojë integritetin referent .

Pasi të keni identifikuar çelësin e jashtëm, mund të shkoni përpara dhe të tërheqni informacionin e dëshiruar nga baza e të dhënave duke përdorur pyetjen në vijim:

SELECT FirstName, LastName, Title FROM Punonjësit INNER JOIN Pozicionet ON Employees.PositionID = Positions.PositionID

Krijimi i çelësave të jashtëm në SQL Server

Teknikisht, ju nuk keni nevojë të përcaktoni marrëdhënien në mënyrë eksplicite për të qenë në gjendje të kryeni pyetje si ai më lart. Megjithatë, nëse përcaktoni marrëdhënien në mënyrë eksplicite duke përdorur një pengesë të rëndësishme të jashtme, baza e të dhënave do të jetë në gjendje të kryejë një punë të shtëpisë për ju:

Ja se si do të krijonte çelësin e jashtëm në SQL Server:

TABELA ALTER Punonjësit ADD KEY FOREIGN (PositionID) REFERENCAT Position (Position ID)

Gjithashtu, mund të krijoni një çelës të jashtëm kur krijoni një tabelë duke shtuar klauzolën:

REFERENCAT KRYESORE TË HUAJ Pozicionet (ID pozicioni)

në fund të përkufizimit të kolonës për kolonën e çelësit të huaj.