Როგორ შევქმნათ უცხოური კლავიშები Microsoft SQL Server- ში

მონაცემთა ბაზებში ერთ-ერთი ყველაზე მნიშვნელოვანი ცნება მონაცემთა ბაზების ცხრილებს შორის ურთიერთობას ქმნის. ეს ურთიერთობები უზრუნველყოფს მექანიზმებს, რომლებიც ინახება მრავალჯერადი ცხრილების მონაცემთა შენახვისა და მასში ეფექტური ფორმით. იმისათვის, რომ შეიქმნას ბმული ორ მაგიდას შორის, თქვენ უნდა მიუთითოთ უცხოური გასაღები ერთი მაგიდაზე, რომელიც სვეტს სვეტში სხვა მაგიდაზე.

მონაცემთა ბაზა მაგიდები და ურთიერთობები

თქვენ ალბათ უკვე იცით, რომ მონაცემთა ბაზები უბრალოდ მაგიდის სერიაა , ანალოგიურად, რაც შეიძლება გამოიყენოთ ცხრილების პროგრამით , როგორიცაა Microsoft Excel. სინამდვილეში, თქვენ შეგიძლიათ კიდევ გარდაქმნას Excel- ის მონაცემთა ბაზაში. სადაც მონაცემთა ბაზები განსხვავდება ცხრილებისგან, მაშინ როდესაც ის მაგიდას შორის ძლიერი ურთიერთობების დამყარებაა.

მაგალითად, განვიხილოთ მონაცემთა ბაზის მიერ გამოყენებული მონაცემთა ბაზა, რომელიც აკონტროლებს ადამიანური რესურსების ინფორმაციას. ამ მონაცემთა ბაზაში შეიძლება ჰქონდეს სათვალთვალო მაგიდა თანამშრომლები, რომლითაც კომპანიის თანამშრომლების თითოეული წევრისთვისაა წარმოდგენილი:

ამ მაგალითში, თანამშრომელი ID არის ცალსახად გენერირებული რიცხვი, რომელიც ენიჭება თითოეულ თანამშრომელს, როდესაც ისინი დაემატა მონაცემთა ბაზას. პოზიცია ID არის სამუშაო კოდი, რომელიც მითითებულია კომპანიის თანამშრომლის თანამდებობაზე. ამ სქემით დასაქმებულს შეუძლია მხოლოდ ერთი პოზიცია, მაგრამ მრავალჯერადი (ან არა) თანამშრომელი შეიძლება შეავსოს თითოეული პოზიცია. მაგალითად, თქვენ შეიძლება ჰქონდეთ ასობით თანამშრომელი "მოლარე" პოზიციაზე.

მონაცემთა ბაზაში ასევე შეიძლება შეიცავდეს მაგიდასთან დაკავშირებულ თანამდებობებს შემდეგი პოზიციების შესახებ:

ამ ცხრილის პოზიციის პირადობის მოწმობა ემთხვევა თანამშრომელი პირადობის მოწმობის დარგში პერსონალის ცხრილს - ეს არის ცალსახად გენერირებული მთელი რიცხვი, რომელიც შექმნილია მონაცემთა ბაზაში.

როდესაც ჩვენ წავალთ მონაცემთა ბაზის თანამშრომლების ჩამონათვალს, ბუნებრივია, თითოეული ადამიანის სახელი და მათი დასახელება მოითხოვოს. თუმცა, ეს ინფორმაცია ინახება მრავალ მონაცემთა ბაზაში, რის გამოც შესაძლებელია მხოლოდ ისარგებლოს JOIN შეკითხვაზე, რომელიც მოითხოვს არსებული კავშირებს მაგიდას შორის.

როდესაც თქვენ შეხედეთ სტრუქტურის მაგიდები, სფეროში განმსაზღვრელი ურთიერთობისათვის სავარაუდოა აშკარა - პოზიცია ID სფეროში. თითოეული თანამშრომელი შეიძლება ჰქონდეს მხოლოდ ერთი პოზიცია და ეს პოზიცია განისაზღვრება პოზიციის პირადობის მოწმობის ცხრილის შესაბამისი ჩანაწერის ჩათვლით. გარდა იმისა, რომ წინასაარჩევნო ცხრილის ძირითადი გასაღებია , ამ მაგალითში, პირადობის მოწმობა არის ასევე უცხოური გასაღები თანამშრომლების მაგიდაზე მაგიდაზე. მონაცემთა ბაზას შეუძლია ამ სფეროს გამოიყენოს მრავალჯერადი ცხრილების ინფორმაცია და უზრუნველყოს, რომ მონაცემთა ბაზაში ცვლილებები ან დამატებები გაგრძელდეს რეფერენტული მთლიანობის აღსრულებაზე.

მას შემდეგ, რაც თქვენ უცხოური გასაღების იდენტიფიცირება, შეგიძლიათ გააგრძელოთ და დაურთოთ სასურველი ინფორმაცია მონაცემთა ბაზაში შემდეგი შეკითხვის გამოყენებით:

SELECT FirstName, LastName, სათაურიდან თანამშრომელი INNER JOIN თანამდებობებზე თანამშრომლებისთვის. PositionID = Positions.PositionID

შექმნა უცხოური კლავიშები SQL Server

ტექნიკურად, თქვენ არ უნდა განვსაზღვროთ ურთიერთობა პირდაპირ, რათა შეასრულოს queries, როგორიცაა ზემოთ. თუმცა, თუ აშკარად გამოხატავთ ურთიერთობას უცხოური საკვანძო შეზღუდვის გამოყენებით, მონაცემთა ბაზის საშუალებით შეგეძლებათ გარკვეული სამუშაოების შესრულება:

აი როგორ შექმნათ უცხოური გასაღები SQL Server- ში:

გარდა TABLE თანამშრომლების დამატება ექსკლუზიური გასაღები (PositionID) რეფერაგენების პოზიციები (PositionID)

თქვენ ასევე შეგიძლიათ შექმნათ უცხოური გასაღები, როდესაც თქვენ შექმნით მაგიდასთან ერთად პუნქტს:

უცხოური საკვანძო რეფერენტული პოზიციები (PositionID)

ბოლო სვეტის დასასრულს უცხოური გასაღები სვეტისთვის.