আপেক্ষিক বীজগণিতের ক্ষেত্রে, আমরা প্রথমে বাম (বাহ্যিক) যোগদানের একটি অনানুষ্ঠানিক সংজ্ঞা প্রদান করব এবং এটি প্রমাণ করে এগিয়ে চলি যে এটির নামকরণ, নির্বাচন, যোগদান এবং প্রজেকশন পার্থক্য তৈরি করতে পারে, পাশাপাশি সেই পার্থক্য, নির্বাচন এবং ইউনিয়নটি নির্মাণের জন্য ব্যবহার করা যেতে পারে বাম (বাহ্যিক) যোগদান প্রকৃতপক্ষে, আমরা এটি বিপরীত ক্রমে শেষ করব: আমরা কীভাবে পার্থক্যগুলি ব্যবহার করে বাম সংযোজনগুলি বানাতে পারি তা দেখাব এবং তারপরে আমরা কীভাবে বাম সংযোজনগুলি ব্যবহার করে পার্থক্য তৈরি করব তা দেখাব।
যাক R এবং S স্কিমাটার আছে (R′,T) এবং (T,S′) যথাক্রমে, যেখানে R′ এবং S′ এক স্কিমা মধ্যে বৈশিষ্ট্যাবলী সেট কিন্তু অন্যান্য, আর T সাধারণ গুণাবলীর সেট।
যাক হতে স্কিমা জন্য নাল tuple এস ' । অর্থাৎ প্রতিটি অ্যাট্রিবিউট জন্য সব নাল মান নিয়ে গঠিত tuple হয় এস ' । এর পরে, আমরা নিম্নরূপ যোগদানের বাইরের বাম সংজ্ঞায়িত করুন: সমস্ত tuples সমীকরণ হল ( দ , T , গুলি ) স্কিমা একাত্মতার ( আর ' , টি , এস ' ) যেখানে ...w=(ϵ,ϵ,...,ϵ)S′S′R LEFT JOIN S
(r,t,s)(R′,T,S′)
- একটি tuple হয় আর ;(r,t)R
- (ক) একটি tuple হয় এস অথবা (খ) গুলি = W ;(t,s)Ss=w
- যদি জন্য সেট করা হয় গুলি ≠ W , তারপর ( দ , T , W ) না সেট করা হয়।(r,t,s)s≠w(r,t,w)
উদাহরণ: এর স্কিমাটি হ'ল ( এ 1 , এ 2 , এ 3 ) , এস এর স্কিমাটি ( এ 2 , এ 3 , এ 4 ) , এবং আমাদের কাছে সেই আর = = ( 1 , 2 , 3 ) , ( 4 , 5 , 6 ) } এবং এস = { ( 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 , 2)S={(2,3,4),(2,3,6)}{(1,2,3,4),(1,2,3,6),(1,2,3,ϵ),(4,5,6,ϵ)} , যেহেতু আমাদের (উদাহরণস্বরূপ) ( 1 , 2 , 3 , 4 ) এবং এস = 4 ≠ ϵ = ডাব্লু । আমরা এইভাবে চাপে পড়ে গেলাম; { ( 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) এবং (2 এ) দ্বারা প্রয়োজনীয় সমস্ত কিছু দেয়। আমরা দাবি করি ((((PROJECT_T R) DIFFERENCE (PROJECT_T S)) EQUIJOIN R) JOIN w)
যে আমাদের (r, t, w)
(2 বি) এবং (3) দ্বারা প্রয়োজনীয় ফর্মের সমস্ত কিছু দেয় ।
এই, প্রথম যে বিজ্ঞপ্তি দেখার জন্য (((PROJECT_T R) DIFFERENCE (PROJECT_T S)) EQUIJOIN R)
সমস্ত tuples সমীকরণ হল যার জন্য সেখানে কোন সংশ্লিষ্ট tuple হয় এস । দেখতে, এটা দয়া করে মনে রাখবেন সাধারণ জরিপ থেকে বের বৈশিষ্ট্যাবলী দ্বারা যথেষ্ট আর এবং এস (অনুষঙ্গ সেট টি ) এবং পার্থক্য গ্রহণ, এক সব এবং কেবলমাত্র সেই tuples সঙ্গে (স্কিমা সঙ্গে ছেড়ে দেওয়া হয় টি ) যা প্রতিনিধিত্ব করা হয় আর কিন্তু না S । দ্বারা সঙ্গে আর , আমরা সমস্ত এবং কেবলমাত্র সেই tuples পুনরুদ্ধার আর যা বৈশিষ্ট্যাবলী মান আছে টি যা উপস্থিত আর কিন্তু না এসRSRSTTRSEQUIJOIN
RRTRS; যথা, আমরা এখনও অবধি দাবি করা tuples সেট।
এর পরে, যে বিজ্ঞপ্তি স্কিমা (((PROJECT_T R) DIFFERENCE (PROJECT_T S))
যে একই হয় (বলতে গেলে, ( আর ' , টি ) , যখন স্কিমা) W হয় এস ' । অপারেশন তাই কার্টিজিয়ান পণ্য, আমরা ফর্ম সব tuples পাবেন ( দ , T , W ) যেখানে নেই ( T , গুলি ) মধ্যে এস সংশ্লিষ্ট ( দ , T ) মধ্যে আর ।R(R′,T)wS′JOIN
(r,t,w)(t,s)S(r,t)R
যে এই অবিকল tuples আমরা যোগ করতে প্রয়োজনীয় সেট দেখার জন্য R EQUIJOIN S
কনস্ট্রাক্ট করার জন্য R LEFT JOIN S
নিম্নলিখিত বিবেচনা করুন: নির্মাণ দ্বারা, (3) সন্তুষ্ট হয়, যেহেতু R EQUIJOIN S
থাকতে পারে না যদি থাকে ( দ , T , ডাব্লু ) (যদি এটি হয়, তবে দ্বিতীয় অংশের ( r , টি , ডাব্লু ) থাকা একটি বিপরীত হবে); যদি আমরা অন্য ( আর , টি , ডাব্লু ) যুক্ত না করে থাকি তবে সেখানে একটি ((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 ) মধ্যে আর , এবং সংজ্ঞা দ্বারা, ( দ , T , গুলি ) এছাড়াও হবে, (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)))))))
প্রমাণ: নোটিশ এখানে যে, এবং এস ' , খালি রয়েছে যেহেতু সব গুণাবলীর জন্য ভাগ করা হয় জানার জন্য। প্রথমত, আমরা একটি নতুন সম্পর্ক তৈরি এস এ অ্যাট্রিবিউট সেট অনুরূপ দ্বারা এস (দ্বারা পরিচালিত এবং ) যাতে এটি tuples নিয়ে গঠিত ( T , T ' ) অ্যাট্রিবিউট সেটে ( টি , টি ' ) যেখানে টন = T ' (দ্বারা পরিচালিত )। বাম জোড় আমাদের ফর্মের tuples ( t , t ′ ) সঙ্গে ছেড়েR′S′DIFFERENCE
SSRENAME
JOIN
(t,t′)(T,T′)t=t′SELECT
(t,t′)যেখানে বা t ′ = w । এখন, এন্ট্রি যা প্রদর্শিত না পরিত্রাণ পেতে এস , আমরা ফর্মের শুধুমাত্র tuples রাখা উচিত নয় ( T , W ) , যা দূরতম দ্বারা পরিচালিত হয় । গত অস্থায়ী অ্যাট্রিবিউট সেট পরিত্রাণ পায় টি ' মূল স্কিমা পরিপ্রেক্ষিতে এবং আমাদের পাতার পার্থক্য সঙ্গে।t=t′t′=wS(t,w)SELECT
PROJECT
T′
উদাহরণ: আসুন এবং এস = { ( 3 , 4 ) , ( 5 , 6 ) , ( 7 , 8 ) } । আমরা প্রথমে ডি গুণাবলী টি ′ : { ( 3 , 4 ) এর সাথে এস পাইR={(1,2),(3,4),(5,6)}S={(3,4),(5,6),(7,8)}SRENAME
T′ । অপারেশন আমাদের সব নয়টি সম্ভব পেয়ারিং সঙ্গে কার্টিজিয়ান পণ্য দান করেন, বিন্যাসের কারণে এই সেটটি এখানে লেখা হয়নি। তারপর এই নিচে Pares { ( 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)}