24. Практическая создание связей SQL
Цель работы
- Научиться создавать связи между таблицами с помощью PRIMARY KEY и FOREIGN KEY.
- Освоить создание связей при
CREATE TABLEи черезALTER TABLE. - Понять, как связи обеспечивают ссылочную целостность.
- Научиться выбирать корректное поведение
ON DELETEиON UPDATE.
Ход работы
Задание 1. Проверка ключей в существующих таблицах
- Выберите 2 таблицы в своей базе данных, которые логически должны быть связаны (например:
Students→Groups,Products→Categories,Orders→Customers). - Убедитесь, что в родительской таблице есть PRIMARY KEY.
- Убедитесь, что в дочерней таблице есть поле для внешнего ключа.
Задание 2. Создание связи при CREATE TABLE (на примере новой пары таблиц)
- Создайте две новые таблицы (минимальные по структуре):
- родительскую (например,
Departments); - дочернюю (например,
Employees).
- родительскую (например,
- Создайте PRIMARY KEY в родительской таблице.
- Создайте связь в дочерней таблице через
FOREIGN KEYпрямо вCREATE TABLE. - Укажите имя ограничения через
CONSTRAINT.
Задание 3. Создание связи через ALTER TABLE (на ваших основных таблицах)
- Выберите одну существующую таблицу, где связь ещё не задана (или создайте новую таблицу без связи).
- Добавьте связь с помощью
ALTER TABLE ... ADD CONSTRAINT ... FOREIGN KEY .... - Используйте осмысленное имя ограничения (например,
fk_orders_customer).
Задание 4. ON DELETE и ON UPDATE (на выбор)
Для связи из задания 2 или 3 настройте поведение при удалении/изменении:
1. Установите одно из действий ON DELETE:
- RESTRICT (или NO ACTION) или
- CASCADE или
- SET NULL.
2. Установите одно из действий ON UPDATE (чаще всего CASCADE или RESTRICT).
Задание 5. Проверка ссылочной целостности (ошибки)
- Попробуйте вставить запись в дочернюю таблицу с внешним ключом, которого нет в родительской таблице.
- Зафиксируйте, какую ошибку выдаёт MariaDB.
Задание 6. Проверка поведения ON DELETE
- Добавьте несколько записей в родительскую и дочернюю таблицы так, чтобы они были связаны.
- Попробуйте удалить запись из родительской таблицы.
- Проанализируйте результат:
- запретилось удаление;
- удалились связанные записи;
- в дочерней таблице значения стали NULL.
Задание 7. Итог: схема связей вашей базы
- В своей основной базе данных перечислите все связи, которые у вас есть.
- Для каждой связи укажите:
- родительская таблица и ключ;
- дочерняя таблица и внешний ключ;
- поведение ON DELETE и ON UPDATE (если задано).
Требования к отчёту
Отчёт должен содержать: 1. Тему. 2. Краткое описание своей базы данных (что за предметная область, какие таблицы используются). 3. Для каждого задания: - Используемые таблицы - SQL запрос + описание, - Результат.