2012-04-01 1 views
0

관계형 대수학의 개념을 포함하는 시험을 위해 공부하고 있습니다.쎄타 결합 조건

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

를 기본 키 사람으로부터 사회 보장 번호 (SSN)와 함께 : 이 책은 내가 두 개의 동일한 관계에 (ㄱ 어떤 조건과 결합)는 세타 조인을 만들, 그래서 내가 있다고 가정 할 수 없다고 말한다. 기본 키인 질병의 코드 및 ssn_p는 person.name을 참조하는 외래 키입니다. 공통 필드가있는 두 개의 관계에 대해 조인을 수행 할 수 있습니까? 그래서 예를 들어 두 개의 관계 (선별 및 투사의 결과)이 있습니다 :

내가 R1과 R2 (미안, 붙여 넣기 심볼을 찾을 수없는) 사이에 가입 할 수
R1(ssn, name) 
R2(ssn_p name) 

?

+0

이것은 아마도 [cstheory.se]에 속합니다. –

답변

2

관계가 속성을 공유 할 때 세타 조인을 수행 할 수 없습니다. 그 이유는 theta-join은 기본적으로 속성을 병치하기 때문입니다. 즉, 경우 a1, a2, ..., an는 속성이 R1에 있고, b1, b2, ..., bmR2의 속성하는의 다음 결과입니다 R1에 세타 조인 및 R2는 속성 a1, a2, ..., an, b1, b2, ..., bm와의 관계 R3 될 것입니다. R1R2이 속성을 공유하면 R3은 중복 속성을 갖게됩니다. 릴레이션 대수에서는 반복 된 속성을 사용할 수 없습니다.

관계에서 일부 특성을 공유 할 때 세타 조인을 수행하려면 관계 중 하나에서 이름 바꾸기 작업을 수행하여 모든 특성을 구별 할 수 있습니다.