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

В система за управление на релационни бази данни (RDBMS) данните се съхраняват в таблици. Тъй като огромно количество данни се съхранява в таблиците, винаги има възможност данните да станат неорганизирани или да съдържат дубликати. Също така, когато трябва да извлечем данните според нашето изискване от тези огромни данни, задачата става трудна. Концепцията на Key се използва в RDBMS за идентифициране на записи в таблицата от хиляди редове данни. Също така използването на Key помага за установяване на връзката между таблиците, така че данните да могат да бъдат препращани от различни таблици. Така ключът в системата за управление на релационните бази данни поддържа целостта на ниво таблица, както и референтната цялост. В тази статия ще разгледаме подробно разликата между първичния и външния ключ.

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

Сравнение между главата и първичния ключ (Инфографика)

По-долу са първите 6 разлики между първичен и външен ключ:

Ключови разлики между първичен и външен ключ

Нека да обсъдим някои от основните ключови разлики между първичен и външен ключ:

  • Първичният ключ идентифицира записите в таблица уникално, докато чуждестранният ключ се използва за свързване на таблиците, т.е. се отнася до първичния ключ на друга таблица.
  • Графата Първичен ключ в таблица не може да има нулеви стойности и винаги трябва да има уникални стойности. Но външният ключ в таблицата може да съдържа нулеви стойности и също може да има дублирани стойности.
  • Таблицата може да има само един първичен ключ, докато за таблица може да има повече от един външен ключ.
  • Индексът се създава автоматично за Първичния ключ, докато за външния ключ индексите не се създават автоматично.
  • Лесно е да изтриете ограничението на чуждестранния ключ, въпреки че се отнася до първичния ключ. Но изтриването на ограничение на първичния ключ може да създаде записи с дочерните записи, които нямат родителски запис.

Таблица за сравнение на първичен и външен ключ

Таблицата по-долу обобщава сравненията между първичен и външен ключ:

Първичен ключВъншен ключ
Първичният ключ на таблица в RDBMS може да бъде една колона или може да съдържа повече от една колона, която се използва за идентифициране на всеки ред в таблицата по уникален начин. В случая на Първичния ключ, състоящ се от повече от една колона, данните от всяка колона се използват за определяне на уникалността на един ред. Таблица в RDMBS може да има само един първичен ключ.Външният ключ може да бъде една колона или може да се състои от повече от една колона в таблица, която се използва за препращане към първичния ключ на друга таблица. Външният ключ може да се използва за свързване на таблиците в RDBMS. За разлика от атрибута на първичния ключ, таблица в RDBMS може да има повече от един чужд ключ.
Има няколко условия, които трябва да бъдат изпълнени, за да може колоната да бъде първичен ключ в таблицата. Едно от условията е Първичният ключ да съдържа уникална стойност за всеки запис. Така че таблица в RDBMS не може да бъде разрешена да има дублирани стойности за два реда за атрибута на първичния ключ.За разлика от първичния ключ на таблица в RDBMS, чуждестранният ключ може да съдържа дублирани стойности. Това позволява да има дублирани стойности за редовете на таблицата за атрибута на чужд ключ.
Другото условие на колона, която отговаря на първичен ключ, е, че тя не трябва да съдържа нулеви стойности.Но външният ключ на таблица в RDBMS може да съдържа нулеви стойности.
Основен ключ се посочва, докато дефинира таблицата и е задължително да се дефинира първичният ключ.За разлика от първичния ключ, няма конкретна дефиниция на таблицата за обозначаване на ключ като чужд ключ.
Не е възможно да се изтрие ограничението на първичния ключ от родителска таблица с външния ключ на дъщерната таблица, отнасящ се до него. Затова първо трябва да се изтрие Детската таблица, преди да се изтрие таблицата Родител.Но ако трябва да изтрием ограничението на външния ключ в таблица, то може да бъде изтрито от дъщерната таблица, въпреки че се отнася до първичния ключ на родителската таблица.

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

заключение

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

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

Препоръчителни статии

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

  1. WebLogic срещу WebSphere
  2. ROLAP срещу MOLAP срещу HOLAP
  3. GoCD срещу Jenkins
  4. Дълг срещу капиталово финансиране