Здавалка
Главная | Обратная связь

Обмеження зовнішнього ключа (FOREIGN KEY)



Посилальна цілісність визначає: якщо в таблиці існує зовнішній ключ, то його значення повинне або відповідати значенню первинного ключа деякого запису в базовій таблиці, або задаватися визначником NULL.

Обмеження зовнішнього ключа - основний механізм для підтримки посилальної цілісності між таблицями реляційної бази даних. Стовпець дочірньої таблиці, визначений як зовнішній ключ в параметрі FOREIGN KEY, застосовується для посилання на стовпець батьківської таблиці, що є в ній первинним ключем. Ім'я батьківської таблиці і стовпці її первинного ключа указуються в реченні REFERENCES

Дані в стовпцях, визначених як зовнішній ключ, можуть набувати тільки таких же значень, які знаходяться в пов'язаних з ним стовпцях первинного ключа батьківської таблиці, або бути невизначеними, залежно від вимог предметної галузі, які відбиваються через фразу MATCH.

Збіг імен стовпців первинного і зовнішнього ключів при встановленні зв'язку дочірньої і батьківської таблиць необов'язковий. Первинний ключ може бути визначений для стовпця з одним ім'ям, тоді як стовпець, на який накладено обмеження FOREIGN KEY, може мати абсолютно інше ім'я. Єдиною вимогою залишається відповідність стовпців за типом і розміром даних.

На первинний ключ можуть посилатися не тільки стовпці інших таблиць, але і стовпці, розташовані в тій же таблиці, що і власне первинний ключ. Це дозволяє створювати рекурсивні структури.

Зовнішній ключ може посилатися не лише на первинний ключ іншої таблиці, але й на стовпці з обмеженням UNIQUE іншої таблиці чи будь-яких інших стовпців таблиць у межах одної базі даних. Стовпці зовнішнього ключа можуть містити значення NULL.

Між двома або більш таблицями бази даних можуть існувати відношення підлеглості, які визначають, що для кожного запису головної таблиці (званою ще батьківською ) може існувати один або кілька записів в підлеглій таблиці (званою також дочірньою). Існує три типи зв'язку між таблицями бази даних: «один-до-багатьох»; «один-до-одного»; «багато-до-багатьох».

Відношення «один-до-багатьох» - одному запису батьківської таблиці може відповідати кілька записів дочірньої. Відношення «один-до-багатьох» - найпоширеніший зв'язокреляційних БД, який дає змогу моделювати також ієрархічні структури даних. Відношення «один-до-одного» - одному запису в батьківській таблиці відповідає один запис в дочерній

Відношення «один-до-одного» - використовують рідко, коли не хочуть перевантажувати таблицю БД другорядною інформацією. Використання такого зв'язку Þ для читання зв'язаної інформації в декількох таблицях доводиться проводити кілька операцій читання замість однієї, коли дані зберігаються в одній таблиці. Зв'язок «багато-до-багатьох» заміняють на зв'язки «один-до-багатьох».

Якщо в таблиці існує зовнішній ключ, то його значення повинне або відповідати значенню первинного ключа деякого запису в базовій таблиці, або задаватися визначником NULL.Якщо участь дочірньої таблиці в зв'язку є обов'язковою, то рекомендується забороняти вживання порожніх значень у відповідному зовнішньому ключі. Якщо має місце часткова участь дочірньої таблиці в зв'язку, то розміщення порожніх значень в полі зовнішнього ключа має бути дозволене







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.