ПРОЕКТЫ_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> является объединение отношений. Это непосредственно следует из спецификации операции. Если этот факт кажется неочевидным, еще раз внимательно посмотрите на спецификацию. Поэтому мы не будем приводить иллюстрирующий пример.