Ограничения целостности - 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
. Ограничение гарантирует, что в таблице не будет двух строк, удовлетворяющих следующим условиям:
departure_station
=arrival_station
trip_time
=arrival_time
-departure_time
trip_time
> 00:10:00 Пояснение к условиям:- Первое условие проверяет, что станция отправления равна станции прибытия.
- Второе условие проверяет, что время прибытия равно разности времени отправления и времени пути.
- Третье условие проверяет, что время пути больше 10 минут (00:10:00).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д