Junior
Как влияе външният ключ върху целостта на данните в базата данни?
sobes.tech AI
Отговор от AI
Външен ключ (foreign key) осигурява референтна цялост на данните, гарантирайки, че стойностите в колоната на една таблица (дъщерна таблица) съответстват на стойностите в колоната на друга таблица (майчина таблица).
Влияние върху цялостта на данните:
- Забранява добавянето на записи в дъщерната таблица с несъществуваща стойност в съответната колона на майчината таблица. Опитът за вмъкване на ред, който се позовава на несъществуващ запис, ще доведе до грешка.
- Ограничаване на изтриването на записи от майчината таблица, към които се отнасят записи в дъщерната таблица. Поведението при изтриване зависи от зададеното действие (
ON DELETE):RESTRICT(по подразбиране): Забранява изтриването.CASCADE: Изтрива зависимите записи в дъщерната таблица.SET NULL: Задава стойност NULL в съответната колона на дъщерната таблица (ако колоната позволява NULL).NO ACTION: Подобно наRESTRICTпри стандартната проверка, но може да се различава по време на изпълнение.
- Ограничаване на актуализирането на записи в майчината таблица. Поведението при актуализация също зависи от зададеното действие (
ON UPDATE):RESTRICT(по подразбиране): Забранява актуализацията.CASCADE: Актуализира съответната стойност в зависимите записи в дъщерната таблица.SET NULL: Задава стойност NULL в съответната колона на дъщерната таблица (ако колоната позволява NULL).NO ACTION: Подобно наRESTRICTпри стандартната проверка, но може да се различава по време на изпълнение.
Външният ключ помага да се предотврати появата на "сиротни" записи и гарантира, че връзките между таблиците остават коректни.