ПРОЕКТЫ_2

НОМЕРА_ПРОЕКТОВ

ПРОЕКТЫ_1

ПРОЕКТ_НАЗВ ПРОЕКТ_РУК
ПРОЕКТ 1 Иванов
ПРОЕКТ 2 Иваненко

 

 

ПРО_НОМ

 

Результат операции ПРОЕКТЫ <OR> НОМЕРА_ПРОЕКТОВ

 

ПРОЕКТ_НАЗВ ПРОЕКТ_РУК ПРО_НОМ
ПРОЕКТ 1 Иванов
ПРОЕКТ 2 Иванов
ПРОЕКТ 3 Иванов
ПРОЕКТ 1 Иваненко
ПРОЕКТ 2 Иваненко
ПРОЕКТ 3 Иваненко
ПРОЕКТ 1 Иванов
ПРОЕКТ 2 Иванов
ПРОЕКТ 3 Иванов
ПРОЕКТ 1 Иваненко
ПРОЕКТ 2 Иваненко
ПРОЕКТ 3 Иваненко
ПРОЕКТ 1 Иванов
ПРОЕКТ 2 Иваненко

 

Рис. 4.5. Результат операции <OR> над операндами без общих атрибутов

 

Как показывает рис. 4.5, операция <OR> при наличии операндов с несовпадающими схемами производит результат, существенно более мощный, чем результат операции взятия расширенного декартова произведения из Лекции 3, и еще менее осмысленный с практической точки зрения.

 

Для иллюстрации операции <OR> над операндами, схемы которых имеют непустое пересечение, воспользуемся отношением ПРОЕКТЫ_2{ПРО_НОМ,ПРОЕКТ_РУК} (рис. 4.6) и унарным отношением НОМЕРА_ПРОЕКТОВ, схема и тело которого показаны на рис. 4.5. Будем предполагать, что множества значений доменов атрибутов такие же, как в предыдущем примере. Результат операции ПРОЕКТЫ_2<OR> НОМЕРА_ПРОЕКТОВпоказан на рис. 4.6.

 

ПРО_НОМ ПРОЕКТ_РУК
Иванов
Иваненко

 

ПРОЕКТЫ_2<OR> НОМЕРА_ПРОЕКТОВ

 

ПРО_НОМ ПРОЕКТ_РУК
Иванов
Иваненко
Иванов
Иваненко

 

Рис. 4.6. Результат операции <OR> над операндами, схемы которых частично пересекаются.

Как уже отмечалось, при совпадении схем отношений-операндов результатом выполнения над ними операции <OR> является объединение отношений. Это непосредственно следует из спецификации операции. Если этот факт кажется неочевидным, еще раз внимательно посмотрите на спецификацию. Поэтому мы не будем приводить иллюстрирующий пример.