База данных «Окраска»

Схема базы данных состоит из трех таблиц:

utQ (Q_ID int, Q_NAME varchar(35));
utV (V_ID int, V_NAME varchar(35), V_COLOR char(1));
utB (B_Q_ID int, B_V_ID int, B_VOL tinyint, B_DATETIME datetime).

Таблица utQ содержит идентификатор и название квадрата, цвет которого первоначально черный.

Таблица utV содержит идентификатор, название и цвет баллончика с краской.

Таблица utB содержит информацию об окраске квадрата баллончиком: идентификатор квадрата, идентификатор баллончика, количество краски и время окраски.

При этом следует иметь в виду, что:

  • баллончик с краской может быть одного из трех цветов - красный V_COLOR=‘R’, зеленый V_COLOR=‘G’, синий V_COLOR=‘B’ (латинские буквы).

  • объем баллончика равен 255 и первоначально он полный;

  • цвет квадрата определяется по правилу RGB, т.е. (R=0, G=0, B=0) - черный, (R=255, G=255, B=255) - белый;

  • запись в таблице закрасок utB уменьшает количество краски в баллончике на величину B_VOL и соответственно увеличивает количество краски в квадрате на эту же величину;

  • значение 0 < B_VOL <= 255;

  • количество краски одного цвета в квадрате не превышает 255, а количество краски в баллончике не может быть меньше нуля;

  • время окраски B_DATETIME дано с точностью до секунды, т.е. не содержит миллисекунд.

Database Scheme
Рис. Схема базы данных «Окраска»

Некоторые пояснения к схеме.

Идентификаторы черных квадратов отсутствуют в таблице utB. Это следует из того, что B_VOL не допускает NULL-значений и строго больше нуля. Таким образом, каждая запись в таблице utB описывает факт окраски одного квадрата одним баллончиком, черный же квадрат (R=0, G=0, B=0) не подвергался окраске вовсе.

Ограничения схемы допускают одновременную окраску одного квадрата несколькими баллончиками, как и одновременную окраску одним баллончиком нескольких квадратов. Однако запрещена одновременная окраска одного квадрата одним и тем же баллончиком.