Exam-ready answer with definitions, symbols, examples, result tables, differences, and conclusion.
রিলেশনাল অ্যালজেবরার ক্ষেত্রে সিলেকশন, প্রজেকশন এবং রিনেম অপারেশনগুলি উদাহরণ সহযোগে বর্ণনা কর।
Relational Algebra হলো DBMS-এর একটি formal query language, যার সাহায্যে relational database-এর table বা relation থেকে data retrieve এবং manipulate করা যায়।
Relational Algebra-তে বিভিন্ন ধরনের operation থাকে। এর মধ্যে Selection, Projection এবং Rename হলো খুবই গুরুত্বপূর্ণ unary operations। Unary operation বলতে এমন operation বোঝায়, যা একটি relation-এর উপর কাজ করে এবং output হিসেবে আরেকটি relation দেয়।
সহজ ভাষায়: Selection row বেছে নেয়, Projection column বেছে নেয় এবং Rename relation বা attribute-এর নাম পরিবর্তন করে।
নিচের Student relation ব্যবহার করে আমরা Selection, Projection এবং Rename operation বুঝব।
| Roll_No | Name | Department | Marks | City |
|---|---|---|---|---|
| 101 | Rahul | Computer Science | 85 | Kolkata |
| 102 | Riya | Commerce | 72 | Delhi |
| 103 | Karim | Computer Science | 90 | Kolkata |
| 104 | Anita | Arts | 68 | Mumbai |
Selection Operation relation থেকে নির্দিষ্ট condition অনুযায়ী row বা tuple নির্বাচন করে। এটি table-এর rows filter করে, কিন্তু columns পরিবর্তন করে না।
Definition: Selection is a relational algebra operation that selects rows from a relation based on a given condition.
Selection operation-এর symbol হলো σ (sigma)।
σ condition (Relation)
যেসব student-এর marks 80-এর বেশি, তাদের record বের করতে হবে।
σ Marks > 80 (Student)
| Roll_No | Name | Department | Marks | City |
|---|---|---|---|---|
| 101 | Rahul | Computer Science | 85 | Kolkata |
| 103 | Karim | Computer Science | 90 | Kolkata |
এখানে Marks 80-এর বেশি এমন rows select করা হয়েছে। তাই Roll_No 101 এবং 103 result-এ এসেছে।
যদি Computer Science department-এর student বের করতে হয়:
σ Department = "Computer Science" (Student)
যদি Kolkata city-এর student বের করতে হয়:
σ City = "Kolkata" (Student)
যদি marks 70-এর বেশি এবং city Kolkata হয়:
σ Marks > 70 AND City = "Kolkata" (Student)
Important Point: Selection operation horizontal operation, কারণ এটি table-এর rows বা tuples select করে।
Projection Operation relation থেকে নির্দিষ্ট columns বা attributes নির্বাচন করে। এটি table-এর columns filter করে, কিন্তু rows-এর উপর condition apply করে না।
Definition: Projection is a relational algebra operation that selects specific attributes or columns from a relation.
Projection operation-এর symbol হলো π (pi)।
π attribute_list (Relation)
Student relation থেকে শুধুমাত্র Name এবং Marks দেখতে চাই।
π Name, Marks (Student)
| Name | Marks |
|---|---|
| Rahul | 85 |
| Riya | 72 |
| Karim | 90 |
| Anita | 68 |
এখানে Student table থেকে শুধুমাত্র Name এবং Marks column নেওয়া হয়েছে।
Student relation থেকে শুধু Roll_No এবং Name বের করতে:
π Roll_No, Name (Student)
শুধু Department দেখতে চাইলে:
π Department (Student)
শুধু Name, Department এবং City দেখতে চাইলে:
π Name, Department, City (Student)
Important Point: Projection operation vertical operation, কারণ এটি table-এর columns বা attributes select করে।
Relational Algebra-এ relation set হিসেবে কাজ করে। তাই Projection operation-এর ফলে duplicate rows তৈরি হলে duplicate automatically remove হয়ে যায়।
উদাহরণস্বরূপ:
π City (Student)
Student table-এ Kolkata দুইবার আছে, কিন্তু Projection result-এ Kolkata একবারই দেখানো হবে।
| City |
|---|
| Kolkata |
| Delhi |
| Mumbai |
Rename Operation relation বা attribute-এর নাম পরিবর্তন করতে ব্যবহৃত হয়। এটি data পরিবর্তন করে না, শুধুমাত্র relation বা column-এর নাম পরিবর্তন করে।
Definition: Rename is a relational algebra operation used to rename a relation or its attributes.
Rename operation-এর symbol হলো ρ (rho)।
ρ New_Relation_Name (Old_Relation)
or
ρ New_Relation_Name(New_Attribute_List) (Old_Relation)
Student relation-এর নাম Learner করতে চাই:
ρ Learner (Student)
এখানে Student relation-এর নতুন নাম হবে Learner।
Student relation-এর attributes নতুন নামে প্রকাশ করতে চাই:
ρ Learner(Student_ID, Student_Name, Dept, Score, Location) (Student)
এখানে relation-এর নাম Learner হয়েছে এবং attributes-এর নামও পরিবর্তন হয়েছে।
নিচের operation ব্যবহার করা হলো:
ρ Learner(Student_ID, Student_Name, Dept, Score, Location) (Student)
Result relation হবে:
| Student_ID | Student_Name | Dept | Score | Location |
|---|---|---|---|---|
| 101 | Rahul | Computer Science | 85 | Kolkata |
| 102 | Riya | Commerce | 72 | Delhi |
| 103 | Karim | Computer Science | 90 | Kolkata |
| 104 | Anita | Arts | 68 | Mumbai |
এখানে original data একই আছে, কিন্তু relation এবং attribute-এর নাম পরিবর্তন হয়েছে।
Relational Algebra-তে একাধিক operation একসঙ্গে ব্যবহার করা যায়। যেমন, Computer Science department-এর student-দের মধ্যে শুধু Name এবং Marks দেখতে চাই।
π Name, Marks (σ Department = "Computer Science" (Student))
এখানে প্রথমে Selection operation দিয়ে Computer Science department-এর rows select করা হয়েছে। তারপর Projection operation দিয়ে শুধু Name এবং Marks columns নেওয়া হয়েছে।
| Name | Marks |
|---|---|
| Rahul | 85 |
| Karim | 90 |
| Operation | Symbol | কাজ | কিসের উপর কাজ করে | Example |
|---|---|---|---|---|
| Selection | σ | Condition অনুযায়ী rows select করে | Rows / Tuples | σ Marks > 80 (Student) |
| Projection | π | নির্দিষ্ট columns select করে | Columns / Attributes | π Name, Marks (Student) |
| Rename | ρ | Relation বা attribute-এর নাম পরিবর্তন করে | Name / Label | ρ Learner (Student) |
Relational Algebra-এর Selection, Projection এবং Rename operation SQL query-এর সঙ্গে সম্পর্কিত।
| Relational Algebra | SQL Equivalent | কাজ |
|---|---|---|
| Selection | WHERE clause | Rows filter করে |
| Projection | SELECT column list | Columns select করে |
| Rename | AS alias | Name change বা alias দেয় |
SELECT Name, Marks
FROM Student
WHERE Department = 'Computer Science';
উপরোক্ত SQL query relational algebra-তে নিচের মতো লেখা যায়:
π Name, Marks (σ Department = "Computer Science" (Student))
সুতরাং, Selection, Projection এবং Rename হলো Relational Algebra-এর তিনটি গুরুত্বপূর্ণ unary operation। Selection condition অনুযায়ী rows select করে, Projection নির্দিষ্ট columns select করে এবং Rename relation বা attribute-এর নাম পরিবর্তন করে।
এই তিনটি operation database query তৈরি, data filtering, column selection এবং query readability বাড়ানোর জন্য অত্যন্ত গুরুত্বপূর্ণ। SQL query বোঝার ক্ষেত্রেও এগুলির ধারণা খুব দরকার।