ওরিয়েন্টডিবি (OrientDB) একটি মাল্টি-মডেল ডেটাবেস সিস্টেম, যা SQL-সদৃশ কুয়েরি ভাষা ব্যবহার করে ডেটাবেস পরিচালনা এবং প্রসেসিং করতে সাহায্য করে। Function এবং Stored Procedure হল দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যা ডেটাবেসের মধ্যে পুনরাবৃত্ত কাজগুলি অটোমেট করতে এবং পারফরম্যান্স উন্নত করতে ব্যবহৃত হয়।
এই দুটি বৈশিষ্ট্য ডেটাবেসের কার্যকারিতা বৃদ্ধি করতে সহায়তা করে এবং ডেটাবেস অপারেশনে কোড রিইউজেবল করতে সাহায্য করে।
Functions in OrientDB
Functions হল পূর্বনির্ধারিত বা কাস্টম ফাংশন, যা ডেটাবেসের মধ্যে নির্দিষ্ট অপারেশন সম্পাদন করতে ব্যবহৃত হয়। OrientDB তে আপনি ডেটাবেসের বিভিন্ন প্রপার্টি ও কন্ডিশনাল ফাংশন ব্যবহার করতে পারেন।
১. Built-in Functions (পূর্বনির্ধারিত ফাংশন)
OrientDB তে বিভিন্ন ধরনের বিল্ট-ইন ফাংশন রয়েছে, যা আপনাকে ডেটা ট্রান্সফরমেশন, অ্যাগ্রিগেশন এবং অন্যান্য কন্ডিশনাল অপারেশন করার সুযোগ দেয়। কিছু সাধারণ ফাংশনগুলি নিচে দেখানো হল:
ক. UPPER ফাংশন:
এটি একটি স্ট্রিংকে বড় হাতের অক্ষরে রূপান্তর করে।
SELECT UPPER(name) FROM Person WHERE name = 'Alice'
এটি Alice নামের স্ট্রিংকে ALICE-এ রূপান্তর করবে।
খ. LOWER ফাংশন:
এটি একটি স্ট্রিংকে ছোট হাতের অক্ষরে রূপান্তর করে।
SELECT LOWER(name) FROM Person WHERE name = 'Alice'
এটি Alice নামকে alice-এ রূপান্তর করবে।
গ. CONCAT ফাংশন:
এটি দুটি বা তার বেশি স্ট্রিং একত্রিত (concat) করে।
SELECT CONCAT(name, ' ', surname) AS full_name FROM Person
এটি Person ক্লাসের name এবং surname প্রপার্টি একত্রিত করে একটি নতুন full_name তৈরি করবে।
ঘ. SUM ফাংশন:
এই ফাংশনটি একটি নির্দিষ্ট কলামের মান যোগফল হিসাব করে।
SELECT SUM(amount) FROM Transaction WHERE type = 'Purchase'
এটি Transaction ক্লাসে Purchase ধরনের সকল লেনদেনের পরিমাণ যোগফল দিবে।
Stored Procedures in OrientDB
Stored Procedures হল পূর্বনির্ধারিত বা কাস্টম কোড ব্লক যা ডেটাবেসের মধ্যে নির্দিষ্ট কার্যক্রম সম্পাদন করতে ব্যবহৃত হয়। এগুলি সাধারণত জটিল কার্যক্রম সম্পাদন করতে, একাধিক স্টেপে ডেটা প্রক্রিয়া করার জন্য ব্যবহার করা হয়। Stored Procedure-এ আপনি কোডিং লজিক সংরক্ষণ করতে পারেন এবং পুনরায় ব্যবহার করতে পারেন।
১. Stored Procedure তৈরি করা
ওরিয়েন্টডিবিতে Stored Procedure তৈরি করতে, CREATE PROCEDURE কমান্ড ব্যবহার করতে হয়।
উদাহরণ: একটি কাস্টম Stored Procedure তৈরি করা
CREATE PROCEDURE addNewPerson(name STRING, age INT) {
BEGIN
CREATE VERTEX Person SET name = :name, age = :age;
END;
}
এটি একটি addNewPerson নামক Stored Procedure তৈরি করবে, যা একটি নতুন Person ভেরটেক্স (নোড) তৈরি করবে, যেখানে name এবং age প্রপার্টি ইনপুট হিসেবে নেওয়া হবে।
২. Stored Procedure কল করা
একবার একটি Stored Procedure তৈরি হয়ে গেলে, আপনি সেটি ডেটাবেসে কল করতে পারেন। উদাহরণস্বরূপ, addNewPerson ফাংশনটি কল করতে:
EXECUTE addNewPerson('John', 35)
এটি Person ক্লাসে একটি নতুন নোড তৈরি করবে, যার name হবে John এবং age হবে 35।
৩. Stored Procedure তে Return Value ব্যবহার করা
Stored Procedure তে আপনি ফাংশনালিটি ফিরিয়ে দেওয়ার জন্য RETURN স্টেটমেন্টও ব্যবহার করতে পারেন।
CREATE PROCEDURE getPersonByAge(age INT) {
BEGIN
RETURN SELECT * FROM Person WHERE age = :age;
END;
}
এটি একটি Stored Procedure তৈরি করবে, যা age অনুসারে Person ক্লাস থেকে সকল রেকর্ড ফেরত দিবে।
Stored Procedure কল করা:
EXECUTE getPersonByAge(30)
এটি age = 30 এর সমান Person নোডের সব তথ্য ফেরত দিবে।
৪. Stored Procedure তে If-Else লজিক
Stored Procedure-এ আপনি if-else লজিকও ব্যবহার করতে পারেন।
CREATE PROCEDURE checkPersonAge(age INT) {
BEGIN
IF age > 18 THEN
RETURN 'Adult';
ELSE
RETURN 'Minor';
END IF;
END;
}
এটি একটি Stored Procedure তৈরি করবে, যা age এর মান অনুযায়ী Adult বা Minor রিটার্ন করবে।
Stored Procedure কল করা:
EXECUTE checkPersonAge(25)
এটি Adult ফেরত দিবে, কারণ age ১৮ এর বেশি।
Performance Considerations with Functions and Stored Procedures
যখন Function বা Stored Procedure ব্যবহার করবেন, তখন কিছু পারফরম্যান্স বিষয়ক দিকও বিবেচনা করা উচিত:
- Indexing: ফাংশন বা স্টোরড প্রসিডিউর যখন ইন্ডেক্সড ফিল্ডের উপর কাজ করবে, তখন পারফরম্যান্স আরও দ্রুত হবে।
- Complexity: জটিল লজিক বা ফাংশন ব্যবহারের সময়, কাজটি পারফরম্যান্সে প্রভাব ফেলতে পারে। সেক্ষেত্রে, কোড অপটিমাইজ করা গুরুত্বপূর্ণ।
- Batch Processing: যদি আপনি বহু ডেটা একসাথে প্রসেস করতে চান, তবে ব্যাচ প্রসেসিং ব্যবহার করা উচিত, যা একাধিক ইনসার্ট/আপডেট একসাথে সম্পাদন করে।
সারাংশ
Functions এবং Stored Procedures ওরিয়েন্টডিবিতে ডেটাবেস কার্যক্রমকে আরও কার্যকরী এবং পুনঃব্যবহারযোগ্য করতে সাহায্য করে। Functions সাধারণত একক অপারেশন সম্পাদন করে, যেমন ডেটা ট্রান্সফরমেশন এবং অ্যাগ্রিগেশন, এবং Stored Procedures জটিল অপারেশন সম্পাদন করতে পারে, যেখানে একাধিক স্টেপের মাধ্যমে ডেটা ম্যানিপুলেশন করা হয়। এদের ব্যবহার করার মাধ্যমে আপনি ডেটাবেসের পারফরম্যান্স বৃদ্ধি করতে পারেন এবং কোডের রিইউজেবিলিটি নিশ্চিত করতে পারেন।
Read more