Съдържание:
Определение - Какво означава чуждестранен ключ?
Чужд ключ е колона или група колони в таблица на релационна база данни, която осигурява връзка между данните в две таблици. Той действа като препратка между таблиците, защото препраща към основния ключ на друга таблица, като по този начин установява връзка между тях.
По-голямата част от таблиците в релационна система от бази данни се придържат към концепцията за чужд ключ. В сложни бази данни и хранилища на данни, данните в даден домейн трябва да се добавят в множество таблици, като по този начин се поддържа връзка между тях. Концепцията за референтна цялост произтича от теорията на чуждестранните ключове.
Чуждите ключове и тяхното изпълнение са по-сложни от първичните ключове.
Техопедия обяснява чуждия ключ
За всяка колона, действаща като чужд ключ, в таблицата на връзката трябва да съществува съответна стойност. Трябва да се внимава по време на въвеждането на данни и премахването на данни от колоната с чужд ключ, тъй като небрежното изтриване или вмъкване може да разруши връзката между двете таблици.
Например, ако има две таблици, клиент и поръчка, може да се създаде връзка между тях чрез въвеждане на чужд ключ в таблицата за поръчки, който се отнася до идентификационния номер на клиента в таблицата на клиента. Графата на идентификационния номер на клиента съществува както в таблици на клиенти, така и в поръчки. Идентификационният номер на клиента в таблицата за поръчки става чуждестранен ключ, отнасящ се до първичния ключ в таблицата на клиента. За да поставите запис в таблицата за поръчки, ограничението на чуждия ключ трябва да бъде изпълнено. Опит за въвеждане на идентификационен номер на клиента, който не присъства в таблицата на клиента, се проваля, като по този начин се поддържа референтната цялост на таблицата.
Някои референтни действия, свързани с чуждо ключово действие, включват следното:
- Cascade: Когато редовете в родителската таблица са изтрити, съвпадащите колони с чужд ключ в дъщерната таблица също се изтриват, създавайки каскадно изтриване.
- Задайте нула: Когато референтен ред в родителската таблица бъде изтрит или актуализиран, стойностите на чужди ключове в референтния ред са зададени на нула, за да се поддържа референтната цялост.
- Тригери: Референтните действия обикновено се изпълняват като тригери. В много отношения чуждите ключови действия са подобни на дефинираните от потребителя тригери. За да се осигури правилното изпълнение, подредените референтни действия понякога се заменят с техните еквивалентни дефинирани от потребителя тригери.
- Задаване по подразбиране: Това референтно действие е подобно на „задаване на нула“. Стойностите на чужди ключове в дъщерната таблица се задават на стойността на колоната по подразбиране, когато реферираният ред в родителската таблица бъде изтрит или актуализиран.
- Ограничаване: Това е нормалното референтно действие, свързано с чужд ключ. Стойност в родителската таблица не може да бъде изтрита или актуализирана, стига да е посочена от чужд ключ в друга таблица.
- Без действие: Това референтно действие е подобно по функция на "ограничи" действието, освен че проверка без действие се извършва само след опит за промяна на таблицата.