ট্রানজাকশন কন্ট্রোল (COMMIT এবং ROLLBACK)

Database Tutorials - অ্যাপাচি ডার্বি (Apache Derby) ডেটাবেজ ট্রানজাকশন এবং সমালোচনা |
187
187

ট্রানজেকশন কন্ট্রোল হল SQL-এর একটি গুরুত্বপূর্ণ ধারণা, যা ডেটাবেসে একাধিক অপারেশনকে একটি একক ইউনিট হিসেবে পরিচালনা করতে সাহায্য করে। ট্রানজেকশন নিশ্চিত করে যে ডেটাবেসে করা পরিবর্তনগুলো অ্যাটমিক (atomic), নিরাপদ এবং স্বতন্ত্র থাকবে।

COMMIT এবং ROLLBACK হল ট্রানজেকশন কন্ট্রোলের দুটি মূল উপাদান, যা ডেটাবেসে পরিবর্তন সংরক্ষণ (commit) অথবা বাতিল (rollback) করতে ব্যবহৃত হয়।


১. COMMIT

COMMIT কমান্ডটি ব্যবহার করা হয় যখন আপনি একটি ট্রানজেকশনের মধ্যে করা সব অপারেশন সফলভাবে শেষ করেছেন এবং সেই পরিবর্তনগুলো ডেটাবেসে স্থায়ী করতে চান।

COMMIT এর কার্যকলাপ:

  • COMMIT একটি ট্রানজেকশন শেষ করে এবং সমস্ত পরিবর্তন স্থায়ীভাবে ডেটাবেসে সংরক্ষণ করে।
  • একবার COMMIT করা হলে, সেই পরিবর্তনগুলি আর ফিরিয়ে নেয়া (rollback) সম্ভব হয় না।
  • COMMIT সাধারণত ব্যবহৃত হয় যখন আপনি নিশ্চিত হন যে ট্রানজেকশনের মধ্যে করা সমস্ত অপারেশন সঠিক এবং সফল।

উদাহরণ:

-- ট্রানজেকশন শুরু
START TRANSACTION;

-- ডেটা ইনসার্ট করা
INSERT INTO employee (id, name, age) VALUES (1, 'John Doe', 30);

-- ট্রানজেকশন কমিট করা
COMMIT;

এই কোডে:

  • START TRANSACTION দ্বারা ট্রানজেকশন শুরু হয়েছে।
  • INSERT অপারেশনটি সম্পন্ন করার পর, COMMIT কমান্ডটি ট্রানজেকশনকে শেষ করে এবং পরিবর্তনগুলো ডেটাবেসে স্থায়ী করে।

২. ROLLBACK

ROLLBACK কমান্ডটি ব্যবহার করা হয় যখন আপনি ট্রানজেকশনের মধ্যে করা অপারেশন বাতিল করতে চান, অর্থাৎ, পরিবর্তনগুলো ডেটাবেসে ফিরিয়ে নেওয়া (undo) হবে।

ROLLBACK এর কার্যকলাপ:

  • ROLLBACK কমান্ডটি ব্যবহার করার মাধ্যমে ট্রানজেকশনের মধ্যে করা সমস্ত অপারেশন রদ করা হয় এবং ডেটাবেস আগের অবস্থায় ফিরে যায়।
  • এটি সাধারণত ব্যবহৃত হয় যখন একটি ট্রানজেকশন সম্পন্ন হওয়ার পর সেখানে কোনো ত্রুটি বা ভুল থাকে, এবং আপনি সমস্ত পরিবর্তন বাতিল করতে চান।

উদাহরণ:

-- ট্রানজেকশন শুরু
START TRANSACTION;

-- ডেটা ইনসার্ট করা
INSERT INTO employee (id, name, age) VALUES (2, 'Jane Smith', 25);

-- ত্রুটি ঘটলে ট্রানজেকশন রোলব্যাক করা
ROLLBACK;

এই কোডে:

  • START TRANSACTION দ্বারা ট্রানজেকশন শুরু হয়েছে।
  • INSERT অপারেশনটি করা হয়েছে, তবে তার পরে ROLLBACK কমান্ডটি দিয়ে সমস্ত পরিবর্তন বাতিল করা হয়েছে।

৩. COMMIT এবং ROLLBACK এর মধ্যে পার্থক্য

কমান্ডকার্যকলাপ
COMMITসমস্ত পরিবর্তন স্থায়ীভাবে ডেটাবেসে সংরক্ষণ করে।
ROLLBACKসমস্ত পরিবর্তন বাতিল করে এবং ডেটাবেসকে পূর্বাবস্থায় ফিরিয়ে নিয়ে যায়।

৪. ট্রানজেকশন ব্যবহারের উদাহরণ (JDBC)

JDBC ব্যবহার করে ডেটাবেসে COMMIT এবং ROLLBACK কিভাবে করা হয় তা নিচে একটি উদাহরণ দিয়ে দেখানো হলো:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.SQLException;

public class TransactionExample {
    public static void main(String[] args) {
        String url = "jdbc:derby:myDB;create=true";  // ডেটাবেসের URL
        try (Connection conn = DriverManager.getConnection(url);
             Statement stmt = conn.createStatement()) {

            // ট্রানজেকশন শুরু
            conn.setAutoCommit(false);  // Auto-commit বন্ধ

            // ডেটা ইনসার্ট করা
            stmt.executeUpdate("INSERT INTO employee (id, name, age) VALUES (3, 'David White', 40)");

            // যদি কোনো সমস্যা না হয়, তাহলে COMMIT করা
            conn.commit();  // ট্রানজেকশন কমিট করা

            System.out.println("Data inserted and committed successfully.");

        } catch (SQLException e) {
            // কোনো সমস্যা হলে ROLLBACK করা
            try {
                conn.rollback();  // ট্রানজেকশন রোলব্যাক করা
                System.out.println("Transaction rolled back due to error.");
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }
    }
}

এই কোডে:

  • setAutoCommit(false) দ্বারা auto-commit বন্ধ করা হয়েছে, যাতে আমরা স্বয়ংক্রিয়ভাবে COMMIT না করি।
  • commit() মেথড ব্যবহার করে যদি সবকিছু সঠিক থাকে, তাহলে পরিবর্তন স্থায়ী করা হয়।
  • যদি কোনো SQLException ঘটে, তবে rollback() ব্যবহার করে সমস্ত পরিবর্তন বাতিল করা হয়।

সারাংশ

  • COMMIT এবং ROLLBACK হল ট্রানজেকশন কন্ট্রোলের দুটি গুরুত্বপূর্ণ উপাদান।
    • COMMIT ব্যবহার করে ডেটাবেসে করা পরিবর্তনগুলো স্থায়ী করা হয়।
    • ROLLBACK ব্যবহার করে সমস্ত পরিবর্তন বাতিল করা হয় এবং ডেটাবেস পূর্বাবস্থায় ফিরে আসে।
  • এই দুটি কমান্ড ডেটাবেসে নির্ভরযোগ্য এবং অ্যাটমিক অপারেশন নিশ্চিত করতে সাহায্য করে, যেখানে ডেটাবেসের কোনও ভুল অপারেশন বা ত্রুটি ঘটলে পূর্বাবস্থায় ফিরে যাওয়ার সুবিধা থাকে।
common.content_added_by
টপ রেটেড অ্যাপ

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

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

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