User Defined Functions (UDF) তৈরি করা

Database Tutorials - ডিবি২ (DB2) DB2 Stored Procedures এবং Functions |
193
193

User Defined Functions (UDF) DB2-এ একটি শক্তিশালী বৈশিষ্ট্য যা ব্যবহারকারীদের তাদের নিজস্ব ফাংশন তৈরি করার সুযোগ দেয়। UDF তৈরি করে আপনি নির্দিষ্ট কাজগুলোকে পুনরায় ব্যবহারযোগ্য ফাংশনে পরিণত করতে পারেন। এর মাধ্যমে আপনি প্রোগ্রামিং লজিক এবং ক্যালকুলেশনকে আরও নমনীয় এবং শক্তিশালী করতে পারেন। DB2-এ UDF তৈরি করার জন্য SQL, C, C++, অথবা Java ব্যবহার করা যেতে পারে।


DB2 UDF কী?

User Defined Functions (UDF) হল ফাংশন যা DB2 ডেটাবেসের জন্য ব্যবহারকারী তৈরি করে এবং কাস্টম ক্যালকুলেশন, লজিকাল অপারেশন বা ডেটাবেস অপারেশন সম্পাদন করতে ব্যবহৃত হয়। UDF-এর সাহায্যে, আপনি আপনার ডেটাবেসে কাস্টম ফাংশন তৈরি করতে পারেন যা SQL কোডের মধ্যে ব্যবহার করা যায়।

UDF তৈরি করার ধাপ

DB2-এ UDF তৈরি করার জন্য আপনাকে নিচের ধাপগুলো অনুসরণ করতে হবে:


১. UDF এর ধরন নির্বাচন

DB2-এ তিন ধরনের UDF তৈরি করা যেতে পারে:

  1. Scalar Function: একটি একক মান ফেরত দেয়।
  2. Table Function: একটি টেবিল আউটপুট প্রদান করে।
  3. Aggregate Function: একটি গ্রুপের উপর গণনা বা ক্যালকুলেশন করে এবং একটি একক মান ফেরত দেয়।

২. SQL দিয়ে Scalar Function তৈরি করা

Scalar UDF হল এমন একটি ফাংশন যা একক আর্গুমেন্ট নেয় এবং একটি একক মান ফেরত দেয়।

উদাহরণ: ধরা যাক, আপনি একটি UDF তৈরি করতে চান যা দুটি সংখ্যা যোগ করবে। এর জন্য SQL ব্যবহার করে Scalar UDF তৈরি করা যাবে।

CREATE FUNCTION add_numbers (num1 INT, num2 INT)
RETURNS INT
LANGUAGE SQL
BEGIN
   RETURN num1 + num2;
END;

এটি একটি Scalar UDF যা দুটি ইনপুট প্যারামিটার (num1 এবং num2) গ্রহণ করে এবং তাদের যোগফল ফেরত দেয়।

ব্যবহার:

SELECT add_numbers(5, 10) FROM sysibm.sysdummy1;

এই কুয়েরি 5 এবং 10 যোগ করে ১৫ ফেরত দিবে।


৩. C অথবা C++ দিয়ে Scalar Function তৈরি করা

DB2-এ C বা C++ ব্যবহার করে UDF তৈরি করার জন্য আপনাকে ডেভেলপমেন্ট এনভায়রনমেন্ট সেটআপ করতে হবে। এর জন্য IBM DB2 UDF Development Kit (UDK) প্রয়োজন। এটি আপনার সিস্টেমে C বা C++ কোডে ফাংশন লেখা এবং কম্পাইল করতে সাহায্য করে।

C UDF উদাহরণ: ধরা যাক, আমরা একটি C ভাষায় ফাংশন তৈরি করতে চাই যা দুটি পূর্ণসংখ্যার গুণফল ফেরত দেবে।

#include "sqludf.h"

SQLRETURN multiply_numbers (SQLUDF_ARGS *args, SQLRETURN *ret)
{
    SQLINTEGER num1 = SQLGetUDFParam(args, 0);
    SQLINTEGER num2 = SQLGetUDFParam(args, 1);
    return num1 * num2;
}

এই কোডটি দুটি পূর্ণসংখ্যার গুণফল ফেরত দেবে। আপনি এটি কম্পাইল করে DB2-এ UDF হিসেবে রেজিস্টার করতে পারেন।


৪. Table Function তৈরি করা

