Stored Procedure (সংরক্ষিত প্রক্রিয়া) হল একটি SQL কোডের একটি সেট যা একাধিক SQL স্টেটমেন্টের সমন্বয়ে তৈরি হয় এবং এটি ডাটাবেসে সংরক্ষিত থাকে। একবার সংরক্ষিত হলে, এই কোডটি পুনরায় ব্যবহারের জন্য সহজে কল করা যেতে পারে। Stored Procedures সাধারণত ডাটাবেসের ব্যবসায়িক লজিক, জটিল কুয়েরি, এবং ডাটাবেস অপারেশনগুলিকে সহজ এবং দক্ষ করার জন্য ব্যবহৃত হয়।
SQLite তে Stored Procedures এর ধারণা নেই, কারণ এটি সাধারণত SQL Server, MySQL, বা PostgreSQL-এর মতো ডাটাবেস সিস্টেমে ব্যবহৃত হয়। SQLite একটি লাইটওয়েট ডাটাবেস সিস্টেম যা সাধারণত ছোট অ্যাপ্লিকেশন এবং এমবেডেড সিস্টেমের জন্য ব্যবহৃত হয় এবং এটি SQL প্রসেসিংয়ের জন্য প্রাথমিকভাবে ট্রানজেকশন এবং একক SQL স্টেটমেন্টের উপর নির্ভরশীল।
তবে, SQLite-এ Stored Procedures সরাসরি সমর্থিত না হলেও, কিছু সমাধান রয়েছে যা আপনি ব্যাবহার করতে পারেন, যেমন Triggers এবং Views, যা কিছু সীমাবদ্ধতার সঙ্গে Stored Procedures এর মতো কাজ করতে পারে।
১. Triggers ব্যবহার করা
SQLite-এ TRIGGER একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা কিছু নির্দিষ্ট ইভেন্টের জন্য ডেটাবেসে একটি অ্যাকশন (একটি SQL স্টেটমেন্ট) চালাতে ব্যবহৃত হয়। Triggers মূলত Stored Procedures এর মতো কাজ করতে পারে, যেখানে নির্দিষ্ট ডেটা পরিবর্তন বা অপারেশন ঘটলে স্বয়ংক্রিয়ভাবে কোড চালানো হয়।
Trigger তৈরি করা
ধরা যাক, আপনি একটি sales টেবিলের জন্য একটি ট্রিগার তৈরি করতে চান, যা বিক্রয় পরিমাণ ইনসার্ট করার সময় টেবিলের total_sales কলাম আপডেট করবে।
CREATE TRIGGER update_total_sales
AFTER INSERT ON sales
FOR EACH ROW
BEGIN
UPDATE products
SET total_sales = total_sales + NEW.amount
WHERE product_id = NEW.product_id;
END;
এটি একটি AFTER INSERT ট্রিগার, যার মানে হলো যখন sales টেবিলে নতুন একটি রেকর্ড ইনসার্ট হবে, তখন এটি স্বয়ংক্রিয়ভাবে products টেবিলের total_sales কলাম আপডেট করবে। NEW.amount ব্যবহার করা হয়েছে যেহেতু এটি নতুন রেকর্ডের মান।
Trigger ব্যবহার:
যখন sales টেবিলে নতুন ডেটা ইনসার্ট হবে, তখন এটি total_sales আপডেট করবে:
INSERT INTO sales (product_id, amount) VALUES (1, 100);
এই ট্রিগারের মাধ্যমে total_sales আপডেট হবে।
২. Views ব্যবহার করা
Views হচ্ছে একটি ভিউ বা ভ্যাচুয়াল টেবিল যা একাধিক SQL স্টেটমেন্টের ফলাফল দেখাতে ব্যবহার করা হয়। আপনি যেকোনো জটিল কুয়েরি বা ডাটা ফিল্টার করার কাজটি একটি ভিউতে রাখতে পারেন, যাতে আপনি ঐ কুয়েরিটি বারবার না লিখে শুধু ভিউটি কল করতে পারেন।
View তৈরি করা
CREATE VIEW sales_summary AS
SELECT product_id, SUM(amount) AS total_sales
FROM sales
GROUP BY product_id;
এটি sales টেবিল থেকে মোট বিক্রয় পরিমাণের একটি ভিউ তৈরি করবে, যা বিভিন্ন পণ্য অনুযায়ী total_sales দেখাবে।
View ব্যবহার করা:
SELECT * FROM sales_summary;
এটি sales_summary ভিউ থেকে ডেটা রিট্রিভ করবে এবং আপনি total_sales দেখতে পারবেন।
৩. SQLite এ Stored Procedures এর সীমাবদ্ধতা
SQLite সরাসরি Stored Procedures সমর্থন না করলেও, আপনি Triggers এবং Views এর মাধ্যমে কিছু কার্যকারিতা তৈরি করতে পারেন। তবে SQLite এর প্রধান সুবিধা হল এর সরলতা এবং লাইটওয়েট প্রকৃতি, যা ছোট অ্যাপ্লিকেশন এবং মোবাইল ডেটাবেস ব্যবহারের জন্য আদর্শ।
SQLite তে Stored Procedures সম্পূর্ণভাবে সমর্থিত না হলেও, যদি আপনি SQLite এর মাধ্যমে আরও বেশি জটিল ডাটাবেস লজিক পরিচালনা করতে চান, তবে আপনি কিছু অস্থায়ী সমাধান যেমন Triggers, Views, বা অ্যাপ্লিকেশন স্তরে কোড লেখা ব্যবহার করতে পারেন।
সারাংশ
SQLite তে Stored Procedures এর সরাসরি সমর্থন নেই, তবে আপনি Triggers এবং Views ব্যবহার করে কিছু জটিল লজিক এবং ডেটাবেস অপারেশন পরিচালনা করতে পারেন। Triggers ডেটাবেসে নির্দিষ্ট ইভেন্ট ঘটলে স্বয়ংক্রিয়ভাবে SQL অপারেশন চালাতে ব্যবহৃত হয়, এবং Views আপনাকে জটিল কুয়েরি এক্সিকিউট করার জন্য একটি পদ্ধতি প্রদান করে। SQLite এর সরলতা এবং লাইটওয়েট প্রকৃতি থাকলেও, কিছু কার্যকরী সমাধান অবধি এর ব্যবহার সম্ভব।
Read more