0

У меня есть отношение A1 = (id1, id2) и отношение A2 = (id, id1, id2), где id, id1, id2 - атрибуты.Может ли естественное/тета-соединение заменить пересечение в реляционной алгебре?

Я хочу найти пересечения - (A1.id1 = A2.id1^A1.id2 = A2.id2) из A1 и A2, но это невозможно в отношении алгебры, поскольку они имеют другую схему.

Я хочу пересечь их не теряя «id» данных. (я не могу просто проект A2 над ID1 и ID2, а затем пересекаются)

Так я мог применить тета присоединиться или естественное соединение здесь, чтобы добраться до перекрестка?

Это возвращает мне пустое отношение, если соответствия не существует?

ответ

1

Да, он должен возвращать пустое отношение, если в соединенных отношениях не появляются соответствующие кортежи.

И да, пересечение является частным случаем естественного объединения ergo естественным соединением, является обобщением пересечения и естественным соединением ergo может «заменить» пересечение везде, где можно использовать пересечение. (Но вы должны помнить, что ваш конкретный вариант использования - NOT, где «пересечение может использоваться» - и причина в том, что вы упомянули: схема не идентична. Не ставьте лошадь за тележку.)

0

Вы можете проецировать A2 над id1 и id2, а затем пересекает результат с a1, или вы также можете применить естественное соединение, а затем спроецировать результат еще раз над id1 и id2.

Эти два разных подхода дают одинаковый результат.

+0

Если я проецирую на id1 и id2, я потеряю идентификатор – d40a

+0

Но если вам нужно пересечение, то две таблицы должны иметь одинаковое количество атрибутов с одним и тем же типом. В противном случае это не пересечение, алгебраический оператор. – Renzo

Смежные вопросы