Ключовата разлика между външния ключ и първичния ключ е, че външният ключ е колона или набор от колони, които препращат към първичен ключ или кандидат-ключ на друга таблица, докато първичният ключ е колона или набор от колони който може да се използва за уникално идентифициране на ред в таблица.
Колона или набор от колони, които могат да се използват за идентифициране или достъп до ред или набор от редове в база данни, се нарича ключ. Първичен ключ в релационна база данни е комбинация от колони в таблица, които уникално идентифицират ред от таблицата. Външен ключ в релационна база данни е поле в таблица, което съответства на първичния ключ на друга таблица. Външният ключ се използва за пресичане на референтни таблици.
Какво е външен ключ?
Външният ключ е референтно ограничение между две таблици. Той идентифицира колона или набор от колони в една таблица, наречена референтна таблица, която препраща към набор от колони в друга таблица, наречена референтна таблица. Външният ключ или колоните в референтната таблица трябва да бъдат първичният ключ или кандидат-ключ (ключ, който може да се използва като първичен ключ) в референтната таблица. Освен това външните ключове позволяват свързване на данни в няколко таблици. Следователно външният ключ не може да съдържа стойности, които не се появяват в таблицата, към която препраща. Тогава препратката, осигурена от външния ключ, помага за свързване на информация в няколко таблици и това би станало съществено при нормализираните бази данни. Няколко реда в референтната таблица може да препращат към един ред в референтната таблица.
Фигура 01: Съпоставяне на външен ключ
В стандарта ANSI SQL ограничението FOREIGN KEY дефинира външни ключове. Освен това е възможно да се дефинират външните ключове при създаването на самата таблица. Една таблица може да има множество външни ключове и те могат да препращат към различни таблици.
Какво е първичен ключ?
Първичният ключ е колона или комбинация от колони, която уникално дефинира ред в таблица на релационна база данни. Една таблица може да има най-много един първичен ключ. Първичният ключ налага неявното ограничение NOT NULL. Следователно колона с първичен ключ не може да има NULL стойности в нея. Първичният ключ може да бъде нормален атрибут в таблицата, който е гарантирано уникален, като номер на социална осигуровка, или може да бъде уникална стойност, генерирана от системата за управление на базата данни, като глобален уникален идентификатор (GUID) в Microsoft SQL Server.
Фигура 02: Първичен ключ
Освен това, ограничението PRIMARY KEY в стандарта ANSI SQL дефинира първични ключове. Също така е възможно да се дефинира първичен ключ при създаването на таблицата. В допълнение към това SQL позволява първичният ключ да бъде съставен от една или повече колони и всяка колона, която е включена в първичния ключ, е имплицитно дефинирана като NOT NULL. Но някои системи за управление на бази данни изискват колоните с първичен ключ да бъдат изрично NOT NULL.
Каква е разликата между външен ключ и първичен ключ?
Външен ключ срещу първичен ключ |
|
Външният ключ е колона или група от колони в таблица на релационна база данни, която осигурява връзка между данни в две таблици. | Първичният ключ е специална колона в таблица на релационна база данни или комбинация от множество колони, която позволява уникалното идентифициране на всички записи в таблицата. |
NULL | |
Чуждият ключ приема NULL стойност. | Стойността на първичния ключ не може да бъде NULL. |
Брой клавиши | |
Таблицата може да има множество външни ключове. | Таблицата може да има само един първичен ключ. |
Дублиране | |
Кортежите могат да имат дублирана стойност за атрибут на външен ключ. | Два кортежа в релация не могат да имат дублиращи се стойности за атрибут на първичен ключ. |
Резюме – Външен ключ срещу първичен ключ
Разликата между външен ключ и първичен ключ е, че външният ключ е колона или набор от колони, които препращат към първичен ключ или кандидат-ключ на друга таблица, докато първичният ключ е колона или набор от колони, които може да се използва за уникално идентифициране на ред в таблица.