Sobes.tech
Junior

Как влияе външният ключ върху целостта на данните в базата данни?

sobes.tech AI

Отговор от AI

Външен ключ (foreign key) осигурява референтна цялост на данните, гарантирайки, че стойностите в колоната на една таблица (дъщерна таблица) съответстват на стойностите в колоната на друга таблица (майчина таблица).

Влияние върху цялостта на данните:

  1. Забранява добавянето на записи в дъщерната таблица с несъществуваща стойност в съответната колона на майчината таблица. Опитът за вмъкване на ред, който се позовава на несъществуващ запис, ще доведе до грешка.
  2. Ограничаване на изтриването на записи от майчината таблица, към които се отнасят записи в дъщерната таблица. Поведението при изтриване зависи от зададеното действие (ON DELETE):
    • RESTRICT (по подразбиране): Забранява изтриването.
    • CASCADE: Изтрива зависимите записи в дъщерната таблица.
    • SET NULL: Задава стойност NULL в съответната колона на дъщерната таблица (ако колоната позволява NULL).
    • NO ACTION: Подобно на RESTRICT при стандартната проверка, но може да се различава по време на изпълнение.
  3. Ограничаване на актуализирането на записи в майчината таблица. Поведението при актуализация също зависи от зададеното действие (ON UPDATE):
    • RESTRICT (по подразбиране): Забранява актуализацията.
    • CASCADE: Актуализира съответната стойност в зависимите записи в дъщерната таблица.
    • SET NULL: Задава стойност NULL в съответната колона на дъщерната таблица (ако колоната позволява NULL).
    • NO ACTION: Подобно на RESTRICT при стандартната проверка, но може да се различава по време на изпълнение.

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