Зміст:
Визначення - Що означає зовнішній ключ?
Іноземний ключ - це стовпець або група стовпців у таблиці реляційних баз даних, що забезпечує зв’язок між даними у двох таблицях. Він діє як перехресне посилання між таблицями, оскільки посилається на первинний ключ іншої таблиці, тим самим встановлюючи зв'язок між ними.
Більшість таблиць у реляційній системі баз даних дотримуються закордонної ключової концепції. У складних базах даних і сховищах даних у домені потрібно додавати через декілька таблиць, таким чином підтримуючи зв’язок між ними. Поняття референтної цілісності походить із теорії закордонних ключів.
Іноземні ключі та їх реалізація складніші за первинні ключі.
Техопедія пояснює Іноземний ключ
Для будь-якого стовпця, що діє як зовнішній ключ, відповідне значення має існувати у таблиці посилань. Особливо обережно потрібно вставляти дані та видаляти дані з стовпця із зовнішнім ключем, оскільки необережне видалення чи вставка може зруйнувати зв’язок між двома таблицями.
Наприклад, якщо є дві таблиці, клієнт і замовлення, між ними можна створити відносини, ввівши в таблицю замовлення зовнішній ключ, що посилається на ідентифікатор клієнта в таблиці клієнтів. Стовпець ідентифікатора клієнта існує в таблицях клієнтів та замовленнях. Ідентифікатор клієнта в таблиці замовлень стає зовнішнім ключем, посилаючись на первинний ключ у таблиці клієнтів. Щоб вставити запис у таблицю замовлень, необхідно виконати обмеження зовнішнього ключа. Спроба ввести ідентифікатор клієнта, який не присутній у таблиці клієнта, не вдається, таким чином зберігаючи референсну цілісність таблиці.
Деякі референтні дії, пов'язані з іноземною ключовою дією, включають наступне:
- Каскад: Коли рядки з батьківської таблиці видаляються, відповідні стовпці із зовнішнім ключем у дочірній таблиці також видаляються, створюючи каскадне видалення.
- Встановити Null: Коли згаданий рядок у батьківській таблиці видаляється або оновлюється, значення іноземних ключів у референтній рядку встановлюються на нульові значення для підтримки референтної цілісності.
- Тригери: Референтні дії зазвичай реалізуються як тригери. Багато в чому зовнішні ключові дії схожі на визначені користувачем тригери. Для забезпечення належного виконання впорядковані референсні дії іноді замінюються на їх еквівалентні визначені користувачем тригери.
- Встановити за замовчуванням: ця референтна дія схожа на "встановити нуль". Значення іноземного ключа в дочірній таблиці встановлюються за значенням стовпця за замовчуванням, коли згаданий рядок у батьківській таблиці видаляється або оновлюється.
- Обмежити: це звичайна референтна дія, пов'язана із зовнішнім ключем. Значення в батьківській таблиці не можна видалити або оновити, доки воно посилається зовнішнім ключем в іншій таблиці.
- Ніякої дії: Ця референсна дія за функцією схожа на дію "обмежити", за винятком того, що перевірка без дій виконується лише після спроби змінити таблицю.