საკვანძო განსხვავება უცხო გასაღებსა და პირველად გასაღებს შორის არის ის, რომ უცხო გასაღები არის სვეტი ან სვეტების ნაკრები, რომელიც ეხება პირველად გასაღებს ან სხვა ცხრილის კანდიდატ გასაღებს, ხოლო პირველადი გასაღები არის სვეტი ან სვეტების ნაკრები. რომელიც შეიძლება გამოყენებულ იქნას ცხრილის მწკრივის ცალსახად იდენტიფიცირებისთვის.
სვეტს ან სვეტების ერთობლიობას, რომელიც შეიძლება გამოყენებულ იქნას მონაცემთა ბაზაში მწკრივის ან მწკრივების ნაკრების იდენტიფიცირებისთვის ან მისასვლელად, ეწოდება გასაღები. რელაციური მონაცემთა ბაზაში პირველადი გასაღები არის ცხრილის სვეტების კომბინაცია, რომელიც ცალსახად იდენტიფიცირებს ცხრილის რიგს. უცხოური გასაღები რელაციურ მონაცემთა ბაზაში არის ცხრილის ველი, რომელიც ემთხვევა სხვა ცხრილის ძირითად გასაღებს.უცხო გასაღები გამოიყენება საცნობარო ცხრილების გადაკვეთისთვის.
რა არის უცხოური გასაღები?
უცხო გასაღები არის რეფერენციალური შეზღუდვა ორ ცხრილს შორის. იგი განსაზღვრავს სვეტს ან სვეტების ერთობლიობას ერთ ცხრილში, რომელსაც ეწოდება მითითების ცხრილი, რომელიც ეხება სვეტების ერთობლიობას სხვა ცხრილში, რომელსაც უწოდებენ მითითებულ ცხრილს. უცხოური გასაღები ან სვეტები მითითების ცხრილში უნდა იყოს პირველადი გასაღები ან კანდიდატი (გასაღები, რომელიც შეიძლება გამოყენებულ იქნას როგორც პირველადი გასაღები) მითითებულ ცხრილში. გარდა ამისა, უცხოური გასაღებები საშუალებას გაძლევთ დააკავშიროთ მონაცემები რამდენიმე ცხრილზე.აქედან გამომდინარე, უცხოური გასაღები არ შეიძლება შეიცავდეს მნიშვნელობებს, რომლებიც არ ჩანს ცხრილში, რომელსაც ის ეხება. შემდეგ უცხოური გასაღებით მოწოდებული მითითება ხელს უწყობს ინფორმაციის დაკავშირებას რამდენიმე ცხრილში და ეს აუცილებელი გახდება ნორმალიზებული მონაცემთა ბაზებით. მითითების ცხრილის მრავალი მწკრივი შეიძლება მიუთითებდეს მითითებულ ცხრილის ერთ მწკრივზე.
სურათი 01: საგარეო გასაღების რუქა
ANSI SQL სტანდარტში, FOREIGN KEY შეზღუდვა განსაზღვრავს უცხო კლავიშებს. გარდა ამისა, შესაძლებელია უცხო კლავიშების განსაზღვრა თავად ცხრილის შექმნისას. ცხრილს შეიძლება ჰქონდეს მრავალი უცხო გასაღები და მათ შეუძლიათ სხვადასხვა ცხრილების მითითება.
რა არის ძირითადი გასაღები?
პირველადი გასაღები არის სვეტი ან სვეტების კომბინაცია, რომელიც ცალსახად განსაზღვრავს რიგს რელაციური მონაცემთა ბაზის ცხრილში. ცხრილს შეიძლება ჰქონდეს მაქსიმუმ ერთი ძირითადი გასაღები. ძირითადი გასაღები ახორციელებს ნაგულისხმევი NOT NULL შეზღუდვას. ამიტომ, პირველადი გასაღების მქონე სვეტს არ შეიძლება ჰქონდეს NULL მნიშვნელობები. პირველადი გასაღები შეიძლება იყოს ჩვეულებრივი ატრიბუტი ცხრილში, რომელიც გარანტირებულია უნიკალური, როგორიცაა სოციალური უსაფრთხოების ნომერი, ან შეიძლება იყოს უნიკალური მნიშვნელობა, რომელიც გენერირებულია მონაცემთა ბაზის მართვის სისტემის მიერ, როგორიცაა გლობალურად უნიკალური იდენტიფიკატორი (GUID) Microsoft SQL Server-ში.
სურათი 02: ძირითადი გასაღები
უფრო მეტიც, PRIMARY KEY შეზღუდვა ANSI SQL სტანდარტში განსაზღვრავს ძირითად გასაღებებს. ცხრილის შექმნისას ასევე შესაძლებელია პირველადი გასაღების განსაზღვრა. გარდა ამისა, SQL საშუალებას აძლევს პირველადი გასაღები შედგებოდეს ერთი ან მეტი სვეტისგან და თითოეული სვეტი, რომელიც შედის ძირითად კლავიშში, ირიბად განსაზღვრულია, რომ არ არის NULL. მაგრამ ზოგიერთი მონაცემთა ბაზის მართვის სისტემა მოითხოვს პირველადი გასაღების სვეტების ცალსახად დაწერას NOT NULL.
რა განსხვავებაა უცხო გასაღებსა და ძირითად გასაღებს შორის?
უცხო გასაღები vs ძირითადი გასაღები |
|
უცხო გასაღები არის სვეტი ან სვეტების ჯგუფი რელაციური მონაცემთა ბაზის ცხრილში, რომელიც უზრუნველყოფს კავშირს ორ ცხრილის მონაცემებს შორის. | პირველადი გასაღები არის მონაცემთა ბაზის ცხრილის სპეციალური რელაციური სვეტი ან მრავალი სვეტის კომბინაცია, რომელიც საშუალებას გაძლევთ ცალსახად ამოიცნოთ ცხრილის ყველა ჩანაწერი. |
NULL | |
უცხო გასაღები იღებს NULL მნიშვნელობას. | პირველადი გასაღების მნიშვნელობა არ შეიძლება იყოს NULL. |
გასაღებების რაოდენობა | |
მაგიდას შეიძლება ჰქონდეს მრავალი უცხო გასაღები. | ცხრილს შეიძლება ჰქონდეს მხოლოდ ერთი ძირითადი გასაღები. |
დუბლირება | |
Tuples შეიძლება ჰქონდეს დუბლიკატი მნიშვნელობა უცხო გასაღების ატრიბუტისთვის. | კავშირში ორ ტოპს არ შეიძლება ჰქონდეს პირველადი გასაღების ატრიბუტის დუბლიკატი მნიშვნელობები. |
რეზიუმე – უცხო გასაღები vs ძირითადი გასაღები
სხვაობა უცხო გასაღებსა და პირველად გასაღებს შორის არის ის, რომ უცხო გასაღები არის სვეტი ან სვეტების ნაკრები, რომელიც ეხება პირველადი გასაღების ან სხვა ცხრილის კანდიდატ გასაღებს, ხოლო პირველადი გასაღები არის სვეტი ან სვეტების ნაკრები, რომელიც შეიძლება გამოყენებულ იქნას ცხრილის მწკრივის ცალსახად იდენტიფიცირებისთვის.