Class - XII: SEMESTER – IV: Unit – 1: Database Management System: Section 3: Relational Model
Relational Model
Basic Concepts of Relational Model and Relational Algebra | Class 12 Bangla Medium Students
১. Introduction বা পরিচিতি
Relational Model হলো DBMS-এর একটি অত্যন্ত গুরুত্বপূর্ণ data model, যেখানে data-কে table বা relation আকারে সংগঠিত করে রাখা হয়। এই model-এ database-এর তথ্য rows এবং columns-এর সাহায্যে প্রকাশ করা হয়। প্রতিটি table কোনো একটি entity বা relationship-এর data represent করে। যেমন Student table, Course table, Teacher table, Department table ইত্যাদি।
Relational Model প্রথমে theoretical concept হিসেবে introduced হলেও বর্তমানে অধিকাংশ modern database system এই model-এর উপর ভিত্তি করে তৈরি। MySQL, Oracle, PostgreSQL, SQL Server ইত্যাদি relational database system-এ data table আকারে store করা হয়।
Relational Model হলো এমন একটি database model, যেখানে data relation বা table আকারে store করা হয় এবং rows ও columns-এর মাধ্যমে data represent করা হয়।
একটি Student table-এ Roll_No, Name, Class, Marks columns থাকতে পারে। প্রতিটি row একজন student-এর record represent করবে।
২. Relational Model কেন গুরুত্বপূর্ণ?
Relational Model database design এবং data management-কে সহজ, logical এবং organized করে। এই model-এর মাধ্যমে data table format-এ রাখা যায়, data query করা সহজ হয় এবং relationship maintain করা যায়। Relational Model ER Model থেকে relational table তৈরি করার জন্যও ব্যবহার করা হয়।
- Data table format-এ সহজভাবে organize করা যায়।
- Rows এবং columns ব্যবহার করে data বোঝা সহজ হয়।
- Primary key এবং foreign key ব্যবহার করে relationship maintain করা যায়।
- SQL-এর মাধ্যমে data retrieve, insert, update এবং delete করা যায়।
- Data integrity constraints ব্যবহার করে data correctness বজায় রাখা যায়।
- Large database-কে logical structure-এ design করা যায়।
৩. Basic Concepts of Relational Model
Relational Model ভালোভাবে বোঝার জন্য relation, tuple, attribute, domain, relation schema, relation instance, degree, cardinality, key এবং constraints—এই basic concepts জানা জরুরি।
৩.১ Relation
Relation হলো table। Relational Model-এ table-কে relation বলা হয়। একটি relation rows এবং columns নিয়ে গঠিত। Relation-এর প্রতিটি row একটি record এবং প্রতিটি column একটি attribute represent করে।
Relation হলো rows এবং columns-এর সাহায্যে data represent করা একটি table।
STUDENT relation হলো একটি table, যেখানে student সম্পর্কিত data রাখা হয়।
৩.২ Attribute
Attribute হলো relation-এর column। Attribute কোনো entity-এর property বা characteristic প্রকাশ করে। যেমন Student relation-এর Roll_No, Name, Class, Marks হলো attributes।
৩.৩ Tuple
Tuple হলো relation-এর row। একটি tuple একটি complete record represent করে। যেমন Student table-এর একটি row একজন student-এর complete information প্রকাশ করে।
৩.৪ Domain
Domain হলো কোনো attribute-এর possible বা allowed values-এর set। অর্থাৎ একটি attribute কোন ধরনের value গ্রহণ করতে পারবে তা domain define করে।
Marks attribute-এর domain হতে পারে 0 থেকে 100। Age attribute-এর domain হতে পারে positive integer। Gender attribute-এর domain হতে পারে Male, Female, Other।
৩.৫ Relation Schema
Relation Schema হলো relation-এর structure বা design। এতে relation-এর name এবং attributes list থাকে। Relation schema সাধারণত database design-এর সময় define করা হয় এবং এটি ঘন ঘন পরিবর্তন হয় না।
এখানে STUDENT হলো relation name এবং Roll_No, Name, Class, Marks হলো attributes।
৩.৬ Relation Instance
Relation Instance হলো কোনো নির্দিষ্ট সময়ে relation-এর actual data বা tuples-এর set। Relation schema structure define করে, আর relation instance সেই structure অনুযায়ী actual records দেখায়।
৩.৭ Degree
Degree হলো relation-এর total number of attributes বা columns।
STUDENT(Roll_No, Name, Class, Marks) relation-এ ৪টি attributes আছে। তাই এর degree = 4।
৩.৮ Cardinality
Cardinality হলো relation-এর total number of tuples বা rows।
Student table-এ যদি ৫০ জন student-এর record থাকে, তাহলে cardinality = 50।
৪. Example of Relation
নিচে STUDENT relation-এর একটি সহজ example দেওয়া হলো।
| Roll_No | Name | Class | Marks |
|---|---|---|---|
| 101 | Riya | XII | 88 |
| 102 | Arman | XII | 76 |
| 103 | Sohini | XII | 91 |
এখানে STUDENT হলো relation। Roll_No, Name, Class, Marks হলো attributes। প্রতিটি row হলো tuple। এই table-এর degree 4 এবং cardinality 3।
৫. Relational Model-এর Terms এক নজরে
| Term | বাংলা ব্যাখ্যা | উদাহরণ |
|---|---|---|
| Relation | Table | STUDENT table |
| Attribute | Column | Roll_No, Name |
| Tuple | Row বা record | 101, Riya, XII, 88 |
| Domain | Allowed values-এর set | Marks: 0–100 |
| Relation Schema | Relation-এর structure | STUDENT(Roll_No, Name, Marks) |
| Relation Instance | নির্দিষ্ট সময়ে actual data | Table-এর current rows |
| Degree | Number of columns | 4 attributes হলে degree 4 |
| Cardinality | Number of rows | 50 rows হলে cardinality 50 |
৬. Properties of Relation
Relational Model-এ relation বা table-এর কিছু গুরুত্বপূর্ণ properties থাকে। এগুলো relation-কে mathematical structure হিসেবে define করতে সাহায্য করে।
- প্রতিটি relation-এর একটি unique name থাকে।
- প্রতিটি attribute-এর একটি unique name থাকে।
- প্রতিটি cell বা field-এ atomic value থাকা উচিত।
- একই relation-এ duplicate tuples থাকা উচিত নয়।
- Tuples-এর order গুরুত্বপূর্ণ নয়।
- Attributes-এর order সাধারণত গুরুত্বপূর্ণ নয়।
- প্রতিটি attribute-এর value তার domain অনুযায়ী হতে হবে।
Relational Model-এ table-এর row-কে tuple এবং column-কে attribute বলা হয়। Degree = number of attributes, Cardinality = number of tuples।
৭. Keys in Relational Model
Relational Model-এ key খুব গুরুত্বপূর্ণ। Key ব্যবহার করে relation-এর প্রতিটি tuple বা record uniquely identify করা হয়। Key data duplication কমাতে এবং relation-এর মধ্যে relationship maintain করতে সাহায্য করে।
৭.১ Super Key
Super Key হলো attribute বা attributes-এর set, যা একটি relation-এর প্রতিটি tuple uniquely identify করতে পারে। Super key-তে unnecessary বা extra attributes থাকতে পারে।
৭.২ Candidate Key
Candidate Key হলো minimal super key। অর্থাৎ এটি tuple uniquely identify করতে পারে এবং এর মধ্যে কোনো extra attribute থাকে না। একটি relation-এ একাধিক candidate key থাকতে পারে।
৭.৩ Primary Key
Candidate keys-এর মধ্যে যেটিকে main key হিসেবে select করা হয়, সেটি primary key। Primary key-এর value duplicate বা null হওয়া উচিত নয়।
৭.৪ Alternate Key
Candidate keys-এর মধ্যে primary key হিসেবে select করা হয়নি এমন keys-কে alternate key বলা হয়।
৭.৫ Foreign Key
Foreign Key হলো একটি relation-এর attribute, যা অন্য relation-এর primary key-কে refer করে। Foreign key relation-এর মধ্যে link তৈরি করে।
৭.৬ Composite Key
দুই বা ততোধিক attributes একত্রে tuple uniquely identify করলে তাকে composite key বলা হয়।
| Key Type | ব্যাখ্যা | উদাহরণ |
|---|---|---|
| Super Key | Unique identify করে, extra attribute থাকতে পারে। | {Roll_No, Name} |
| Candidate Key | Minimal super key। | {Roll_No}, {Email} |
| Primary Key | Selected candidate key। | Roll_No |
| Alternate Key | Primary key বাদে অন্য candidate key। | |
| Foreign Key | অন্য relation-এর primary key refer করে। | Student table-এ Class_ID |
| Composite Key | Multiple attributes মিলে unique identify করে। | {Roll_No, Subject_Code} |
৮. Relational Integrity Constraints
Relational Integrity Constraints হলো relation-এর data valid, correct এবং consistent রাখার rules। এগুলো database-এর ভুল data entry এবং invalid relationship কমাতে সাহায্য করে।
৮.১ Domain Constraint
Domain constraint অনুযায়ী attribute-এর value তার allowed domain-এর মধ্যে হতে হবে।
Marks attribute-এর value 0 থেকে 100-এর মধ্যে হতে হবে। Age negative হতে পারবে না।
৮.২ Key Constraint
Key constraint অনুযায়ী key attribute-এর value unique হতে হবে। কোনো দুই tuple-এর key value same হওয়া উচিত নয়।
৮.৩ Entity Integrity Constraint
Entity integrity অনুযায়ী primary key-এর value null হতে পারবে না। কারণ primary key যদি null হয়, তাহলে tuple uniquely identify করা যাবে না।
৮.৪ Referential Integrity Constraint
Referential integrity constraint foreign key-এর সঙ্গে সম্পর্কিত। Foreign key value অবশ্যই referenced table-এর primary key value হতে হবে, অথবা allowed হলে null হতে পারে।
STUDENT table-এ Class_ID foreign key থাকলে সেটি CLASS table-এর valid Class_ID refer করতে হবে।
| Constraint | বাংলা ব্যাখ্যা | উদাহরণ |
|---|---|---|
| Domain Constraint | Attribute value allowed range-এর মধ্যে থাকবে। | Marks 0–100 |
| Key Constraint | Key value unique হবে। | Roll_No duplicate নয় |
| Entity Integrity | Primary key null হতে পারবে না। | Roll_No blank নয় |
| Referential Integrity | Foreign key valid primary key refer করবে। | Class_ID must exist in CLASS table |
৯. Relational Model-এর Advantages
- Table format হওয়ায় data বোঝা সহজ।
- SQL ব্যবহার করে data query করা সহজ।
- Data redundancy কমাতে normalization করা যায়।
- Primary key এবং foreign key দিয়ে relationship maintain করা যায়।
- Data integrity constraints ব্যবহার করা যায়।
- Logical data independence support করে।
- Large database-ও organized way-তে manage করা যায়।
১০. Relational Model-এর Limitations
- Complex data যেমন image, audio, video directly model করা কঠিন হতে পারে।
- Very large joins performance slow করতে পারে।
- Object-oriented real-world behavior represent করা কঠিন হতে পারে।
- Highly hierarchical বা graph-based data-এর জন্য সব সময় best নয়।
- Design ভুল হলে redundancy এবং inconsistency দেখা দিতে পারে।
১১. Relational Algebra
Relational Algebra হলো Relational Model-এর উপর ভিত্তি করে তৈরি একটি procedural query language। এর সাহায্যে relation থেকে data retrieve এবং manipulate করার formal method প্রকাশ করা হয়। Relational Algebra-এ একটি বা একাধিক relation input হিসেবে নেওয়া হয় এবং output হিসেবে নতুন relation পাওয়া যায়।
Relational Algebra হলো একটি procedural query language, যেখানে operators ব্যবহার করে এক বা একাধিক relation থেকে নতুন relation তৈরি করা হয়।
Relational Algebra SQL বোঝার theoretical foundation হিসেবে কাজ করে। SQL declarative language হলেও database engine internally query process করার সময় relational algebra operations-এর concept ব্যবহার করে।
১২. Relational Algebra-এর বৈশিষ্ট্য
- এটি procedural query language।
- এটি বলে কীভাবে result পাওয়া যাবে।
- Input হিসেবে relation নেয়।
- Output হিসেবেও relation দেয়।
- Operations combine করে complex query তৈরি করা যায়।
- SQL-এর mathematical foundation হিসেবে ব্যবহৃত হয়।
Relational Algebra-এর closure property আছে। অর্থাৎ প্রতিটি operation relation input নিয়ে relation output দেয়। তাই একটি operation-এর output অন্য operation-এর input হিসেবে ব্যবহার করা যায়।
১৩. Basic Operators of Relational Algebra
Relational Algebra-এর basic operators হলো:
- Selection (σ)
- Projection (π)
- Union (∪)
- Set Difference (−)
- Cartesian Product (×)
- Rename (ρ)
১৪. Selection Operation — σ
Selection operation relation থেকে condition অনুযায়ী rows বা tuples select করে। এটি horizontal filtering করে, কারণ এটি rows filter করে।
Selection হলো এমন operation, যা relation থেকে নির্দিষ্ট condition satisfy করা tuples select করে।
Example Relation: STUDENT
| Roll_No | Name | Class | Marks |
|---|---|---|---|
| 101 | Riya | XII | 88 |
| 102 | Arman | XII | 76 |
| 103 | Sohini | XII | 91 |
এর অর্থ হলো STUDENT relation থেকে যেসব student-এর Marks 80-এর বেশি, সেই rows select করা হবে।
| Roll_No | Name | Class | Marks |
|---|---|---|---|
| 101 | Riya | XII | 88 |
| 103 | Sohini | XII | 91 |
১৫. Projection Operation — π
Projection operation relation থেকে নির্দিষ্ট columns বা attributes select করে। এটি vertical filtering করে, কারণ এটি columns select করে।
Projection হলো এমন operation, যা relation থেকে নির্দিষ্ট attributes বা columns select করে।
এর অর্থ হলো STUDENT relation থেকে শুধু Name এবং Marks columns দেখানো হবে।
| Name | Marks |
|---|---|
| Riya | 88 |
| Arman | 76 |
| Sohini | 91 |
Selection rows filter করে, Projection columns filter করে।
১৬. Union Operation — ∪
Union operation দুটি relation-এর tuples combine করে। Result relation-এ first relation এবং second relation-এর সব tuples থাকে। Duplicate tuples সাধারণত eliminate করা হয়। Union operation করার জন্য দুটি relation union-compatible হতে হবে।
দুটি relation-এর number of attributes same এবং corresponding attributes-এর domain compatible হলে তারা union-compatible।
Example:
SCIENCE_STUDENT এবং COMMERCE_STUDENT relation union-compatible হলে:
Result relation-এ science এবং commerce—দুই group-এর student records থাকবে।
১৭. Set Difference Operation — −
Set Difference operation first relation-এর এমন tuples return করে, যা second relation-এ নেই। Set difference operation করার জন্য relation দুটির union compatibility দরকার।
এর অর্থ হলো R relation-এ আছে কিন্তু S relation-এ নেই—এমন tuples output হবে।
ALL_STUDENT − PASSED_STUDENT করলে যারা pass করেনি বা PASSED_STUDENT relation-এ নেই, তাদের list পাওয়া যেতে পারে।
১৮. Cartesian Product Operation — ×
Cartesian Product দুটি relation-এর প্রতিটি tuple-এর সঙ্গে অন্য relation-এর প্রতিটি tuple combine করে। এটি অনেক বড় result relation তৈরি করতে পারে। Join operation বোঝার জন্য Cartesian Product গুরুত্বপূর্ণ।
যদি STUDENT relation-এ 3টি tuple এবং COURSE relation-এ 2টি tuple থাকে, তাহলে STUDENT × COURSE result relation-এ 3 × 2 = 6টি tuples থাকবে।
১৯. Rename Operation — ρ
Rename operation relation বা attribute-এর name পরিবর্তন করতে ব্যবহার করা হয়। Complex relational algebra expression-এ temporary relation-এর নাম দেওয়ার জন্য এটি useful।
ρ RESULT (STUDENT) — এখানে STUDENT relation-এর temporary name RESULT হিসেবে ব্যবহার করা হলো।
২০. Derived Operators of Relational Algebra
Basic operators ছাড়াও relational algebra-এ কিছু derived বা additional operators ব্যবহার করা হয়। এগুলো basic operators থেকে derive করা যায়, কিন্তু practical query writing-এ খুব useful।
- Intersection (∩)
- Join (⋈)
- Natural Join
- Theta Join
- Division (÷)
২১. Intersection Operation — ∩
Intersection operation দুটি relation-এর common tuples return করে। অর্থাৎ যেসব tuples R এবং S—দুই relation-এই আছে, সেগুলো result relation-এ থাকবে।
CRICKET_PLAYER ∩ FOOTBALL_PLAYER করলে যারা cricket এবং football—দুটোই খেলে, তাদের list পাওয়া যাবে।
২২. Join Operation — ⋈
Join operation দুটি relation-এর related tuples combine করে। Join সাধারণত common attribute বা condition-এর উপর ভিত্তি করে করা হয়। Relational database-এ multiple tables থেকে data আনতে join খুব গুরুত্বপূর্ণ।
Join হলো এমন operation, যা common attribute বা condition-এর ভিত্তিতে দুই relation-এর tuples combine করে।
২২.১ Theta Join
Theta Join-এ নির্দিষ্ট condition ব্যবহার করে দুটি relation join করা হয়। Condition-এ =, <, >, ≤, ≥, ≠ ইত্যাদি operator থাকতে পারে।
২২.২ Equi Join
Equi Join হলো theta join-এর বিশেষ case, যেখানে condition শুধু equality operator (=) ব্যবহার করে।
২২.৩ Natural Join
Natural Join automatically common attribute-এর উপর join করে এবং duplicate common columns সাধারণত remove করে।
STUDENT(Roll_No, Name, Class_ID)
CLASS(Class_ID, Class_Name)
STUDENT ⋈ CLASS করলে Class_ID-এর ভিত্তিতে student এবং class information combine করা যাবে।
২৩. Division Operation — ÷
Division operation একটু advanced relational algebra operation। এটি সাধারণত “all” type query-এর জন্য ব্যবহৃত হয়। অর্থাৎ এমন records খুঁজতে, যারা একটি নির্দিষ্ট set-এর সব elements-এর সঙ্গে related।
এমন students খুঁজতে যারা সব compulsory subjects নিয়েছে—এই ধরনের query division operation দিয়ে express করা যায়।
২৪. Relational Algebra Operators Summary
| Operator | Symbol | কাজ | Type |
|---|---|---|---|
| Selection | σ | Rows filter করে। | Unary |
| Projection | π | Columns select করে। | Unary |
| Union | ∪ | দুটি relation-এর tuples combine করে। | Binary |
| Set Difference | − | প্রথম relation-এ আছে কিন্তু দ্বিতীয় relation-এ নেই এমন tuples দেয়। | Binary |
| Cartesian Product | × | দুটি relation-এর সব possible tuple combination তৈরি করে। | Binary |
| Rename | ρ | Relation বা attribute rename করে। | Unary |
| Intersection | ∩ | Common tuples return করে। | Derived |
| Join | ⋈ | Related tuples combine করে। | Derived |
| Division | ÷ | All-type query express করে। | Derived |
২৫. Selection এবং Projection-এর মধ্যে পার্থক্য
| Selection | Projection |
|---|---|
| Rows বা tuples filter করে। | Columns বা attributes select করে। |
| Horizontal operation। | Vertical operation। |
| Condition ব্যবহার করে। | Attribute list ব্যবহার করে। |
| Symbol: σ | Symbol: π |
| Example: σ Marks > 80 (STUDENT) | Example: π Name, Marks (STUDENT) |
২৬. Relational Algebra এবং SQL-এর সম্পর্ক
SQL হলো practical database query language, আর Relational Algebra হলো theoretical foundation। SQL-এ আমরা কী result চাই তা লিখি, কিন্তু relational algebra সেই result পাওয়ার logical operations বোঝায়।
| SQL Concept | Relational Algebra Concept | Example |
|---|---|---|
| WHERE clause | Selection | σ Marks > 80 (STUDENT) |
| SELECT columns | Projection | π Name, Marks (STUDENT) |
| JOIN | Join operation | STUDENT ⋈ CLASS |
| UNION | Union operation | R ∪ S |
২৭. Complete Example Using Relational Algebra
ধরো STUDENT relation আছে:
| Roll_No | Name | Class | Marks |
|---|---|---|---|
| 101 | Riya | XII | 88 |
| 102 | Arman | XII | 76 |
| 103 | Sohini | XII | 91 |
| 104 | Rahul | XII | 69 |
Query:
যেসব students 80-এর বেশি marks পেয়েছে, তাদের Name দেখাও।
Relational Algebra Expression:
Explanation:
- প্রথমে σ Marks > 80 (STUDENT) দিয়ে 80-এর বেশি marks পাওয়া students select করা হবে।
- তারপর π Name দিয়ে শুধু Name column দেখানো হবে।
Output:
| Name |
|---|
| Riya |
| Sohini |
২৮. Common Mistakes in Relational Model and Algebra
- Relation এবং table একই concept হলেও exam-এ relation term ব্যবহার করা ভালো।
- Tuple মানে row এবং attribute মানে column—এটি confuse করা যাবে না।
- Degree এবং cardinality উল্টো লিখলে marks কাটা যেতে পারে।
- Selection rows filter করে, projection columns filter করে—এটি মনে রাখতে হবে।
- Union, intersection, difference করার আগে union compatibility দরকার।
- Primary key null হতে পারে না।
- Foreign key অবশ্যই valid referenced key value refer করবে।
- Cartesian product খুব বড় result তৈরি করতে পারে, তাই join condition important।
২৯. Chapter Summary
Relational Model DBMS-এর একটি গুরুত্বপূর্ণ data model, যেখানে data relation বা table আকারে store করা হয়। Relation-এর rows-কে tuple এবং columns-কে attribute বলা হয়। Attribute-এর possible values-এর set হলো domain। Relation schema relation-এর structure define করে এবং relation instance নির্দিষ্ট সময়ে actual data represent করে। Degree হলো number of attributes এবং cardinality হলো number of tuples।
Relational Model-এ key এবং constraints data correctness বজায় রাখতে সাহায্য করে। Primary key tuple uniquely identify করে, foreign key relation-এর মধ্যে relationship তৈরি করে। Domain constraint, key constraint, entity integrity এবং referential integrity relational database-এর গুরুত্বপূর্ণ rules।
Relational Algebra হলো procedural query language, যা relation input নিয়ে relation output দেয়। এর basic operations হলো selection, projection, union, set difference, cartesian product এবং rename। Derived operations-এর মধ্যে intersection, join এবং division গুরুত্বপূর্ণ। SQL query বুঝতে relational algebra-এর concept জানা খুব দরকার।
৩০. Important Key Points for Class 12
- Relational Model data-কে table বা relation আকারে store করে।
- Relation = Table, Tuple = Row, Attribute = Column।
- Domain হলো attribute-এর allowed values-এর set।
- Relation Schema relation-এর structure define করে।
- Relation Instance হলো নির্দিষ্ট সময়ের actual data।
- Degree = number of attributes বা columns।
- Cardinality = number of tuples বা rows।
- Primary key tuple uniquely identify করে।
- Foreign key অন্য relation-এর primary key refer করে।
- Selection operation rows filter করে।
- Projection operation columns select করে।
- Union, intersection এবং difference-এর জন্য union compatibility দরকার।
- Relational Algebra relation input নিয়ে relation output দেয়।
- Relational Algebra SQL-এর theoretical foundation।
৩১. Short Questions and Answers
প্রশ্ন ১: Relational Model কী?
উত্তর: Relational Model হলো এমন একটি database model, যেখানে data relation বা table আকারে store করা হয়।
প্রশ্ন ২: Relation কী?
উত্তর: Relation হলো table, যেখানে rows এবং columns-এর মাধ্যমে data represent করা হয়।
প্রশ্ন ৩: Tuple কী?
উত্তর: Relation-এর একটি row বা record-কে tuple বলা হয়।
প্রশ্ন ৪: Attribute কী?
উত্তর: Relation-এর column বা field-কে attribute বলা হয়।
প্রশ্ন ৫: Domain কী?
উত্তর: কোনো attribute যে allowed values গ্রহণ করতে পারে, সেই values-এর set-কে domain বলা হয়।
প্রশ্ন ৬: Degree কী?
উত্তর: Relation-এর total number of attributes বা columns-কে degree বলা হয়।
প্রশ্ন ৭: Cardinality কী?
উত্তর: Relation-এর total number of tuples বা rows-কে cardinality বলা হয়।
প্রশ্ন ৮: Relational Algebra কী?
উত্তর: Relational Algebra হলো procedural query language, যেখানে operators ব্যবহার করে relation থেকে নতুন relation তৈরি করা হয়।
প্রশ্ন ৯: Selection operation কী?
উত্তর: Selection operation relation থেকে condition satisfy করা rows select করে। এর symbol হলো σ।
প্রশ্ন ১০: Projection operation কী?
উত্তর: Projection operation relation থেকে নির্দিষ্ট columns select করে। এর symbol হলো π।
প্রশ্ন ১১: Union compatibility কী?
উত্তর: দুটি relation-এর attributes সংখ্যা same এবং corresponding attributes-এর domains compatible হলে relation দুটি union-compatible।
৩২. Long Answer Type Questions
প্রশ্ন ১: Relational Model-এর basic concepts ব্যাখ্যা করো।
উত্তর: Relational Model হলো DBMS-এর একটি data model, যেখানে data table বা relation আকারে store করা হয়। একটি relation rows এবং columns নিয়ে গঠিত। Relation-এর প্রতিটি row-কে tuple বলা হয় এবং প্রতিটি column-কে attribute বলা হয়। Attribute entity-এর property represent করে। যেমন STUDENT relation-এর Roll_No, Name, Class এবং Marks attributes হতে পারে।
Domain হলো attribute-এর allowed values-এর set। যেমন Marks attribute-এর domain 0 থেকে 100 হতে পারে। Relation schema relation-এর structure define করে, যেমন STUDENT(Roll_No, Name, Marks)। Relation instance হলো নির্দিষ্ট সময়ে relation-এর actual data। Degree হলো relation-এর attributes সংখ্যা এবং cardinality হলো relation-এর tuples সংখ্যা। Relational Model-এ key এবং constraints data uniquely identify ও valid রাখতে সাহায্য করে।
প্রশ্ন ২: Relational Integrity Constraints আলোচনা করো।
উত্তর: Relational Integrity Constraints হলো database-এর data valid এবং consistent রাখার rules। Domain constraint অনুযায়ী attribute value তার allowed domain-এর মধ্যে থাকতে হবে। যেমন Marks 0 থেকে 100-এর মধ্যে হওয়া উচিত। Key constraint অনুযায়ী key value unique হতে হবে। Entity integrity constraint অনুযায়ী primary key null হতে পারবে না।
Referential integrity constraint foreign key-এর সঙ্গে সম্পর্কিত। যদি কোনো relation-এর attribute অন্য relation-এর primary key refer করে, তাহলে সেই foreign key value অবশ্যই referenced relation-এ থাকতে হবে। এই constraints database-এর ভুল data, duplicate data এবং invalid relationship কমাতে সাহায্য করে।
প্রশ্ন ৩: Relational Algebra কী? এর basic operations ব্যাখ্যা করো।
উত্তর: Relational Algebra হলো একটি procedural query language, যা relation input হিসেবে নিয়ে relation output দেয়। এটি relational database query করার formal এবং mathematical method। Relational Algebra SQL-এর theoretical foundation হিসেবে কাজ করে। এর basic operations হলো selection, projection, union, set difference, cartesian product এবং rename।
Selection operation condition অনুযায়ী rows select করে এবং এর symbol σ। Projection operation নির্দিষ্ট columns select করে এবং এর symbol π। Union operation দুটি union-compatible relation-এর tuples combine করে। Set difference operation first relation-এর এমন tuples return করে, যা second relation-এ নেই। Cartesian product দুটি relation-এর every tuple combination তৈরি করে। Rename operation relation বা attribute-এর নাম পরিবর্তন করতে ব্যবহৃত হয়।
প্রশ্ন ৪: Selection এবং Projection-এর মধ্যে পার্থক্য লেখো।
উত্তর: Selection এবং Projection relational algebra-এর দুটি গুরুত্বপূর্ণ unary operation। Selection relation থেকে condition satisfy করা rows select করে। এটি horizontal operation, কারণ এটি rows filter করে। এর symbol হলো σ। উদাহরণ: σ Marks > 80 (STUDENT)।
Projection relation থেকে নির্দিষ্ট columns select করে। এটি vertical operation, কারণ এটি columns filter করে। এর symbol হলো π। উদাহরণ: π Name, Marks (STUDENT)। Selection condition-এর উপর ভিত্তি করে কাজ করে, কিন্তু projection attribute list-এর উপর ভিত্তি করে কাজ করে।
প্রশ্ন ৫: Join operation ব্যাখ্যা করো।
উত্তর: Join operation relational algebra-এর একটি important derived operation। এটি দুটি relation-এর related tuples common attribute বা condition-এর ভিত্তিতে combine করে। Relational database-এ data অনেক table-এ ভাগ করে রাখা হয়। সেই tableগুলো থেকে combined information বের করতে join ব্যবহার করা হয়।
Join-এর বিভিন্ন ধরন আছে, যেমন theta join, equi join এবং natural join। Theta join নির্দিষ্ট condition-এর উপর ভিত্তি করে কাজ করে। Equi join equality condition ব্যবহার করে। Natural join common attribute-এর উপর automatically join করে এবং duplicate common columns remove করতে পারে। যেমন STUDENT এবং CLASS relation Class_ID-এর ভিত্তিতে join করলে student-এর class information পাওয়া যায়।
৩৩. Conclusion বা উপসংহার
Relational Model database management-এর অন্যতম গুরুত্বপূর্ণ model। এটি data-কে table format-এ organize করে, যার ফলে data বোঝা, query করা এবং manage করা সহজ হয়। Relation, tuple, attribute, domain, schema, instance, degree এবং cardinality—এই basic terms ভালোভাবে বুঝলে relational database সহজে বোঝা যায়।
Relational Algebra relational database query করার mathematical foundation। Selection, projection, union, set difference, cartesian product, rename এবং join operations database থেকে required information retrieve করতে সাহায্য করে। Class 12 students-এর জন্য Relational Model এবং Relational Algebra জানা খুব গুরুত্বপূর্ণ, কারণ এগুলো SQL, normalization এবং advanced database design শেখার foundation তৈরি করে।