Exam-ready answer with definition, conditions, symbols, examples, result tables, SQL comparison, and conclusion.
রিলেশনাল অ্যালজেবরাতে সেট অপারেশনগুলি উদাহরণসহ বর্ণনা কর।
Relational Algebra হলো DBMS-এর একটি formal query language, যার সাহায্যে relational database-এর relation বা table-এর উপর বিভিন্ন operation করা যায়। Relational Algebra-এর কিছু operation mathematical set theory-এর উপর ভিত্তি করে তৈরি।
এই set operations সাধারণত দুইটি relation-এর উপর কাজ করে। তাই এগুলিকে Binary Operations বলা হয়। Set operations-এর মাধ্যমে দুইটি table-এর data combine, compare বা subtract করা যায়।
সহজ ভাষায়: Set operations হলো এমন relational algebra operations, যেগুলি দুইটি relation-এর data নিয়ে union, common data বা difference বের করে।
Relational Algebra-এ প্রধান set operations হলো:
| Operation | Symbol | কাজ |
|---|---|---|
| Union | ∪ | দুই relation-এর সব unique tuples একত্র করে |
| Intersection | ∩ | দুই relation-এ common tuples বের করে |
| Set Difference / Minus | − | প্রথম relation-এ আছে কিন্তু দ্বিতীয় relation-এ নেই এমন tuples বের করে |
| Cartesian Product | × | দুই relation-এর প্রতিটি tuple-এর combination তৈরি করে |
Union, Intersection এবং Set Difference operation করার জন্য দুইটি relation অবশ্যই Union Compatible হতে হবে।
দুইটি relation Union Compatible হবে যদি:
Exam Point: Union, Intersection এবং Set Difference করার আগে relation দুটির union compatibility থাকা আবশ্যক।
নিচের দুইটি relation ব্যবহার করে set operations বোঝানো হলো:
| Roll_No | Name |
|---|---|
| 101 | Rahul |
| 102 | Riya |
| 103 | Karim |
| Roll_No | Name |
|---|---|
| 102 | Riya |
| 103 | Karim |
| 104 | Anita |
এখানে CS_Students এবং Sports_Students relation দুটির column সংখ্যা সমান এবং corresponding columns-এর data type same। তাই এই relation দুটির উপর set operations করা যাবে।
Union Operation দুইটি relation-এর সব tuples একত্র করে এবং duplicate tuples remove করে। অর্থাৎ যে tuple প্রথম relation-এ আছে, দ্বিতীয় relation-এ আছে বা উভয় relation-এ আছে — সব unique tuple result-এ থাকবে।
Definition: Union operation returns all unique tuples that are present in either one or both relations.
A ∪ B
CS_Students ∪ Sports_Students
| Roll_No | Name |
|---|---|
| 101 | Rahul |
| 102 | Riya |
| 103 | Karim |
| 104 | Anita |
এখানে CS_Students এবং Sports_Students relation-এর সব unique students result-এ এসেছে। Riya এবং Karim দুই relation-এ common থাকলেও result-এ একবার করে এসেছে।
Intersection Operation দুইটি relation-এর common tuples বের করে। অর্থাৎ যে tuples দুই relation-এই উপস্থিত থাকে শুধুমাত্র সেগুলি result relation-এ থাকবে।
Definition: Intersection operation returns only those tuples that are present in both relations.
A ∩ B
CS_Students ∩ Sports_Students
| Roll_No | Name |
|---|---|
| 102 | Riya |
| 103 | Karim |
এখানে Riya এবং Karim দুই relation-এই আছে। তাই তারা Intersection result-এ এসেছে।
Set Difference বা Minus Operation প্রথম relation-এর এমন tuples বের করে, যেগুলি দ্বিতীয় relation-এ নেই।
Definition: Set Difference operation returns tuples that are present in the first relation but not present in the second relation.
A − B
CS_Students − Sports_Students
| Roll_No | Name |
|---|---|
| 101 | Rahul |
এখানে Rahul CS_Students relation-এ আছে কিন্তু Sports_Students relation-এ নেই। তাই Rahul result-এ এসেছে।
Sports_Students − CS_Students
| Roll_No | Name |
|---|---|
| 104 | Anita |
এখানে Anita Sports_Students relation-এ আছে কিন্তু CS_Students relation-এ নেই। তাই result-এ Anita এসেছে।
Cartesian Product দুইটি relation-এর প্রতিটি tuple-এর combination তৈরি করে। অর্থাৎ প্রথম relation-এর প্রতিটি row দ্বিতীয় relation-এর প্রতিটি row-এর সঙ্গে combine হয়।
Definition: Cartesian Product combines each tuple of one relation with each tuple of another relation.
A × B
ধরা যাক:
| Student_ID | Name |
|---|---|
| 1 | Rahul |
| 2 | Riya |
| Course_ID | Course_Name |
|---|---|
| C1 | DBMS |
| C2 | Python |
Student × Course
| Student_ID | Name | Course_ID | Course_Name |
|---|---|---|---|
| 1 | Rahul | C1 | DBMS |
| 1 | Rahul | C2 | Python |
| 2 | Riya | C1 | DBMS |
| 2 | Riya | C2 | Python |
এখানে Student relation-এ 2টি tuple এবং Course relation-এ 2টি tuple আছে। তাই Cartesian Product result-এ 2 × 2 = 4টি tuple তৈরি হয়েছে।
| Operation | Symbol | Result | Duplicate Handling | Union Compatibility Required? |
|---|---|---|---|---|
| Union | ∪ | দুই relation-এর সব unique tuples | Duplicates remove করে | Yes |
| Intersection | ∩ | দুই relation-এর common tuples | Duplicates remove করে | Yes |
| Set Difference | − | প্রথম relation-এ আছে কিন্তু দ্বিতীয় relation-এ নেই | Duplicates remove করে | Yes |
| Cartesian Product | × | দুই relation-এর সব tuple combinations | Combination তৈরি করে | No |
Relational Algebra-এর set operations-এর SQL equivalent নিচে দেওয়া হলো:
| Relational Algebra | SQL Equivalent |
|---|---|
| A ∪ B | UNION |
| A ∩ B | INTERSECT |
| A − B | EXCEPT / MINUS |
| A × B | CROSS JOIN |
SELECT Roll_No, Name FROM CS_Students
UNION
SELECT Roll_No, Name FROM Sports_Students;
SELECT Roll_No, Name FROM CS_Students
INTERSECT
SELECT Roll_No, Name FROM Sports_Students;
SELECT Roll_No, Name FROM CS_Students
EXCEPT
SELECT Roll_No, Name FROM Sports_Students;
সুতরাং, Relational Algebra-এর set operations database query processing-এর একটি গুরুত্বপূর্ণ অংশ। Union operation দুই relation-এর সব unique tuples একত্র করে, Intersection common tuples বের করে, Set Difference প্রথম relation থেকে দ্বিতীয় relation-এর tuples বাদ দেয় এবং Cartesian Product সব possible tuple combinations তৈরি করে।
এই operations database থেকে প্রয়োজনীয় data বের করা, compare করা এবং combine করার ক্ষেত্রে খুবই কার্যকর। SQL-এর set operations বুঝতেও Relational Algebra-এর এই ধারণাগুলি জানা অত্যন্ত গুরুত্বপূর্ণ।