İlişkisel cebirde, ilk önce sol (dış) birleşmenin gayri resmi bir tanımını sunacağız ve yeniden adlandırma, seçim, birleştirme ve izdüşümün fark yaratabildiğini ve farkın, seçim ve birleşmenin inşa etmek için kullanılabileceğini kanıtlamaya devam edeceğiz. Sol dış katılma. Aslında, bunu ters sırayla yapacağız: farklılıkları kullanarak sol birleşimlerin nasıl oluşturulacağını göstereceğiz ve sonra sol birleşimleri kullanarak farkların nasıl oluşturulacağını göstereceğiz.
ve sırasıyla şema ve olmasına izin verin , burada ve , bir şemadaki öznitelik kümeleridir, diğerinde değil ve , ortak öznitelik kümesidir.S ( R, ' , T ) ( T , S ' ) R ' S ' , TRS(R′,T)(T,S′)R′S′T
Let şema null demet de . Yani, her bir özniteliği için tüm null değerlerden oluşan bir demettir . Ardından, sol dış birleşimi şu şekilde tanımlarız: şemaya ait tüm tupllerin kümesidir ...S ' S ' ( r , t , s ) ( R ' , T , G ' )w=(ϵ,ϵ,...,ϵ)S′S′R LEFT JOIN S
(r,t,s)(R′,T,S′)
- R(r,t) içinde bir demet ;R
- (a) , bir veya (b) ;S s = w(t,s)Ss=w
- Eğer için kümesinde olup , daha sonra grubu değildir.s ≠ w ( r , t , w )(r,t,s)s≠w(r,t,w)
Örnek: şeması , şeması ve buna sahibiz ve . (1) ve (2) ile ara sonucu . (3) ile kaldırmalıyız , çünkü (örneğin) ve . Böylece sola birleşme için beklenen sonuç olan .( A 1 , A 2 , A 3 ) S ( A 2 , A 3 , bir 4 ) R = { ( 1 , 2 , 3 ) , ( 4 , 5 , 6 ) } S = { ( 2 , 3 , 4 ) , ( 2 , 3 , 6 ) } {R(A1,A2,A3)S(A2,A3,A4)R={(1,2,3),(4,5,6)}S={(2,3,4),(2,3,6)}( 1 , 2 , 3 , ϵ ) ( 1 , 2 , 3 , 4 ) s = 4{(1,2,3,4),(1,2,3,6),(1,2,3,ϵ),(4,5,6,ϵ)}( 1 , 2 , 3 , ϵ )( 1 , 2 , 3 , 4 ){ ( 1 , 2 , 3 , 4 ) , ( 1 , 2 , 3 , 6 ) , ( 4 , 5 , 6 , ϵ ) }s = 4 ≠ ϵ = w{(1,2,3,4),(1,2,3,6),(4,5,6,ϵ)}
Teorem: R LEFT JOIN S
eşittir (R EQUIJOIN S) UNION ((((PROJECT_T R) DIFFERENCE (PROJECT_T S)) EQUIJOIN R) JOIN w)
.
İspat: (R EQUIJOIN S)
(1) ve (2a) tarafından istenen her şeyi bize verir. Bunun ((((PROJECT_T R) DIFFERENCE (PROJECT_T S)) EQUIJOIN R) JOIN w)
bize (r, t, w)
(2b) ve (3) tarafından istenen formun her şeyi verdiğini iddia ediyoruz .
Bunu görmek için, ilk önce karşılık gelen bir demet olmayan (((PROJECT_T R) DIFFERENCE (PROJECT_T S)) EQUIJOIN R)
tüm tupleslerin kümesine dikkat edin . Görmek için, ortak projelendirme dışarı niteliklerini tarafından o notta yeterlidir ve (öznitelik kümesi ) ve farkı alarak bir (şema ile tüm ve sadece bu küpe ile bırakılır temsil edilir) ancak değil . By ile , biz tüm ve sadece bu tupleları kurtarmak içinde öznitelikler için değerlere sahip mevcut fakat içindeS R S T T R S R R T R SRSRSTTRSEQUIJOIN
RRTRS; yani, şimdiye kadar iddia ettiğimiz tuples seti.
Daha sonra, şema bu fark (((PROJECT_T R) DIFFERENCE (PROJECT_T S))
ile aynı olduğu (yani, şema ise) olan . İşlem biz formunun bütün dizilerini almak, bu nedenle bir Kartezyen ürün hiçbir olduğu olarak tekabül eden içinde .( R ′ , T ) w S ′ ( r , t , w ) ( t , s ) S ( r , t ) RR(R′,T)wS′JOIN
(r,t,w)(t,s)S(r,t)R
Bu biz eklemek için gerekli dizilerini kümesi tam olduğunu görmek için R EQUIJOIN S
yapı için R LEFT JOIN S
aşağıdakileri dikkate alın: İnşaat tarafından, (3) tatmin olduğundan, R EQUIJOIN S
içeremez eğer içeriyor (eğer öyleyse, ikinci parçanın içerdiği bir çelişki olacaktır); Başka bir -federal, değil , daha sonra bir olacaktır içinde tekabül eden içerisinde , ve tanım gereği , de (3) 'ün çelişkisi içinde olacaktır. Bu ispatı tamamlar.( r , t , w ) ( r , t , w ) ( r , t , w ) ( t , s ) S ( r , t ) R ( r , t , s )(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)
(t,s)S(r,t)REQUIJOIN
(r,t,s)R LEFT JOIN S
Şimdi sol birleşmenin fark yaratmak için kullanılabileceğini gösteriyoruz:
Teorem: R DIFFERENCE S
eşittirPROJECT_T(SELECT_{t'=w}(R LEFT JOIN (SELECT_{s=s'}(((S JOIN RENAME_{T->T'}(S)))))))
İspat: Burada, ve nin boş olduğuna dikkat edin , çünkü tüm özellikler anlamlı olmak için paylaşılır . İlk olarak, yeni bir ilişki oluşturmak öznitelik grubu çoğaltarak (tarafından işlenir ve bu dizilerini içerir böylece) özellik seti (tarafından ele ). Sol formunun dizilerini ile yaprak bize birleştirme veya . Şimdi, de görünen girişlerden kurtulmak için, sadece formun tuplesini tutmalıyızS ′ S S ( t , t ′ ) ( T , T ′ ) t = t ′ ( t , t ′ ) t = t ′ t ′ = w S ( t , w ) T ′R′S′DIFFERENCE
SSRENAME
JOIN
(t,t′)(T,T′)t=t′SELECT
(t,t′)t=t′t′=wS(t,w), en dıştaki tarafından ele alınır SELECT
. SonuncusuPROJECT
geçici özniteliğinden kurtulur ve bizi orijinal şema açısından farkla bırakır.T′
Örnek: ve . İlk elde ile d özelliği grubu : . Operasyon hepimizi dokuz olası eşleşmeleri ile Kartezyen ürün verir; bu küme biçimlendirme nedeniyle burada yazılmamıştır. Daha sonra bunu . İle verir . Verir . VerirS = { ( 3 , 4 ) , ( 5 , 6 ) , ( 7 , 8 ) } S T ′ { ( 3 , 4 ) , ( 5 , 6 ) , ( 7 ,R={(1,2),(3,4),(5,6)}S={(3,4),(5,6),(7,8)}SRENAME
T′{ ( 3 , 4 , 3 , 4 ) , ( 5 , 6 , 5 , 6 ) , ( 7 , 8 , 7 , 8 ) } R { ( 1 , 2 , ϵ , ϵ ) , ( 3 , 4 , 3 , 4 ) , ( 5 , 6 ,{(3,4),(5,6),(7,8)}JOIN
SELECT
{(3,4,3,4),(5,6,5,6),(7,8,7,8)}LEFT JOIN
R{(1,2,ϵ,ϵ),(3,4,3,4),(5,6,5,6)}SELECT
{(1,2,ϵ,ϵ)}PROJECT
{(1,2)}, istenen cevap.