তথ্য ও যোগাযোগ প্রযুক্তি • ডেটাবেজ ম্যানেজমেন্ট সিস্টেম

তথ্য ও যোগাযোগ প্রযুক্তি প্রশ্ন

একটি কলেজের লাইব্রেরির সদস্যদের তথ্য member নামের টেবিলে রাখা হয়েছে।

namedeptyearfee
RafiICT1500
NusratPhysics2600
ImranICT2450
SadiaMath1700
TanvirPhysics1550

গ্রন্থাগারিক রাহাত শুধু Physics ও Math বিভাগের সেই সদস্যদের তথ্য দেখতে চায়, যারা দ্বিতীয় বর্ষের নয়। সে লিখল: SELECT * FROM member WHERE dept IN ('Physics', 'Math') OR year <> 2;

  1. ক)

    SQL-এ <> অপারেটরের কাজ কী?

    (1)
  2. খ)

    টেক্সট টাইপের ডেটা নিয়ে WHERE শর্ত লেখার সময় কোটেশন চিহ্ন দিতে হয় কেন? ব্যাখ্যা করো।

    (2)
  3. গ)

    উদ্দীপকের টেবিল থেকে যেসব সদস্য ICT বিভাগের অথবা যাদের ফি 600 বা তার বেশি, তাদের নাম দেখার জন্য SQL কুয়েরি লেখো এবং কুয়েরিটির ফলাফল দেখাও।

    (3)
  4. ঘ)

    রাহাতের লেখা কুয়েরিটি কি তার চাহিদা অনুযায়ী সঠিক ফলাফল দেবে? বিশ্লেষণপূর্বক তোমার মতামত দাও।

    (4)

উত্তর ও ব্যাখ্যা

  1. ক)

    AI-তৈরি নমুনা উত্তর SQL-এ <> অপারেটর দিয়ে দুটি মানের অসমতা বা 'সমান নয়' শর্ত যাচাই করা হয়। বামপক্ষের মান ডানপক্ষের মানের সমান না হলে শর্তটি সত্য হয়।

  2. খ)

    AI-তৈরি নমুনা উত্তর SQL-এ টেক্সট টাইপের মান শুরুতে ও শেষে একক কোটেশন (') চিহ্নের মধ্যে লিখতে হয়। কোটেশন না দিলে SQLite শব্দটিকে মান হিসেবে না ধরে কলামের নাম হিসেবে ধরে নেয়। যেমন, WHERE dept = Physics লিখলে সে dept কলামের সাথে Physics নামের কোনো কলামের তুলনা করতে চায়। এরূপ কোনো কলাম না থাকায় 'Error: no such column' ত্রুটি দেখায়। তাই টেক্সট ডেটা কোটেশনের মধ্যে লিখতে হয়।

  3. গ)

    AI-তৈরি নমুনা উত্তর শর্ত দুটির যেকোনো একটি সত্য হলেই রেকর্ড দেখাতে হবে, তাই OR ব্যবহার করতে হবে এবং ফি-এর জন্য >= অপারেটর ব্যবহার করতে হবে। কুয়েরি:
    SELECT name FROM member WHERE dept = 'ICT' OR fee >= 600;
    ফলাফল যাচাই:

    • Rafi: dept = ICT, শর্ত সত্য।
    • Nusrat: fee = 600, শর্ত সত্য।
    • Imran: dept = ICT, শর্ত সত্য।
    • Sadia: fee = 700, শর্ত সত্য।
    • Tanvir: dept = Physics এবং fee = 550, কোনো শর্তই সত্য নয়।
      অতএব ফলাফলে আসবে: Rafi, Nusrat, Imran ও Sadia।
  4. ঘ)

    AI-তৈরি নমুনা উত্তর রাহাত চায় এমন সদস্যদের, যারা Physics অথবা Math বিভাগের এবং একই সঙ্গে দ্বিতীয় বর্ষের নয়। অর্থাৎ দুটি শর্তই একসঙ্গে সত্য হতে হবে, এজন্য AND ব্যবহার করা উচিত। কিন্তু সে OR ব্যবহার করেছে, ফলে দুটি শর্তের যেকোনো একটি সত্য হলেই রেকর্ড আসবে।
    রাহাতের কুয়েরির ফলাফল:

    • dept IN ('Physics', 'Math') সত্য: Nusrat, Sadia, Tanvir।
    • year <> 2 সত্য: Rafi, Sadia, Tanvir।
    • OR হওয়ায় ফলাফল হবে উভয়ের সংযোগ: Rafi, Nusrat, Sadia ও Tanvir।
      কিন্তু তার চাহিদা অনুযায়ী সঠিক ফলাফল হওয়া উচিত শুধু Sadia ও Tanvir। কারণ Rafi ICT বিভাগের এবং Nusrat দ্বিতীয় বর্ষের, তাই এদের আসা উচিত নয়।
      অতএব, রাহাতের কুয়েরি সঠিক ফলাফল দেবে না, এতে দুইজন অতিরিক্ত সদস্যের তথ্য চলে আসবে। সঠিক কুয়েরি হবে:
      SELECT * FROM member WHERE dept IN ('Physics', 'Math') AND year <> 2;
      এই কুয়েরিতে দুটি শর্ত একসঙ্গে সত্য হওয়ায় শুধু Sadia ও Tanvir-এর তথ্য পাওয়া যাবে।

আরও প্রশ্ন অনুশীলন করতে অ্যাপে যাও