AQL তে Transaction ব্যবহার

Database Tutorials - আরাঙ্গো (ArangoDB) Transactions in ArangoDB |
244
244

ArangoDB-তে Transaction এমন একটি পদ্ধতি যা মাল্টি-ডকুমেন্ট বা মাল্টি-কালেকশন অপারেশন সুনির্দিষ্ট এবং নিরাপদভাবে পরিচালনা করতে সহায়তা করে। AQL-এ Transaction ব্যবহার করে আপনি ডেটা সংশোধন বা আপডেটের সময় ডেটার সঙ্গতি (Consistency) এবং নির্ভুলতা নিশ্চিত করতে পারেন।


Transaction এর মূল ধারণা

Transaction মানে একটি নির্দিষ্ট কার্যক্রমের সেট যা সম্পূর্ণ বা একত্রে ব্যর্থ হয়। এটি ACID (Atomicity, Consistency, Isolation, Durability) বৈশিষ্ট্য মেনে চলে।
যদি একটি Transaction ব্যর্থ হয়, তবে এর প্রতিটি পরিবর্তন রোলব্যাক (Rollback) হয়, অর্থাৎ পূর্বের অবস্থায় ফিরে যায়।


AQL-এ Transaction ব্যবহারের প্রক্রিয়া

১. Transaction শুরু করা

Transaction একটি জাভাস্ক্রিপ্ট অবজেক্টের মাধ্যমে চালানো হয়, যা AQL কোয়েরি ধারণ করে।

২. Transaction এর জন্য কালেকশন নির্ধারণ করা

Transaction চালানোর আগে কোন Collection গুলোতে কাজ হবে তা নির্ধারণ করতে হয়।

৩. Transaction কোয়েরি সম্পাদন করা

Transaction এর মধ্যবর্তী কোয়েরিগুলো একত্রে চালানো হয়।


উদাহরণ: AQL-এ Transaction

১. একটি Basic Transaction

db._executeTransaction({
  collections: {
    write: ["Products", "Orders"]
  },
  action: function () {
    const db = require('@arangodb').db;

    // Order তৈরি করা
    db.Orders.insert({
      productId: "12345",
      quantity: 2,
      status: "Pending"
    });

    // Product স্টকের সংখ্যা হালনাগাদ করা
    db.Products.update("12345", { stock: 10 });
  }
});

এখানে:

  • Collections: Products এবং Orders কালেকশন Transaction-এর অংশ।
  • Insert এবং Update: নতুন অর্ডার যোগ করা এবং পণ্যের স্টক হালনাগাদ করা।
  • যদি কোয়েরির মধ্যে কোনো একটি ব্যর্থ হয়, তাহলে সব পরিবর্তন বাতিল হবে।

২. Transaction-এ AQL ব্যবহার

db._executeTransaction({
  collections: {
    read: ["Users"],
    write: ["Payments"]
  },
  action: function () {
    const db = require('@arangodb').db;
    const query = `
      FOR user IN Users
        FILTER user.status == 'Active'
        INSERT {
          userId: user._key,
          amount: 100,
          status: 'Paid'
        } INTO Payments
    `;
    db._query(query);
  }
});

এখানে:

  • Read Collections: Users থেকে ডেটা পড়া।
  • Write Collections: Payments এ নতুন ডেটা যোগ করা।
  • AQL কোয়েরি: Active ব্যবহারকারীদের জন্য পেমেন্ট এন্ট্রি তৈরি করা।

৩. Multi-Document Transaction

db._executeTransaction({
  collections: {
    write: ["Accounts", "Transactions"]
  },
  action: function () {
    const db = require('@arangodb').db;

    // Accounts থেকে টাকা ডেবিট করা
    db.Accounts.update("account1", { balance: db.Accounts.document("account1").balance - 500 });

    // Accounts এ টাকা ক্রেডিট করা
    db.Accounts.update("account2", { balance: db.Accounts.document("account2").balance + 500 });

    // Transactions এ লেনদেনের তথ্য সংরক্ষণ
    db.Transactions.insert({
      from: "account1",
      to: "account2",
      amount: 500,
      status: "Success"
    });
  }
});

Transaction ব্যবহারের সুবিধা

ডেটার সঙ্গতি (Consistency)

  • একাধিক ডকুমেন্ট বা কালেকশন সংশোধনের সময় ডেটার নির্ভুলতা নিশ্চিত করে।

Atomicity

  • সমস্ত কাজ সফলভাবে সম্পন্ন হলে তবেই Transaction সম্পন্ন হয়; অন্যথায় পূর্বের অবস্থায় ফিরে যায়।

Concurrency

  • একাধিক Transaction এর মধ্যে সংঘর্ষ এড়িয়ে Isolation নিশ্চিত করে।

Error Handling

  • Transaction ব্যর্থ হলে পরিবর্তনসমূহ রোলব্যাক হয়।

Transaction Logging এবং Error Handling

Transaction এর সময় যদি কোনো ত্রুটি ঘটে, তাহলে এটি একটি Rollback ট্রিগার করে, এবং সমস্ত পরিবর্তন পূর্বের অবস্থায় ফিরে যায়।

উদাহরণ: Error Handling

try {
  db._executeTransaction({
    collections: { write: ["Orders"] },
    action: function () {
      const db = require('@arangodb').db;
      db.Orders.insert({ orderId: "123", status: "Pending" });
      throw "Manual Error"; // ইচ্ছাকৃত ত্রুটি
    }
  });
} catch (err) {
  console.error("Transaction ব্যর্থ হয়েছে:", err);
}

সারাংশ

AQL-এ Transaction ব্যবহার বড় এবং জটিল ডেটাবেজ অপারেশনের সময় ডেটার সঙ্গতি এবং নির্ভুলতা নিশ্চিত করে। এটি ACID বৈশিষ্ট্য মেনে চলে এবং ডেভেলপারদের ডেটা ম্যানেজমেন্ট আরও সহজ এবং নির্ভরযোগ্য করে তোলে। ArangoDB-তে Transaction ব্যবহার করে আপনি নিরাপদ এবং কার্যকর ডেটাবেজ অপারেশন করতে পারবেন।

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

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

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

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