عملیات اجتماع (Union) در جبر رابطهای
عملیات اجتماع که با نماد ∪\cup نمایش داده میشود، یکی از عملیاتهای اصلی و پرکاربرد در جبر رابطهای است. این عملیات برای ترکیب دو جدول (رابطه) استفاده میشود و تمام ردیفهای هر دو جدول را در نتیجه نمایش میدهد. در واقع، عملیات اجتماع مجموعهای از ردیفهای یکتا را که در هر یک از جداول ورودی وجود دارند، ایجاد میکند.
تعریف عملیات اجتماع
عملیات اجتماع به صورت زیر تعریف میشود:
R∪S
- R و S دو جدول (رابطه) هستند که عمل اجتماع روی آنها انجام میشود.
- نتیجهی این عمل جدولی است که تمام ردیفهای موجود در هر دو جدول را شامل میشود، بدون تکرار ردیفها.
شرایط برای اجرای عملیات اجتماع
برای اینکه عملیات اجتماع بین دو جدول قابل اجرا باشد، دو شرط زیر باید برقرار باشد:
- تعداد و ترتیب ستونها باید یکسان باشد: هر دو جدول باید دارای تعداد ستونهای یکسان و ترتیب یکسانی از ستونها باشند. به این معنی که ساختار جداول باید مشابه باشد.
- نوع دادهها باید یکسان باشد: نوع داده در هر ستون از جدول اول باید با نوع داده در ستون معادل خود در جدول دوم یکسان باشد. به عنوان مثال، اگر ستون اول جدول R یک عدد صحیح است، ستون اول جدول S نیز باید عدد صحیح باشد.
مثال
فرض کنید دو جدول کارمندان1 و کارمندان2 به صورت زیر داریم:
جدول کارمندان1:
شماره کارمند | نام | شغل |
---|---|---|
1 | علی | مهندس |
2 | رضا | تحلیلگر |
جدول کارمندان2:
شماره کارمند | نام | شغل |
---|---|---|
3 | سارا | مدیر |
2 | رضا | تحلیلگر |
عملیات اجتماع روی این دو جدول به صورت زیر خواهد بود:
نتیجه این عملیات به صورت زیر خواهد بود:
شماره کارمند | نام | شغل |
---|---|---|
1 | علی | مهندس |
2 | رضا | تحلیلگر |
3 | سارا | مدیر |
در این نتیجه، ردیفهای هر دو جدول ترکیب شدهاند، اما ردیف تکراری مربوط به رضا که در هر دو جدول وجود داشت، فقط یک بار در نتیجه ظاهر شده است.
ویژگیهای عملیات اجتماع
- حذف ردیفهای تکراری: عملیات اجتماع به صورت خودکار ردیفهای تکراری را حذف میکند. یعنی اگر یک ردیف در هر دو جدول وجود داشته باشد، در نتیجه فقط یک بار نمایش داده میشود.
- ترتیب ستونها: ترتیب ستونها در جداول اصلی و نتیجه ثابت میماند و مطابق با ترتیب ستونهای جداول ورودی است.
- عملیات یکتا (Distinct): اجتماع ردیفهای یکتا را از هر دو جدول ایجاد میکند؛ بنابراین، تکرار ردیفها در نتیجه وجود ندارد.
تفاوت با سایر عملیاتها
- تفاضل (Difference): در حالی که عملیات اجتماع همه ردیفهای یکتا از هر دو جدول را شامل میشود، عملیات تفاضل فقط ردیفهایی را که در یک جدول و نه در جدول دیگر وجود دارند، استخراج میکند.
- اشتراک (Intersection): در حالی که اجتماع تمامی ردیفهای یکتا از هر دو جدول را در نتیجه قرار میدهد، عملیات اشتراک فقط ردیفهایی را نمایش میدهد که در هر دو جدول وجود داشته باشند.
کاربردهای عملیات اجتماع
- ترکیب دادهها از منابع مختلف: اجتماع برای ترکیب دادهها از جداول مختلف، به ویژه وقتی که دادهها مشابه و ساختار یکسانی دارند، بسیار مفید است. به عنوان مثال، میتوان دادههای کارمندان از دو بخش مختلف یک سازمان را با استفاده از اجتماع ترکیب کرد.
- مدیریت دادههای یکتا: عملیات اجتماع برای بازیابی دادههای یکتا از دو مجموعه داده مختلف مفید است. این عملیات میتواند در مواردی که نیاز به ترکیب و یکپارچهسازی اطلاعات از چندین منبع داریم، استفاده شود.
- پرسوجوهای چندگانه: زمانی که نیاز داریم نتایج چند پرسوجو را با یکدیگر ترکیب کنیم، اجتماع میتواند به عنوان یک ابزار مفید برای ترکیب نتایج استفاده شود.
نتیجهگیری
عملیات اجتماع در جبر رابطهای ابزاری قدرتمند برای ترکیب دادهها از جداول مختلف است. این عملیات نه تنها به ما امکان میدهد تا دادههای یکتا را از چندین جدول ترکیب کنیم، بلکه به دلیل ویژگی حذف تکراریها، کارایی زیادی در مدیریت دادهها و پرسوجوهای پیچیده دارد. اجتماع یکی از عملیاتهای مهم در جبر رابطهای است که پایه بسیاری از عملیاتها و پرسوجوهای پیچیدهتر در پایگاه دادههای رابطهای محسوب میشود.