COMMIT, ROLLBACK এবং SAVEPOINT

Transactions in HSQLDB - এইচএসকিউএলডিবি (HSQLDB) - Database Tutorials

354

HSQLDB সহ যেকোনো রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেমে COMMIT, ROLLBACK, এবং SAVEPOINT হল গুরুত্বপূর্ণ কমান্ড, যা ট্রানজেকশন ম্যানেজমেন্টে ডেটার একতা এবং নিরাপত্তা নিশ্চিত করে। এই কমান্ডগুলো ডেটাবেসের ACID Properties (Atomicity, Consistency, Isolation, Durability) বজায় রাখার জন্য ব্যবহৃত হয়।


COMMIT

COMMIT একটি ট্রানজেকশন সম্পূর্ণ করার জন্য ব্যবহৃত হয়। এর অর্থ হল, ডেটাবেসে ট্রানজেকশনের পরিবর্তনগুলো স্থায়ীভাবে সংরক্ষণ করা।

বৈশিষ্ট্য

  • সমস্ত পরিবর্তন স্থায়ী হয়।
  • পরবর্তী সময়ে এই পরিবর্তনগুলো ROLLBACK করা সম্ভব নয়।
  • ডেটাবেসের বর্তমান অবস্থা আপডেট হয়।

উদাহরণ

একটি নতুন কর্মচারী যোগ করা:

BEGIN TRANSACTION;

INSERT INTO employees (employee_id, employee_name, dept_id)
VALUES (4, 'David', 104);

COMMIT;

ফলাফল

  • employees টেবিলে নতুন রেকর্ড যোগ হবে।
  • ডেটা স্থায়ীভাবে সংরক্ষিত হবে।

ROLLBACK

ROLLBACK একটি ট্রানজেকশনের পরিবর্তনগুলো বাতিল করতে ব্যবহৃত হয়। এটি ডেটাবেসের বর্তমান অবস্থা পূর্ববর্তী অবস্থা (যখন ট্রানজেকশন শুরু হয়েছিল) তে পুনরুদ্ধার করে।

বৈশিষ্ট্য

  • ট্রানজেকশন চলাকালীন করা পরিবর্তনগুলো বাতিল হয়।
  • ডেটাবেসের আগের অবস্থা ফিরে আসে।
  • স্থায়ী পরিবর্তনের জন্য ব্যবহৃত নয়।

উদাহরণ

একটি রেকর্ড যোগ করার পর ভুল বুঝতে পারা:

BEGIN TRANSACTION;

INSERT INTO employees (employee_id, employee_name, dept_id)
VALUES (5, 'Eva', 105);

ROLLBACK;

ফলাফল

  • employees টেবিলে কোনো নতুন রেকর্ড যোগ হবে না।
  • ডেটাবেস পূর্ববর্তী অবস্থায় ফিরে যাবে।

SAVEPOINT

SAVEPOINT ট্রানজেকশনের ভিতরে একটি নির্দিষ্ট পয়েন্ট চিহ্নিত করতে ব্যবহৃত হয়। পরবর্তী সময়ে সেই পয়েন্টে ফিরে যাওয়ার জন্য ROLLBACK TO SAVEPOINT ব্যবহার করা হয়।

বৈশিষ্ট্য

  • বড় ট্রানজেকশনকে ছোট ছোট অংশে ভাগ করে পরিচালনা করা সহজ হয়।
  • নির্দিষ্ট অংশে ফিরে গিয়ে পুনরায় কাজ করার সুযোগ দেয়।

উদাহরণ

একাধিক পরিবর্তন পরিচালনার সময় SAVEPOINT ব্যবহার:

BEGIN TRANSACTION;

INSERT INTO employees (employee_id, employee_name, dept_id)
VALUES (6, 'Fiona', 106);

SAVEPOINT savepoint1;

UPDATE employees
SET employee_name = 'Fiona Smith'
WHERE employee_id = 6;

ROLLBACK TO SAVEPOINT savepoint1;

COMMIT;

ফলাফল

  • employees টেবিলে Fiona নামে একটি নতুন রেকর্ড যোগ হবে।
  • Fiona Smith আপডেট বাতিল হবে এবং Fiona নামটি অক্ষুণ্ন থাকবে।
  • চূড়ান্ত ডেটা স্থায়ীভাবে সংরক্ষিত হবে।

COMMIT, ROLLBACK এবং SAVEPOINT এর তুলনা

বৈশিষ্ট্যCOMMITROLLBACKSAVEPOINT
কাজের ধরনপরিবর্তন স্থায়ী করেপরিবর্তন বাতিল করেনির্দিষ্ট পয়েন্টে ফিরে যাওয়া
স্থায়ী প্রভাবপরিবর্তন সংরক্ষণ করেপূর্ববর্তী অবস্থায় ফিরে যায়নির্দিষ্ট অংশে বাতিল সম্ভব
ব্যবহারক্ষেত্রট্রানজেকশন সম্পূর্ণ করতেট্রানজেকশন বাতিল করতেবড় ট্রানজেকশন নিয়ন্ত্রণে

উদাহরণ: COMMIT, ROLLBACK এবং SAVEPOINT একত্রে ব্যবহার

ধরা যাক, একটি বড় ট্রানজেকশন চালানো হচ্ছে:

BEGIN TRANSACTION;

INSERT INTO employees (employee_id, employee_name, dept_id)
VALUES (7, 'George', 107);

SAVEPOINT savepoint1;

INSERT INTO employees (employee_id, employee_name, dept_id)
VALUES (8, 'Hannah', 108);

ROLLBACK TO SAVEPOINT savepoint1;

COMMIT;

ফলাফল

  • George রেকর্ড যোগ হবে।
  • Hannah এর রেকর্ড বাতিল হবে।
  • George এর পরিবর্তন ডেটাবেসে স্থায়ী হবে।

সারাংশ

COMMIT, ROLLBACK, এবং SAVEPOINT HSQLDB-তে ট্রানজেকশন ম্যানেজমেন্টের মূলভিত্তি। এগুলো ডেটার নির্ভুলতা এবং নিরাপত্তা নিশ্চিত করে। COMMIT ব্যবহার করে ডেটা স্থায়ী করা হয়, ROLLBACK ভুল সংশোধনে সহায়তা করে, এবং SAVEPOINT বড় ট্রানজেকশনে নমনীয়তা প্রদান করে।

Content added By
Promotion

Are you sure to start over?

Loading...