Triggers কী এবং কিভাবে কাজ করে?

Database Tutorials - ডিবি২ (DB2) DB2 Triggers এবং Events |
225
225

Triggers হল DB2 এবং অন্যান্য ডেটাবেস সিস্টেমের একটি অত্যন্ত গুরুত্বপূর্ণ বৈশিষ্ট্য, যা ডেটাবেসে নির্দিষ্ট ইভেন্টগুলোর প্রতি প্রতিক্রিয়া জানাতে ব্যবহৃত হয়। ট্রিগার হল একটি বিশেষ ধরনের স্টোরড প্রোসিডিউর যা স্বয়ংক্রিয়ভাবে চলে যখন কোনো নির্দিষ্ট শর্ত বা ইভেন্ট ঘটে, যেমন ডেটা ইনসার্ট, আপডেট, অথবা ডিলিট। ট্রিগার ব্যবহৃত হয় ডেটাবেসের অখণ্ডতা, নিরাপত্তা এবং প্রক্রিয়া নিশ্চিত করতে।


Trigger কী?

Trigger হল একটি অটোমেটিক একশন বা প্রক্রিয়া যা একটি নির্দিষ্ট ইভেন্ট ঘটলে ডেটাবেসে স্বয়ংক্রিয়ভাবে কার্যকর হয়। যখন ডেটাবেসের কোনো নির্দিষ্ট টেবিল বা কলামে ডেটা ইনসার্ট, আপডেট অথবা ডিলিট হয়, তখন ট্রিগার নির্দিষ্ট লজিক কার্যকর করতে পারে।

ট্রিগার সাধারণত এই ইভেন্টগুলোতে কাজ করে:

  • INSERT: যখন নতুন রেকর্ড টেবিলে ইনসার্ট হয়।
  • UPDATE: যখন কোনো বিদ্যমান রেকর্ডে পরিবর্তন হয়।
  • DELETE: যখন কোনো রেকর্ড টেবিল থেকে মুছে ফেলা হয়।

Trigger কিভাবে কাজ করে?

ট্রিগার যখন সক্রিয় হয়, তখন এটি পূর্বনির্ধারিত কিছু একশন (যেমন, ডেটা পরিবর্তন, লগ তৈরি, অ্যালার্ট পাঠানো ইত্যাদি) সম্পন্ন করতে পারে। ট্রিগার সাধারণত তিনটি প্রধান অংশে ভাগ করা যায়:

  1. Trigger Event: এটি হলো ইভেন্ট যা ট্রিগারটি চালু করে। এটি একটি INSERT, UPDATE, অথবা DELETE হতে পারে।
  2. Trigger Time: এটি হলো ট্রিগারটি কখন কার্যকর হবে। এটি দুইটি ধরনের হতে পারে:
    • BEFORE: ট্রিগারটি ইভেন্ট ঘটানোর আগে কার্যকর হয়।
    • AFTER: ট্রিগারটি ইভেন্ট ঘটানোর পরে কার্যকর হয়।
  3. Trigger Action: এটি হলো সেই কোড বা লজিক যা ট্রিগার চালানোর পর কার্যকর হয়। এটি SQL স্টেটমেন্ট বা স্টোরড প্রোসিডিউর হতে পারে।

DB2 এ Trigger তৈরি করা

DB2-এ ট্রিগার তৈরি করার জন্য CREATE TRIGGER কমান্ড ব্যবহার করা হয়। এটি সাধারণত একটি BEFORE বা AFTER ট্রিগার হতে পারে এবং একটি নির্দিষ্ট টেবিলের জন্য সেট করা হয়।

সিনট্যাক্স:

CREATE TRIGGER <trigger_name>
    {BEFORE|AFTER} <INSERT|UPDATE|DELETE> 
    ON <table_name>
    FOR EACH ROW
    BEGIN
        -- Trigger Action (SQL Code)
    END;

উদাহরণ:

  1. BEFORE Trigger: এখানে, আমরা একটি BEFORE INSERT Trigger তৈরি করবো যা Employees টেবিলের Salary কলামের মান ১০,০০০ এর নিচে হলে সেটি ব্লক করবে।
CREATE TRIGGER check_salary_before_insert
BEFORE INSERT ON Employees
FOR EACH ROW
BEGIN
    IF (NEW.Salary < 10000) THEN
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Salary must be greater than 10000';
    END IF;
END;

