Перейти к содержанию

24. Практическая создание связей SQL

Цель работы

  • Научиться создавать связи между таблицами с помощью PRIMARY KEY и FOREIGN KEY.
  • Освоить создание связей при CREATE TABLE и через ALTER TABLE.
  • Понять, как связи обеспечивают ссылочную целостность.
  • Научиться выбирать корректное поведение ON DELETE и ON UPDATE.

Ход работы

Задание 1. Проверка ключей в существующих таблицах

  1. Выберите 2 таблицы в своей базе данных, которые логически должны быть связаны (например: StudentsGroups, ProductsCategories, OrdersCustomers).
  2. Убедитесь, что в родительской таблице есть PRIMARY KEY.
  3. Убедитесь, что в дочерней таблице есть поле для внешнего ключа.

Задание 2. Создание связи при CREATE TABLE (на примере новой пары таблиц)

  1. Создайте две новые таблицы (минимальные по структуре):
    • родительскую (например, Departments);
    • дочернюю (например, Employees).
  2. Создайте PRIMARY KEY в родительской таблице.
  3. Создайте связь в дочерней таблице через FOREIGN KEY прямо в CREATE TABLE.
  4. Укажите имя ограничения через CONSTRAINT.

Задание 3. Создание связи через ALTER TABLE (на ваших основных таблицах)

  1. Выберите одну существующую таблицу, где связь ещё не задана (или создайте новую таблицу без связи).
  2. Добавьте связь с помощью ALTER TABLE ... ADD CONSTRAINT ... FOREIGN KEY ....
  3. Используйте осмысленное имя ограничения (например, 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. Проверка ссылочной целостности (ошибки)

  1. Попробуйте вставить запись в дочернюю таблицу с внешним ключом, которого нет в родительской таблице.
  2. Зафиксируйте, какую ошибку выдаёт MariaDB.

Задание 6. Проверка поведения ON DELETE

  1. Добавьте несколько записей в родительскую и дочернюю таблицы так, чтобы они были связаны.
  2. Попробуйте удалить запись из родительской таблицы.
  3. Проанализируйте результат:
    • запретилось удаление;
    • удалились связанные записи;
    • в дочерней таблице значения стали NULL.

Задание 7. Итог: схема связей вашей базы

  1. В своей основной базе данных перечислите все связи, которые у вас есть.
  2. Для каждой связи укажите:
    • родительская таблица и ключ;
    • дочерняя таблица и внешний ключ;
    • поведение ON DELETE и ON UPDATE (если задано).

Требования к отчёту

Отчёт должен содержать: 1. Тему. 2. Краткое описание своей базы данных (что за предметная область, какие таблицы используются). 3. Для каждого задания: - Используемые таблицы - SQL запрос + описание, - Результат.