Table Function একটি এমন UDF যা টেবিল আউটপুট দেয় এবং এটি সাধারণত কাস্টম ডেটা বা জটিল ডেটাবেস লজিকের জন্য ব্যবহৃত হয়।

উদাহরণ: ধরা যাক, আপনি এমন একটি UDF তৈরি করতে চান যা একটি কলামে নির্দিষ্ট মান অনুসারে ডেটা ফেরত দেয়।

CREATE FUNCTION get_employees_by_department (dept_id INT)
RETURNS TABLE (employee_id INT, first_name VARCHAR(50), last_name VARCHAR(50))
LANGUAGE SQL
BEGIN
   RETURN (SELECT employee_id, first_name, last_name 
           FROM employees
           WHERE department_id = dept_id);
END;

এটি department_id প্যারামিটার গ্রহণ করবে এবং ঐ বিভাগের কর্মচারীদের তথ্য একটি টেবিল আকারে ফেরত দেবে।

ব্যবহার:

SELECT * FROM TABLE(get_employees_by_department(10)) AS employee_list;

এটি department_id 10 এর সকল কর্মচারীর তথ্য একটি টেবিল আকারে ফেরত দেবে।


৫. Aggregate Function তৈরি করা

Aggregate Function সাধারণত গ্রুপভিত্তিক গণনা বা সারণী তৈরি করতে ব্যবহৃত হয়। এটি একাধিক রেকর্ডের উপর অপারেশন সম্পাদন করে এবং একটি একক ফলাফল দেয়।

উদাহরণ: ধরা যাক, আপনি একটি কাস্টম অ্যাগ্রিগেট ফাংশন তৈরি করতে চান যা গ্রাহকদের মধ্যে সর্বোচ্চ বেতন ফেরত দিবে।

CREATE FUNCTION max_salary (num1 INT, num2 INT)
RETURNS INT
LANGUAGE SQL
BEGIN
   IF num1 > num2 THEN
      RETURN num1;
   ELSE
      RETURN num2;
   END IF;
END;

এটি num1 এবং num2 এর মধ্যে সর্বোচ্চ মান ফেরত দিবে। এই ফাংশনটি গ্রুপের মধ্যে ব্যবহার করা যাবে।

ব্যবহার:

SELECT department_id, max_salary(MAX(salary), 0) 
FROM employees
GROUP BY department_id;

এটি প্রতিটি বিভাগের জন্য সর্বোচ্চ বেতন প্রদান করবে।


৬. UDF এর Deployment

একবার UDF তৈরি হয়ে গেলে, আপনি সেই ফাংশনটিকে ডেটাবেসে ডেপ্লয় করতে পারেন। ডেপ্লয় করার জন্য নিম্নলিখিত SQL কমান্ড ব্যবহার করা যেতে পারে:

CREATE FUNCTION function_name (parameters)
RETURNS return_type
LANGUAGE language
[DETERMINISTIC | NOT DETERMINISTIC]
[NO EXTERNAL ACTION | EXTERNAL ACTION]
[CONTAINS SQL | NO SQL]
[SQL DATA ACCESS | NO SQL DATA ACCESS]
[INLINE | NO INLINE]

৭. UDF মুছে ফেলা

যদি কোনো UDF আর প্রয়োজন না থাকে, তাহলে আপনি DROP FUNCTION কমান্ড দিয়ে ফাংশনটি মুছে ফেলতে পারেন।

উদাহরণ:

DROP FUNCTION function_name;

সারসংক্ষেপ

DB2-এ User Defined Functions (UDF) তৈরি করার মাধ্যমে আপনি ডেটাবেসের কার্যক্রম এবং ক্যালকুলেশনকে কাস্টমাইজ করতে পারেন। UDF এর মাধ্যমে আপনি scalar, table, এবং aggregate ফাংশন তৈরি করতে পারেন। SQL, C, C++, বা Java দিয়ে UDF তৈরি করা সম্ভব, এবং সেগুলো ডেটাবেসের কার্যক্ষমতা এবং নমনীয়তা বাড়াতে সাহায্য করে। DB2 UDF আপনাকে নির্দিষ্ট ডেটা অপারেশনকে পুনরায় ব্যবহারযোগ্য ফাংশনে রূপান্তরিত করতে সাহায্য করে, যা ডেটাবেসের পারফরম্যান্স এবং কার্যকারিতা উন্নত করে।

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

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

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

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