Практична робота №10. Реалізація цілісності даних: ключі та обмеження
Мета
Навчитися реалізовувати сутнісну, доменну та посилальну цілісність за допомогою обмежень і каскадних дій.
Підготовка
Перед виконанням опрацюйте пов'язані лекції:
Завдання
- Створіть таблиці з повним набором обмежень:
PRIMARY KEY,FOREIGN KEY,UNIQUE,NOT NULL,CHECK,DEFAULT. - Для зв'язку курсу з підрозділом додайте каскадну поведінку на варіанті
ON DELETE RESTRICTі продемонструйте, що видалення підрозділу з курсами заборонене. - Створіть окрему таблицю, де зовнішній ключ має
ON DELETE CASCADE, і покажіть, що видалення батьківського запису видаляє дочірні. - Для кожного обмеження спробуйте вставити дані, що порушують правило, і запишіть повідомлення PostgreSQL.
- Покажіть приклад із
UNIQUEтаNULL: перевірте, скільки рядків ізNULLдопускає обмеження. - Додайте перевірку діапазону (
CHECK) і значення за замовчуванням (DEFAULT) та поясніть, коли вони спрацьовують.
Вимоги до результату
- SQL-скрипт із таблицями та обмеженнями.
- Таблиця «обмеження — команда, що його порушує — повідомлення».
- Демонстрація
RESTRICTіCASCADEна прикладі.
Питання для захисту
- Як
CHECKвзаємодіє зNULL? - Коли доцільний
CASCADE, а колиRESTRICT? - Чому
UNIQUEдопускає кількаNULL? - Що захищає
FOREIGN KEY?
