2012-04-01 1 views
0

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

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

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

R1(ssn, name) 
R2(ssn_p name) 

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

+0

Это, вероятно, относится к [cstheory.se] –

ответ

2

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

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

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

  • Нет связанных вопросов^_^