Зависимость проекции/соединения

 

То утверждение, что тело отношения СЛУЖ_ПРО_ЗАДАН восстанавливается без потерь путем естественного соединения его проекций СЛУЖ_ПРО_НОМ, ПРО_НОМ_ЗАДАНи СЛУЖ_ЗАДАНИЕ эквивалентно следующему утверждению (ТСПЗ, ТСПН, ТПНЗи ТСЗобозначают тела значений переменных отношений СЛУЖ_ПРО_ЗАДАН,СЛУЖ_ПРО_НОМ, ПРО_НОМ_ЗАДАНи СЛУЖ_ЗАДАНИЕ соответственно):

 

IF (<сн, пн> Î ТСПНAND <пн, сз> Î ТПНЗAND <сн, сз> Î ТСЗ)
THEN <сн, пн, сз> Î ТСПЗ

 

Для того, чтобы возможность восстановления без потерь отношения СЛУЖ_ПРО_ЗАДАН путем естественного соединения его проекций СЛУЖ_ПРО_НОМ, ПРО_НОМ_ЗАДАНи СЛУЖ_ЗАДАНИЕ существовала при любом допустимом значении переменной отношения СЛУЖ_ПРО_ЗАДАН, должно поддерживаться следующее ограничение:

 

IF (<сн1, пн1, сз2> Î ТСПЗAND <сн2, пн1, сз1> Î ТСПЗ
AND <сн1, пн2, сз1> Î ТСПЗ)

THEN <сн1, пн1, сз1> Î ТСПЗ

Это обычное ограничение реального мира, которое для отношения СЛУЖ_ПРО_ЗАДАН может быть сформулировано на естественном языке следующим образом:

 

Если сотрудник с номером сн участвует в проекте пн, и в проекте пн выполняется задание сз, и сотрудник с номером сн выполняет задание сз, то сотрудник с номером сн выполняет задание сз в проекте пн.

 

В общем виде такое ограничение называется зависимостью проекции/соединения. Вот формальное определение.

 

Определение 8.4. Зависимость проекции/соединения

Пусть задана переменная отношения r, и A, B, …, Z являются произвольными подмножествами заголовка r (составными, перекрывающимися атрибутами). В переменной отношения r удовлетворяется зависимость проекции/соединения (Project-Join Dependency – PJD) *( A, B, …, Z) тогда и только тогда, когда любое допустимое значение r можно получить путем естественного соединения проекций этого значения на атрибуты A, B, …, Z. Конец определения.