Ограничения целостности - MySQL

Узнай цену своей работы

Формулировка задачи:

Рассматривается реляционное отношение, содержащее информацию о поездах Train(*number, title, departure_station, arrival_station, departure_time, arrival_time, trip_time), символом "*" помечен ключевой атрибут. Записать средствами SQL такие ограничения целостности: а) станция прибытия не должна совпадать со станцией отправления б) время в пути должно совпадать с разницей между временем прибытия и временем отправления в) не должно быть записей о поездах, которые совпадают во всех значениях, кроме номера г) не должно быть записей о поездах, которые едут из одинакового пункта отправления в одинаковый пункт прибытия, и разница во времени отправления у них меньше 10 минут. С а я вроде разобрался, но с остальным что-то не выходит
alter table trains.train
add check (select departure_station from train not in (select arrival_station from train));

Решение задачи: «Ограничения целостности»

textual
Листинг программы
CREATE ASSERTION AS2 CHECK
(NOT EXISTS (select * from trip
where departure_station=arrival_station and
where trip_time=arrival_time-departure_time and trip_time > 00:10:00));

Объяснение кода листинга программы

В данном коде создается ограничение целостности (assertion) для таблицы trip с именем AS2. Ограничение гарантирует, что в таблице не будет двух строк, удовлетворяющих следующим условиям:

  1. departure_station = arrival_station
  2. trip_time = arrival_time - departure_time
  3. trip_time > 00:10:00 Пояснение к условиям:
    • Первое условие проверяет, что станция отправления равна станции прибытия.
    • Второе условие проверяет, что время прибытия равно разности времени отправления и времени пути.
    • Третье условие проверяет, что время пути больше 10 минут (00:10:00).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5