তথ্য ও যোগাযোগ প্রযুক্তি • ডেটাবেজ ম্যানেজমেন্ট সিস্টেম
তথ্য ও যোগাযোগ প্রযুক্তি প্রশ্ন
একটি কলেজের লাইব্রেরির ডেটাবেজে member, library_card ও club নামে তিনটি টেবিল আছে। প্রতিটি সদস্যকে একটি মাত্র লাইব্রেরি কার্ড দেওয়া হয়। একজন সদস্য একাধিক ক্লাবের সদস্য হতে পারে, আবার একটি ক্লাবে একাধিক সদস্য থাকতে পারে। রাফি ক্রিকেট ও দাবা ক্লাবের, নীলা দাবা ক্লাবের এবং সাকিব ক্রিকেট ক্লাবের সদস্য।
টেবিলের নাম : member
| MemberID (Integer, Primary Key) | Name (Text) |
|---|---|
| 1 | Rafi |
| 2 | Nila |
| 3 | Sakib |
টেবিলের নাম : library_card
| CardID (Integer, Primary Key) | MemberID (Integer) | IssueDate (Date) |
|---|---|---|
| 101 | 1 | 5-1-2025 |
| 102 | 2 | 5-1-2025 |
| 103 | 3 | 7-1-2025 |
টেবিলের নাম : club
| Name (Text, Primary Key) | Moderator (Text) |
|---|---|
| Cricket Club | Mr. Ruhul Amin |
| Chess Club | Ms. Fatema Akhter |
- ক)(1)
ফরেন কি কী?
- খ)(2)
দুটি টেবিলের মধ্যে রিলেশন স্থাপনের শর্তগুলো ব্যাখ্যা করো।
- গ)(3)
উদ্দীপকের member ও library_card টেবিলের মধ্যে কোন ধরনের রিলেশন বিদ্যমান? ফরেন কি চিহ্নিত করে ব্যাখ্যা করো।
- ঘ)(4)
উদ্দীপকের member ও club টেবিলের মধ্যে সম্পর্ক স্থাপনের জন্য কী করতে হবে? উদাহরণসহ বিশ্লেষণ করো।
উত্তর ও ব্যাখ্যা
- ক)
AI-তৈরি নমুনা উত্তর একটি টেবিলের প্রাইমারি কি যখন অন্য একটি টেবিলে ব্যবহার করা হয়, তখন সেই টেবিলে ওই কি-কে ফরেন কি (foreign key) বলা হয়। এই কি দিয়ে টেবিল দুটি সম্পর্কযুক্ত হয়।
- খ)
AI-তৈরি নমুনা উত্তর দুটি টেবিলের মধ্যে রিলেশন স্থাপন করতে হলে টেবিল দুটির মধ্যে একটি কমন ফিল্ড থাকতে হয়। সেই ফিল্ডের নাম, ডেটা টাইপ, ফিল্ড সাইজ ইত্যাদি হুবহু একই রকম হতে হয়। এছাড়া ডেটা টেবিলের একটি ফিল্ডকে প্রাইমারি কি হিসেবে চিহ্নিত করতে হয়। একটি টেবিলের প্রাইমারি কি অন্য টেবিলে ফরেন কি হিসেবে ব্যবহৃত হয়ে টেবিল দুটিকে যুক্ত করে। এই শর্তগুলো পূরণ হলেই টেবিলগুলোর মধ্যে সম্পর্ক গড়ে ওঠে।
- গ)
AI-তৈরি নমুনা উত্তর উদ্দীপকে বলা হয়েছে প্রতিটি সদস্যকে একটি মাত্র লাইব্রেরি কার্ড দেওয়া হয়। member টেবিলের প্রতিটি রো-তে একজন সদস্যের তথ্য আছে এবং library_card টেবিলে সেই সদস্যের জন্য ঠিক একটি রো আছে। যেমন, MemberID 1 (Rafi)-এর জন্য library_card টেবিলে কেবল CardID 101 আছে; MemberID 2 ও 3-এর ক্ষেত্রেও একইভাবে একটি করে রো আছে। অর্থাৎ একটি টেবিলের একটি রো-এর সঙ্গে অন্য টেবিলের একটিমাত্র রো-এর সম্পর্ক পাওয়া যাচ্ছে। তাই টেবিল দুটির মধ্যে ওয়ান টু ওয়ান রিলেশন বিদ্যমান।
এখানে member টেবিলে MemberID হলো প্রাইমারি কি। library_card টেবিলে সেই MemberID ব্যবহার করা হয়েছে, তাই library_card টেবিলে MemberID হলো ফরেন কি। এই ফরেন কি-এর মাধ্যমেই টেবিল দুটি সম্পর্কযুক্ত হয়েছে। - ঘ)
AI-তৈরি নমুনা উত্তর উদ্দীপক অনুযায়ী একজন সদস্য একাধিক ক্লাবের সদস্য হতে পারে (রাফি দুটি ক্লাবে), আবার একটি ক্লাবে একাধিক সদস্য থাকতে পারে (ক্রিকেট ক্লাবে রাফি ও সাকিব; দাবা ক্লাবে রাফি ও নীলা)। অর্থাৎ member ও club টেবিলের মধ্যে মেনি টু মেনি রিলেশন বিদ্যমান।
মেনি টু মেনি রিলেশনে দুটি টেবিলকে সরাসরি যুক্ত করা যায় না। কারণ member টেবিলের একটি রো-তে ক্লাবের নাম রাখতে গেলে একাধিক মান রাখতে হবে, আবার club টেবিলে সদস্যের আইডি রাখতে গেলেও একাধিক মান রাখতে হবে। এ সমস্যা সমাধানের জন্য মূল টেবিল দুটিকে যুক্ত করার উদ্দেশ্যে একটি তৃতীয় টেবিল তৈরি করতে হবে। এটির নাম দেওয়া যায় member_club।টেবিলের নাম : member_club
MemberID (Integer) club_name (Text) 1 Cricket Club 1 Chess Club 2 Chess Club 3 Cricket Club এই টেবিলের MemberID হলো member টেবিলের প্রাইমারি কি-এর ফরেন কি এবং club_name হলো club টেবিলের প্রাইমারি কি Name-এর ফরেন কি। ফিল্ড দুটির ডেটা টাইপ ও সাইজ মূল টেবিলের সংশ্লিষ্ট ফিল্ডের হুবহু একই রাখতে হবে। এভাবে একটি মেনি টু মেনি সম্পর্ককে দুটি ওয়ান টু মেনি সম্পর্কে ভেঙে নিয়ে তথ্য ঠিকমতো সংরক্ষণ করা যায়। সুতরাং তৃতীয় একটি যোগকারী টেবিল তৈরি করাই সম্পর্ক স্থাপনের সঠিক উপায়।
আরও প্রশ্ন অনুশীলন করতে অ্যাপে যাও