Тета присоединиться к условиям - PullRequest
0 голосов
/ 02 апреля 2012

Я учусь на экзамене, который включает в себя понятия реляционной алгебры.В книге говорится, что я не могу создать тэта-соединение (соединение с любым условием) на двух одинаковых отношениях, поэтому предположим, что у меня есть:

person(ssn, name, surname, age)
disease(ssn_p, gravity, code)

С ssn от person, который является первичным ключом.код от заболевания, который является первичным ключом, и ssn_p внешний ключ, ссылающийся на person.name.Так можно ли объединить два отношения, которые имеют общие поля?Так, например, есть два отношения (результат выбора и проекции):

R1(ssn, name)
R2(ssn_p name)

Могу ли я выполнить соединение между R1 и R2 (я не нахожу символы для вставки, извините)?

1 Ответ

2 голосов
/ 02 апреля 2012

Вы не можете выполнять тэта-соединение, когда отношения имеют общие атрибуты.Причина в том, что тета-соединение в основном сопоставляет атрибуты.Другими словами, если a1, a2, ..., an являются атрибутами в R1, а b1, b2, ..., bm являются атрибутами в R2, то результатом тета-соединения на R1 и R2 будет отношение R3атрибуты a1, a2, ..., an, b1, b2, ..., bm.Если R1 и R2 имеют общие атрибуты, то R3 будет иметь дублированные атрибуты.Повторные атрибуты не допускаются в алгебре отношений.

Если вы хотите выполнить тэта-соединение, когда отношения разделяют некоторые атрибуты, вы можете выполнить операцию переименования одного из отношений, чтобы все атрибуты стали различными.

...