Stored Procedures কী এবং কেন প্রয়োজন?

Stored Procedures এবং Functions - এইচএসকিউএলডিবি (HSQLDB) - Database Tutorials

377

Stored Procedure হল একটি প্রি-কম্পাইলড SQL ব্লক যা ডেটাবেসে সংরক্ষিত থাকে এবং বিভিন্ন SQL অপারেশন সম্পাদন করতে ব্যবহৃত হয়। এটি একটি নির্দিষ্ট কাজ বা কুয়েরি একাধিক বার পুনরাবৃত্তি করতে ব্যবহৃত হতে পারে এবং ডেটাবেস সার্ভারের মধ্যে স্টোর করা থাকে, যার ফলে কোডটি এক্সিকিউট করার সময় প্রতিবার পুনরায় কনপাইল করার দরকার হয় না।

Stored Procedure এর বৈশিষ্ট্য

1. প্রি-কম্পাইলড কোড
Stored procedure একটি প্রি-কম্পাইলড SQL কোড যা ডেটাবেস সার্ভারে সংরক্ষিত থাকে। যখন এটি এক্সিকিউট করা হয়, তখন ডেটাবেস সরাসরি এই সংরক্ষিত কোডটি চালায়, ফলে কর্মক্ষমতা বৃদ্ধি পায়।

2. পুনরায় ব্যবহারযোগ্যতা
একটি stored procedure একাধিক বার ব্যবহার করা যেতে পারে, অর্থাৎ একই কাজ বা কুয়েরি একাধিক স্থানে বা অ্যাপ্লিকেশন থেকে বারবার ব্যবহৃত হতে পারে।

3. ডেটাবেস সার্ভার সাইড লজিক
Stored procedures ডেটাবেসের মধ্যে লজিক সংরক্ষণ করে, যা অ্যাপ্লিকেশন স্তরে জটিল লজিক রাখার প্রয়োজন কমিয়ে দেয়।

4. ইনপুট এবং আউটপুট প্যারামিটার
Stored procedures ইনপুট এবং আউটপুট প্যারামিটার গ্রহণ করতে পারে, যার মাধ্যমে তা বিভিন্ন আর্গুমেন্টের ভিত্তিতে কাস্টমাইজ করা যায়।

5. অ্যাটমিক অপারেশন
Stored procedures একাধিক SQL কমান্ডের একটি সিরিজ হতে পারে, যা একক অ্যাটমিক একক হিসেবে কাজ করে। অর্থাৎ, সমস্ত অপারেশন একসাথে সফল হলে তা কার্যকর হবে, অন্যথায় কোন কিছুই পরিবর্তিত হবে না (ACID বৈশিষ্ট্যসমূহ অনুসরণ করে)।


Stored Procedure কেন প্রয়োজন?

1. কর্মক্ষমতা বৃদ্ধি
Stored procedure প্রি-কম্পাইলড কোড হিসেবে কাজ করে, যার ফলে এটি অনেক দ্রুত এক্সিকিউট হয়। বারবার একই কোড চালানোর পরিবর্তে, একবার সংরক্ষিত কোডটি এক্সিকিউট করা হয়। এটি সার্ভারের লোড কমিয়ে কর্মক্ষমতা বাড়ায়।

2. নিরাপত্তা বৃদ্ধি
Stored procedure ব্যবহার করে, আপনি ডেটাবেসের মধ্যে সরাসরি অ্যাক্সেস ছাড়াই ডেটা ম্যানিপুলেশন করতে পারেন। এর মাধ্যমে আপনি অ্যাপ্লিকেশন ব্যবহারকারীদের সরাসরি SQL কোড চালানোর অনুমতি না দিয়ে, সুনির্দিষ্ট SQL কোড বা অপারেশন প্রক্রিয়া চালানোর অনুমতি দেন, যা নিরাপত্তা বাড়ায়।

3. কোড পুনঃব্যবহারযোগ্যতা
একটি stored procedure একবার লিখে বহু জায়গায় ব্যবহার করা যেতে পারে। এটি কোডের পুনরাবৃত্তি কমিয়ে দেয় এবং ডেটাবেসের লজিক কনসোলিডেট করে, যা ভবিষ্যতে কোড মেইনটেন্যান্সকে সহজ করে তোলে।

4. ডেটাবেস লজিক আলাদা করা
Stored procedure ব্যবহার করে ডেটাবেস লজিককে অ্যাপ্লিকেশন লজিক থেকে আলাদা করা যায়, যা অ্যাপ্লিকেশন ডেভেলপমেন্টে সহজতা আনে এবং ডেটাবেস ম্যানেজমেন্টের ক্ষেত্রে উন্নতি ঘটায়।

5. ট্রানজেকশন ম্যানেজমেন্ট
Stored procedures একাধিক SQL কমান্ডকে একটি একক ট্রানজেকশনে একত্রিত করতে পারে, যার ফলে কমপ্লেক্স ট্রানজেকশনগুলোকে সহজে পরিচালনা করা যায় এবং অ্যাটমিক আচরণ নিশ্চিত করা যায়। এটি ডেটাবেসের সঠিকতা এবং ইন্টিগ্রিটি বজায় রাখতে সহায়ক।

6. ডেটাবেস অপটিমাইজেশন
ডেটাবেস অপারেশন এবং লজিক একত্রে স্টোর করার মাধ্যমে, আপনি ডেটাবেসের সম্পাদনক্ষমতা (performance) বাড়াতে এবং সম্পদের ব্যবহারের (resource usage) দক্ষতা বাড়াতে সক্ষম হন।


উদাহরণ: Stored Procedure

ধরা যাক, আপনি একটি customers টেবিল থেকে নির্দিষ্ট শহরের গ্রাহকদের তথ্য বের করতে চান। আপনি এই ধরনের SQL কোড বারবার ব্যবহার করতে পারেন, তবে আপনি যদি একটি stored procedure তৈরি করেন তবে একবার কোড লিখে বারবার ব্যবহার করতে পারবেন।

Stored Procedure তৈরি করা:

CREATE PROCEDURE getCustomersByCity(IN city_name VARCHAR(100))
BEGIN
   SELECT * FROM customers WHERE city = city_name;
END;

এটি একটি getCustomersByCity নামের stored procedure তৈরি করবে, যা একটি city_name ইনপুট প্যারামিটার গ্রহণ করবে এবং সেই শহরের সমস্ত গ্রাহকের তথ্য দেখাবে।

Stored Procedure কল করা:

CALL getCustomersByCity('Dhaka');

এটি Dhaka শহরের সমস্ত গ্রাহকদের তথ্য দেখাবে।


সারাংশ

Stored procedure একটি শক্তিশালী টুল যা ডেটাবেসের মধ্যে কোড সংরক্ষণ এবং এক্সিকিউট করতে ব্যবহৃত হয়। এটি কর্মক্ষমতা বাড়ায়, কোড পুনঃব্যবহারযোগ্যতা নিশ্চিত করে, এবং নিরাপত্তা ও লজিক্যাল প্রক্রিয়া সহজ করে। যেহেতু এটি একাধিক SQL অপারেশন একসাথে করতে সক্ষম, এটি ট্রানজেকশন ম্যানেজমেন্ট এবং ডেটাবেস অপটিমাইজেশনেও সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...