তথ্য ও যোগাযোগ প্রযুক্তি • ডেটাবেজ ম্যানেজমেন্ট সিস্টেম
তথ্য ও যোগাযোগ প্রযুক্তি প্রশ্ন
একটি মুদি দোকানের ক্রেতা ও বিক্রয়ের তথ্য দুটি আলাদা টেবিলে রাখা হয়েছে।
customer টেবিল
| cid | cname |
|---|---|
| 1 | Anika |
| 2 | Babu |
| 3 | Chadni |
purchase টেবিল
| cid | item | qty |
|---|---|---|
| 1 | Rice | 2 |
| 1 | Oil | 1 |
| 2 | Salt | 3 |
| 1 | Sugar | 2 |
দোকানের ম্যানেজার একটি কুয়েরিতে দুটি টেবিল থেকে ক্রেতার নামসহ তার কেনা পণ্যের তথ্য একসাথে দেখতে চান।
- ক)(1)
জয়েন (join) কী?
- খ)(2)
ওয়ান টু মেনি রিলেশন বলতে কী বোঝায়? ব্যাখ্যা করো।
- গ)(3)
উদ্দীপকের টেবিল দুটির মধ্যে কোন ধরনের রিলেশন আছে এবং কোন ফিল্ডের মাধ্যমে তা স্থাপিত হয়েছে? উদ্দীপকের তথ্য দিয়ে ব্যাখ্যা করো।
- ঘ)(4)
ক্রেতা ও বিক্রয়ের সব তথ্য একটি টেবিলে না রেখে দুটি টেবিলে রাখা কতটা যৌক্তিক? উদ্দীপকের আলোকে বিশ্লেষণ করো।
উত্তর ও ব্যাখ্যা
- ক)
AI-তৈরি নমুনা উত্তর রিলেশনাল ডেটাবেজে একটি কুয়েরিতে একাধিক টেবিল থেকে সম্পর্কযুক্ত ডেটা একসাথে পড়ার প্রক্রিয়াকে জয়েন (join) বলে।
- খ)
AI-তৈরি নমুনা উত্তর যে রিলেশনে একটি টেবিলের একটি রেকর্ডের সাথে অন্য টেবিলের একাধিক রেকর্ডের সম্পর্ক থাকতে পারে, তাকে ওয়ান টু মেনি রিলেশন বলে। যেমন, student_info টেবিলের একজন শিক্ষার্থীর একটি রোল নম্বর থাকে, কিন্তু result টেবিলে সেই রোল নম্বরের বিপরীতে একাধিক বিষয়ের ফলাফল থাকতে পারে। একটি টেবিলের কী ফিল্ডের একটি মানের জন্য অন্য টেবিলে একাধিক সারি থাকাই এই রিলেশনের বৈশিষ্ট্য।
- গ)
AI-তৈরি নমুনা উত্তর উদ্দীপকের customer ও purchase টেবিল দুটির মধ্যে ওয়ান টু মেনি রিলেশন আছে।
cid ফিল্ডটি দুটি টেবিলেই আছে এবং এর মাধ্যমেই টেবিল দুটি সম্পর্কিত। customer টেবিলে প্রতিটি cid একবারই আছে, অর্থাৎ একজন ক্রেতার একটি রেকর্ড। কিন্তু purchase টেবিলে cid = 1 তিনবার এসেছে, কারণ Anika তিনটি পণ্য (Rice, Oil, Sugar) কিনেছে। cid = 2 একবার এসেছে এবং cid = 3 (Chadni) এখনো কিছু কেনেনি।
অর্থাৎ customer টেবিলের একটি রেকর্ডের সাথে purchase টেবিলের একাধিক রেকর্ড যুক্ত হতে পারছে। তাই সম্পর্কটি ওয়ান টু মেনি। - ঘ)
AI-তৈরি নমুনা উত্তর সব তথ্য একটি টেবিলে রাখলে প্রতিটি পণ্য কেনার সারিতে ক্রেতার নামও বারবার লিখতে হতো। উদ্দীপকে Anika তিনটি পণ্য কিনেছে, তাই একটি টেবিলে তার নাম তিনবার লিখতে হতো। ফলে একই তথ্য বারবার জমে ডেটার পুনরাবৃত্তি ও অপ্রয়োজনীয় সংরক্ষণস্থান ব্যয় বাড়ত।
দুটি টেবিলে রাখার সুবিধা:- ক্রেতার নাম customer টেবিলে মাত্র একবার থাকে এবং purchase টেবিলে শুধু cid থাকে, ফলে জায়গা কম লাগে।
- Anika-র নাম পরিবর্তন করতে হলে একটি সারি হালনাগাদ করলেই হয়। একটি টেবিলে থাকলে তিনটি সারি আলাদা আপডেট করতে হতো এবং কোনোটি বাদ গেলে ডেটা অসংগতিপূর্ণ হয়ে যেত।
- Chadni এখনো কিছু কেনেনি, তবু তার তথ্য customer টেবিলে সংরক্ষিত থাকে। একটি টেবিলে রাখলে ফাঁকা পণ্য-তথ্যসহ অসম্পূর্ণ সারি রাখতে হতো।
- প্রয়োজন হলে cid ফিল্ডের ভিত্তিতে জয়েন কুয়েরি দিয়ে দুটি টেবিলের ডেটা একসাথে দেখা যায়, ফলে ম্যানেজারের চাহিদাও পূরণ হয়।
অতএব, ডেটার পুনরাবৃত্তি কমানো, সংগতি রক্ষা ও সহজ ব্যবস্থাপনার জন্য দুটি টেবিলে রেখে রিলেশন তৈরি করা সম্পূর্ণ যৌক্তিক।
আরও প্রশ্ন অনুশীলন করতে অ্যাপে যাও