Естественное объединение двух отношений с более чем одним общим атрибутом?

Моя актуальная задача: эквивалентны ли следующие два отношения, почему, почему нет? /)

r5: ПРОЕКТ B (R) СОВМЕСТНЫЙ ПРОЕКТ B (U)
R6: ПРОЕКТ B (R JOIN U)

img http://s29.postimg.org/hgfgfmptx/zzz.png

в то время как R(ABC) и U (AB)

Я пришел к выводу, что r5 сгенерирует отношение с одним атрибутом B, содержащим общие значения для B, которые разделяют R и U.

Однако я застреваю на R6. Какие значения B сгенерирует r6? при том, что эти два отношения имеют 2 общих признака.

Большое спасибо!

1 ответ

Решение

(Естественно) JOIN соответствует всем общим атрибутам (то же имя атрибута).

В r5 B проецируется на R и на U до объединения. Таким образом, единственный общий атрибут - это B. (И значения в атрибутах A и C игнорируются.)

R5 эквивалентно

    SELECT B
      FROM R, U
     WHERE R.B = U.B

В r6 общими для (R JOIN U) атрибутами являются B и A. Таким образом, результатом этого объединения являются только кортежи из R и U, которые имеют одинаковое значение для A и B.

R6 эквивалентен:

    SELECT B
      FROM R, U
     WHERE R.B = U.B AND R.A = U.A
Другие вопросы по тегам