Nested Queries পরিচালনা

Database Tutorials - আরাঙ্গো (ArangoDB) Joins এবং Relational Queries |
270
270

Nested Queries ArangoDB তে এমন কোয়েরি যেখানে একটি কোয়েরির ভেতরে আরেকটি কোয়েরি ব্যবহার করা হয়। এটি জটিল ডেটা বিশ্লেষণ এবং সম্পর্কিত ডেটার কার্যকর অনুসন্ধানের জন্য ব্যবহৃত হয়। AQL এ Nested Queries ব্যবহার করে সহজে সাব-কোয়েরি তৈরি করা সম্ভব।


Nested Query এর মূল ধারণা

  • একটি কোয়েরির ভেতরে অন্য একটি কোয়েরি ব্যবহার করে ডেটা সংগ্রহ করা।
  • সাব-কোয়েরির ফলাফলকে মেইন কোয়েরিতে ডেটা হিসেবে ব্যবহার করা হয়।
  • এটি JOIN, ফিল্টারিং, এবং সাব-গ্রুপিং অপারেশন পরিচালনার জন্য কার্যকর।

Nested Query উদাহরণ

১. সাব-কোয়েরি ব্যবহার করে ফিল্টারিং

FOR doc IN employees
  FILTER doc.salary > (
    FOR avgSalary IN employees
      COLLECT AGGREGATE avgSalary = AVG(avgSalary.salary)
      RETURN avgSalary
  )[0]
  RETURN doc

বর্ণনা:

  • সাব-কোয়েরি employees টেবিলের গড় বেতন (AVG) বের করে।
  • মেইন কোয়েরি সেই সকল এমপ্লয়িদের ডেটা ফেরত দেয়, যাদের বেতন গড় বেতনের বেশি।

২. সাব-কোয়েরি দিয়ে গ্রুপিং এবং গণনা

FOR department IN departments
  LET employeeCount = (
    FOR emp IN employees
      FILTER emp.departmentId == department._key
      COLLECT WITH COUNT INTO count
      RETURN count
  )[0]
  RETURN { department: department.name, totalEmployees: employeeCount }

বর্ণনা:

  • সাব-কোয়েরি প্রতিটি ডিপার্টমেন্টের জন্য কর্মচারীদের সংখ্যা গণনা করে।
  • মেইন কোয়েরি ডিপার্টমেন্টের নাম এবং কর্মচারীর সংখ্যা রিটার্ন করে।

৩. Edge এবং Vertex এর Nested Query

FOR v IN vertices
  LET relatedEdges = (
    FOR e IN edges
      FILTER e._from == v._id
      RETURN e
  )
  RETURN { vertex: v, edges: relatedEdges }

বর্ণনা:

  • সাব-কোয়েরি একটি Vertex এর সাথে সম্পর্কিত সকল Edge সংগ্রহ করে।
  • মেইন কোয়েরি Vertex এবং তার সম্পর্কিত Edge রিটার্ন করে।

৪. সাব-কোয়েরি থেকে একাধিক মান সংগ্রহ

FOR product IN products
  LET totalSales = (
    FOR order IN orders
      FILTER order.productId == product._key
      COLLECT AGGREGATE total = SUM(order.quantity)
      RETURN total
  )[0]
  RETURN { productName: product.name, totalSales: totalSales }

বর্ণনা:

  • সাব-কোয়েরি একটি প্রোডাক্টের জন্য সব অর্ডারের পরিমাণ যোগ করে।
  • মেইন কোয়েরি প্রোডাক্টের নাম এবং মোট বিক্রয় রিটার্ন করে।

Nested Query ব্যবহারের ক্ষেত্রে বিশেষ নির্দেশনা

  • পারফরম্যান্স: Nested Queries জটিল হলে কোয়েরি সময় বেশি লাগতে পারে।
  • ইনডেক্সিং: Nested Query অপ্টিমাইজ করতে রিলেভেন্ট ফিল্ডে ইনডেক্স ব্যবহার করুন।
  • সাব-কোয়েরি সীমাবদ্ধতা: সাব-কোয়েরি সরাসরি পুরো টেবিলে কাজ করে, তাই সাব-কোয়েরির ফলাফল ছোট রাখতে ফিল্টার ব্যবহার করুন।

Nested Query এর ব্যবহার ক্ষেত্র

  • জটিল সম্পর্ক বিশ্লেষণ।
  • গ্রুপিং এবং সাব-গ্রুপিং।
  • একাধিক স্তরের ডেটা ফিল্টারিং।
  • Edge এবং Vertex সম্পর্ক পরিচালনা।

সারাংশ

ArangoDB তে Nested Query ব্যবহার করে জটিল ডেটা বিশ্লেষণ এবং সম্পর্কযুক্ত ডেটা মডেল পরিচালনা সহজ হয়। সাব-কোয়েরি ডেটা ফিল্টারিং, গ্রুপিং, এবং গণনার জন্য কার্যকর হাতিয়ার। ডেটার গভীর বিশ্লেষণ প্রয়োজন হলে Nested Queries একটি অপরিহার্য টুল।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion