관계형 대수에서는 먼저 왼쪽 (외부) 조인에 대한 비공식적 인 정의를 제공하고 이름 바꾸기, 선택, 조인 및 프로젝션이 차이를 구성 할 수 있으며 차이, 선택 및 조합을 사용하여 구성 할 수 있음을 증명합니다. 왼쪽 (외부) 조인. 실제로, 우리는 그것을 역순으로 끝낼 것입니다 : 차이점을 사용하여 왼쪽 조인을 구성하는 방법을 보여준 다음 왼쪽 조인을 사용하여 차이를 구성하는 방법을 보여줄 것입니다.
과 S 가 각각 schemata ( R ' , T ) 및 ( T , S ' )를 갖도록 하자 . 여기서 R ' 와 S ' 는 한 스키마의 속성 집합이지만 다른 스키마는 아니지만 T 는 공통 속성 집합입니다.RS(R′,T)(T,S′)R′S′T
보자 스키마에 대한 널 튜플 수 S ' . 즉, S '의 각 속성에 대한 모든 null 값으로 구성된 튜플 입니다. 그런 다음 왼쪽 외부 조인을 다음과 같이 정의합니다. 스키마 ( R ' , T , S ' )에 속하는 모든 튜플 ( r , t , s ) 의 집합입니다 .w=(ϵ,ϵ,...,ϵ)S′S′R LEFT JOIN S
(r,t,s)(R′,T,S′)
- 는 R 의 튜플 이고 ;(r,t)R
- (a) 는 S 의 튜플 또는 (b) s = w 이며;(t,s)Ss=w
- 하면 에 대한 설정에 S ≠ w 이어서, ( R은 , t는 , w ) 세트에 있지.(r,t,s)s≠w(r,t,w)
예 : 의 스키마는 ( 1 , 2 , 3 ) , S 의 스키마가 ' ( 2 , 3 , 4 ) , 우리는이 R을 = { ( 1 , 2 , 3 ) , ( 4 , 5 , 6 ) } 및 S = { ( 2 , 3 , 4 )R(A1,A2,A3)S(A2,A3,A4)R={(1,2,3),(4,5,6)} . (1)과 (2)를 통해 중간 결과 { ( 1 , 2 , 3 , 4 ) , ( 1 , 2 , 3 , 6 ) , ( 1 , 2 , 3 , ϵ ) , ( 4 , 5 , 6) , ϵ ) } . (3)에 의해 우리는 ( 1 , 2S={(2,3,4),(2,3,6)}{(1,2,3,4),(1,2,3,6),(1,2,3,ϵ),(4,5,6,ϵ)}예를 들어 ( 1 , 2 , 3 , 4 ) 및 s = 4 ≠ ϵ = w 가 있으므로 , 3 , ϵ ) . 따라서 { ( 1 , 2 , 3 , 4 ) , ( 1 , 2 , 3 , 6 ) , ( 4 , 5 , 6 , ϵ ) }(1,2,3,ϵ)(1,2,3,4)s=4≠ϵ=w{(1,2,3,4),(1,2,3,6),(4,5,6,ϵ)}왼쪽 조인의 예상 결과입니다.
정리 : R LEFT JOIN S
와 같습니다 (R EQUIJOIN S) UNION ((((PROJECT_T R) DIFFERENCE (PROJECT_T S)) EQUIJOIN R) JOIN w)
.
증명 : (R EQUIJOIN S)
(1) 및 (2a)에 필요한 모든 것을 제공합니다. 우리는 (2b)와 (3)에서 요구하는 ((((PROJECT_T R) DIFFERENCE (PROJECT_T S)) EQUIJOIN R) JOIN w)
모든 형태 를 제공 한다고 주장합니다 (r, t, w)
.
이를 확인하려면 먼저 S에 해당 튜플이없는 R(((PROJECT_T R) DIFFERENCE (PROJECT_T S)) EQUIJOIN R)
의 모든 튜플 세트입니다 . 그것을 확인하려면, 그것은 일반적인 투사하는 것은 밖으로 속성에 의해주의에 충분 R 과 S (속성 세트 T )과의 차이를 고려하여 하나 (스키마 모든 및 만 튜플로 남아 T 로 표시됩니다) R 하지만, S가 아닙니다 . 에 의해 와 R , 우리는 모든과 만 튜플 복구 R 의 속성 값이 T 에 존재하는 R 아니라에서 S를RSRSTTRSEQUIJOIN
RRTRS; 즉, 지금까지 우리가 주장한 튜플 세트입니다.
다음으로의 스키마는 R 의 스키마 (((PROJECT_T R) DIFFERENCE (PROJECT_T S))
와 동일하며 (즉, ( R ' , T ) ) w 의 스키마 는 S ' 입니다. 동작 우리는 폼의 모든 터플을 얻기 때문에 카티 제품 ( R , t , w ) 가 전혀없는 곳에 ( t , s의 ) 의 S 에 해당하는 ( R , t ) 에 R .R(R′,T)wS′JOIN
(r,t,w)(t,s)S(r,t)R
이것은 우리가에 추가 할 필요 튜플의 집합 정확하게 것을보고 R EQUIJOIN S
구조에 위해가 R LEFT JOIN S
, 다음 사항을 고려하십시오 건설에 의해, (3)을 만족하기 때문에, R EQUIJOIN S
포함 할 수 없습니다 경우 포함 ( R , t를 , w ) (그렇다면 두 번째 부분을 포함하는 ( r , t , w ) 는 모순이 될 것입니다); 우리가 또 다른 추가한다면 ( R , t를 , 승 ) 하지에 , 다음이 될 것이다 ((r,t,s)((((PROJECT_T R) DIFFERENCE (PROJECT_T S)) EQUIJOIN R) JOIN w)
(r,t,w)(r,t,w)(r,t,w)((((PROJECT_T R) DIFFERENCE (PROJECT_T S)) EQUIJOIN R) JOIN w)
의 S 에 해당하는 ( R , t ) 에서의 R 과의 정의에 의해, ( R은 , t는 , s의 ) 도있을 것이다) (3 모순. 이것으로 증명이 완료됩니다.(t,s)S(r,t)REQUIJOIN
(r,t,s)R LEFT JOIN S
이제 왼쪽 조인을 사용하여 차이를 구성 할 수 있음을 보여줍니다.
정리 : R DIFFERENCE S
에 해당PROJECT_T(SELECT_{t'=w}(R LEFT JOIN (SELECT_{s=s'}(((S JOIN RENAME_{T->T'}(S)))))))
증명 : 여기서 모든 속성이 의미를 공유하기 때문에 및 S ' 는 비어 있습니다. 첫째, 우리의 새로운 관계를 생성 S를 내의 속성 세트 복제하여 S를 (처리 와 는 튜플 구성되도록) ( t , t ' ) 속성 집합 ( T , T ' ) t = t ' (취급 ). 왼쪽 조인은 ( t , t ' ) 형식의 튜플을 남깁니다.R′S′DIFFERENCE
SSRENAME
JOIN
(t,t′)(T,T′)t=t′SELECT
(t,t′)여기서 또는 t ' = w 입니다. 이제 S 에도 나타나는 항목을 제거 하려면 가장 바깥 쪽에서 처리되는 ( t , w ) 형식의 튜플 만 유지해야합니다 . 마지막 은 임시 속성 세트 T '를 제거 하고 원래 스키마와의 차이점을 남겨 둡니다.t=t′t′=wS(t,w)SELECT
PROJECT
T′
예 : 및 S = { ( 3 , 4 ) , ( 5 , 6 ) , ( 7 , 8 ) }이라고 하자 . 먼저 d 속성이 T '인 S' 를 얻습니다 : { ( 3 , 4 )R={(1,2),(3,4),(5,6)}S={(3,4),(5,6),(7,8)}SRENAME
T′ . 이작업은 9 개의 가능한 페어링을 모두 갖춘 데카르트 제품을 제공합니다. 이 세트는 형식상의 이유로 여기에 작성되지 않았습니다. 그런다음 이것을 { ( 3 , 4 , 3 , 4 ) , ( 5 , 6 , 5 , 6 ) , ( 7 , 8 , 7 , 8 ) }로 구문 분석 합니다. 와{(3,4),(5,6),(7,8)}JOIN
SELECT
{(3,4,3,4),(5,6,5,6),(7,8,7,8)}LEFT JOIN
은 { ( 1 , 2 , ϵ , ϵ ) , ( 3 , 4 , 3 , 4 ) , ( 5 , 6 , 5 , 6 ) }을 제공 합니다. (가)제공 { ( 1 , 2 , ε , ε ) } . 가제공 { ( 1 , 2 ) } 원하는 답.R{(1,2,ϵ,ϵ),(3,4,3,4),(5,6,5,6)}SELECT
{(1,2,ϵ,ϵ)}PROJECT
{(1,2)}