এখানে, BEFORE INSERT ট্রিগারটি Employees টেবিলে নতুন ডেটা ইনসার্ট করার আগে পরীক্ষা করবে, যদি Salary ১০,০০০ এর নিচে থাকে তবে এটি একটি কাস্টম এরর বার্তা দেবে এবং ইনসার্ট বন্ধ করবে।

  1. AFTER Trigger: এখানে, আমরা একটি AFTER UPDATE Trigger তৈরি করবো যা Employees টেবিলে Salary আপডেট করার পর একটি লগ তৈরি করবে।
CREATE TRIGGER log_salary_update
AFTER UPDATE OF Salary ON Employees
FOR EACH ROW
BEGIN
    INSERT INTO SalaryAudit (EmployeeID, OldSalary, NewSalary, ChangeDate)
    VALUES (OLD.EmployeeID, OLD.Salary, NEW.Salary, CURRENT_TIMESTAMP);
END;

এখানে, AFTER UPDATE ট্রিগারটি Employees টেবিলে Salary আপডেট করার পর SalaryAudit টেবিলে একটি লগ রেকর্ড তৈরি করবে, যেখানে OldSalary, NewSalary, এবং ChangeDate থাকবে।


Trigger এর সুবিধা এবং ব্যবহার

  1. ডেটাবেস অখণ্ডতা নিশ্চিত করা: ট্রিগার ব্যবহারের মাধ্যমে ডেটাবেসের অখণ্ডতা (integrity) রক্ষা করা যায়। যেমন, একটি ট্রিগার ব্যবহার করা যেতে পারে যাতে একটি কলামের মান নির্দিষ্ট শর্ত পূরণ করে, যেমন Salary কলামে কোন মান যদি ১০,০০০ এর নিচে হয় তবে তা অনুমোদন না করা।
  2. স্বয়ংক্রিয় প্রসেসিং: ট্রিগার সিস্টেমে স্বয়ংক্রিয় প্রক্রিয়া সম্পন্ন করতে সাহায্য করে, যেমন লগ তৈরি করা, অ্যালার্ট পাঠানো, অথবা টেবিলের মধ্যে ডেটার পরিবর্তন করা। এটি ব্যবসায়ের কার্যক্রমকে আরো কার্যকর এবং ত্রুটিহীন করে তোলে।
  3. ডেটাবেসের নিরাপত্তা বৃদ্ধি: ট্রিগার দিয়ে আপনি ডেটাবেসে অকার্যকর ডেটা প্রবেশ প্রতিরোধ করতে পারেন এবং ডেটাবেসের নিরাপত্তা বৃদ্ধি করতে পারেন।
  4. লগিং এবং অডিটিং: ডেটাবেসের পরিবর্তনগুলি ট্র্যাক করা এবং লগ তৈরি করতে ট্রিগার ব্যবহৃত হতে পারে। এটি বিশেষভাবে গুরুত্বপূর্ণ যখন আপনাকে ডেটাবেসের পরিবর্তনগুলো অডিট করতে হয়।

DB2 Trigger Limitations

  1. পারফরম্যান্স: ট্রিগার ব্যবহারের ফলে ডেটাবেসে অতিরিক্ত লোড হতে পারে, বিশেষত যদি ট্রিগারের কোড জটিল হয় অথবা অনেক ট্রানজেকশন প্রক্রিয়া করা হয়।
  2. ডিবাগিং কঠিন: ট্রিগারকে ডিবাগ করা কিছুটা কঠিন হতে পারে, কারণ এটি সাধারণত ব্যাকগ্রাউন্ডে চলে এবং এটি কিছু সমস্যা সৃষ্টির কারণ হতে পারে যা সরাসরি খুঁজে বের করা যায় না।
  3. অনেক ট্রিগার একসাথে চালানো: যদি একাধিক ট্রিগার একই টেবিলের জন্য কার্যকর হয়, তবে তাদের মধ্যে সংঘর্ষ হতে পারে। তাই সঠিকভাবে ট্রিগার ব্যবস্থাপনা করা গুরুত্বপূর্ণ।

সারসংক্ষেপ

Triggers হল DB2-এ এমন একটি উপাদান যা ডেটাবেসে নির্দিষ্ট ইভেন্ট ঘটলে স্বয়ংক্রিয়ভাবে কার্যকর হয়। এটি ডেটাবেসের অখণ্ডতা নিশ্চিত করে, স্বয়ংক্রিয়ভাবে লজিক কার্যকর করে এবং নিরাপত্তা বৃদ্ধি করতে সাহায্য করে। ট্রিগার ব্যবহারে ডেটাবেসের কার্যকারিতা বাড়ানো সম্ভব, তবে পারফরম্যান্স এবং ডিবাগিংয়ের ক্ষেত্রে কিছু সীমাবদ্ধতা থাকতে পারে।

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

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

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

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