Разлика между първичен ключ и външен ключ в СУБД

Автор: Laura McKinney
Дата На Създаване: 1 Април 2021
Дата На Актуализиране: 12 Може 2024
Anonim
Разлика между първичен ключ и външен ключ в СУБД - Технология
Разлика между първичен ключ и външен ключ в СУБД - Технология

Съдържание


Ключовете са съществената част от СУБД, които се използват за идентифициране и установяване на връзка между таблиците в схема. Сега, днес ще обсъдим два много важни ключа на СУБД, т.е. първичен ключ и външен ключ, а също така ще обсъдим разликата между първичен и външен ключ. По пътя нека да ви кажа основната разлика между първичен и външен ключ, който е първичен ключ, е един от избраните ключови ключове от дизайнера на базата данни, докато чужд ключ е ключ, който се отнася до първичния ключ на друга връзка.

Има много други разлики между тези две, нека да ги идентифицираме с помощта на сравнителната диаграма, показана по-долу.

  1. Сравнителна диаграма
  2. дефиниция
  3. Ключови разлики
  4. заключение

Сравнителна диаграма

Основа за сравнениеПървичен ключВъншен ключ
ОсновенПървичен ключ е избран кандидат-ключ, който еднозначно определя кортежа във връзка.Външен ключ в таблица се отнася до първичния ключ на друга таблица.
НУЛАСтойността на основния ключ никога не може да бъде NULL.Външният ключ приема NULL стойност.
DuplicateНикой два кортежа във връзка не носят дублирани стойности за атрибут на първичен ключ.Кортежите могат да носят дублирана стойност за атрибут на чужд ключ.
диапазонМоже да има само един първичен ключ от връзка.Във връзка може да има множество чужди ключове.
Временна таблицаВъв временните таблици може да се определи първичното ограничение на ключовете.Ограничението на чуждестранния ключ не може да бъде определено във временните таблици.
Индекс на клъстериПо подразбиране първичен ключ е клъстериран индексиран.Външният ключ не се клъстерира индексира автоматично; трябва да се направи ръчно.
вмъкванеМожем да вмъкнем стойност към атрибут на първичен ключ, дори ако препращащият чужд ключ няма тази стойност в своята колона.Не можем да вмъкнем стойност към чужд ключ, ако тази стойност не присъства в графата с референтен първичен ключ.
заличаванеПреди да изтриете стойността на първичен ключ, уверете се, че стойността все още не е налична в колоната за рефериране с чужд ключ от таблицата за референции.Можете да изтриете стойност от колона с чужд ключ, без да се притеснявате, дали тази стойност присъства в реферираната колона с първичен ключ на референтно отношение.


Дефиниция на първичен ключ

Основен ключ еднозначно дефинира кортежи във връзка. Тя може да бъде единичен атрибут във връзка или може да бъде набор от атрибути във връзка. Стойността на атрибута на първичния ключ трябва да никога или рядко се променя, Тъй като е главно, означава да идентифицирате всеки запис в база данни. Промяната в която и да е стойност на атрибут на първичен ключ би създала объркване.

Дизайнерът на базата данни избира един от кандидат ключове като основен ключ, като се вземат предвид някои точки. Първото съображение е стойността на атрибут на първичен ключ, която никога не може да съдържа НУЛА стойност. Защото, ако стойността на атрибут на първичен ключ съдържа NULL, това означава, че не можем да идентифицираме този запис в таблицата. Освен това нарушава ограничението за целостта на образуванието. Второ внимание е, няма два кортежа в таблица може да съдържа един и същ стойност за атрибут на първичен ключ, тъй като би нарушил уникалността на кортежите.


Може да има само един основен ключ за всеки връзка, Основният ключ е по подразбиране клъстер индексирана, което означава, че всички кортежи в таблицата са сортирани въз основа на стойностите на атрибутите на първичните ключове. Ограничението на основния ключ може да бъде дефинирано в a временна маса, Посредническите таблици, създадени по време на изпълнение на заявка, се наричат ​​временни таблици.

Докато изтриване кортеж от връзка, трябва да се внимава, че стойността на първичния ключ на изтрития кортеж все още не присъства в колоната с чужд ключ на референтна връзка. Като има предвид вмъкване няма ограничения за първичен ключ.

Основният ключ на таблица, когато се използва в друга таблица, тогава той става чужд ключ за тази таблица. Външните ключови ограничения са разгледани по-долу.

Определение на чужд ключ

Когато връзка R1, сред неговите атрибути има a първичен ключ на друга връзка R2, тогава този атрибут се извиква Външен ключ за връзка R1, Връзката R1 съдържащ чуждия ключ се извиква референтна връзка тъй като се отнася до първичен ключ на отношение R2 и отношение R2 е наречен референтна връзка.
За разлика от първичния ключ, чуждият ключ може да приеме НУЛА стойности, тъй като той няма задачата да идентифицира отчетливо в една връзка, тъй като ние имаме основния ключ за това. По същия начин се приема и чуждият ключ дублиращи се стойности.

Отношение може да има многократни чужди ключове, тъй като може да има различни атрибути, които са първични ключове в различни отношения. Чуждестранното ключово ограничение може не да се дефинира на временни таблици, нито чужд ключ е a клъстер индексирана атрибут.

Докато вмъкване стойност в колона с чужд ключ на референтна връзка, уверете се, че вмъкващата стойност трябва да присъства в колоната с първичен ключ на референтното отношение. Като има предвид, че няма ограничение докато изтриване стойност от колоната с чужд ключ.

  1. Основен е набор от атрибути / кандидат ключ, който ясно идентифицира запис във връзка. Чуждият ключ в таблицата обаче се отнася до първичния ключ на друга таблица.
  2. Никой атрибути на първичен ключ не може да съдържа стойности NULL, докато атрибутът на чужд ключ може да приеме NULL стойност.
  3. Първичният ключ трябва да има уникални стойности на атрибути, докато чужд ключ може да има дублирани стойности на атрибут.
  4. Във връзка може да има няколко чужди ключа, но връзката има само един първичен ключ.
  5. Ограничението на основния ключ може да се приложи към временните таблици. Ограничаването на чужд ключ обаче не може да се приложи към временните таблици.
  6. Основният ключ е по подразбиране клъстериран индексиран, докато чужд ключ не се индексира клъстер автоматично, но може да се извърши ръчно.
  7. Докато вмъквате стойност в колона с чужд ключ, уверете се, че стойността на атрибута за вмъкване присъства в реферираната колона с първичен ключ. Въпреки това, няма ограничение за поставяне в колона с първичен ключ.
  8. Докато изтривате стойност от колоната с първичен ключ, уверете се, че стойността на изтрития атрибут не присъства в референтната колона с чужд ключ. Въпреки това, няма ограничение за изтриване на стойност от колона с чужд ключ.

Заключение:

И двете, първичният и външният ключ са от съществено значение за една схема. Първичен ключ дефинира всеки кортеж в отношение еднозначно, докато чужд ключ се използва за създаване на връзка между две отношения.