PL/SQL-এ Object-Oriented Programming (OOP) ধারণা কিছুটা সীমিত আকারে ব্যবহার করা যায়, যেখানে আমরা Object Types, Methods, এবং Constructors তৈরি করতে পারি। PL/SQL-এ Object-Oriented PL/SQL একটি শক্তিশালী উপায় হতে পারে যখন আপনি ডেটাবেসে অবজেক্ট ভিত্তিক পদ্ধতিতে ডেটা পরিচালনা করতে চান।
PL/SQL-এ Object-Oriented Programming এর মাধ্যমে আপনি বিভিন্ন ধরনের Objects (অবজেক্ট টাইপ) তৈরি করতে পারেন, যা ডেটা এবং তার সাথে সম্পর্কিত কার্যক্রম (Methods) সংরক্ষণ করে। এর মাধ্যমে আপনি ডেটাবেসে অবজেক্টের মতো কাজ করতে পারবেন।
PL/SQL Object Types:
PL/SQL Object Types দুটি অংশে বিভক্ত হয়:
- Specification (Specification Section): এখানে Object Type এর বৈশিষ্ট্য এবং মেথডের ঘোষণা করা হয়।
- Body (Body Section): এখানে Object Type এর কার্যকরী মেথড এবং ফাংশনগুলির বাস্তবায়ন থাকে।
Object Type Definition (Specification Section):
-- Object type definition
CREATE OR REPLACE TYPE Employee AS OBJECT (
emp_id NUMBER,
emp_name VARCHAR2(50),
emp_salary NUMBER,
-- Constructor to initialize the object
CONSTRUCTOR FUNCTION Employee(p_emp_id NUMBER, p_emp_name VARCHAR2, p_emp_salary NUMBER)
RETURN SELF AS RESULT,
-- Method to display employee information
MEMBER FUNCTION display_info RETURN VARCHAR2
);
Object Type Body (Body Section):
-- Object type body definition
CREATE OR REPLACE TYPE BODY Employee AS
-- Constructor to initialize Employee object
CONSTRUCTOR FUNCTION Employee(p_emp_id NUMBER, p_emp_name VARCHAR2, p_emp_salary NUMBER)
RETURN SELF AS RESULT IS
BEGIN
SELF.emp_id := p_emp_id;
SELF.emp_name := p_emp_name;
SELF.emp_salary := p_emp_salary;
RETURN;
END Employee;
-- Method to display employee information
MEMBER FUNCTION display_info RETURN VARCHAR2 IS
BEGIN
RETURN 'Employee Name: ' || SELF.emp_name || ', Salary: ' || SELF.emp_salary;
END display_info;
END Employee;
Object-Oriented PL/SQL ব্যবহার:
PL/SQL-এ Object-Oriented ধারণা ব্যবহার করার জন্য প্রথমে আপনাকে একটি Object Type তৈরি করতে হবে। তারপর সেই Object Type এর Constructor এবং Methods ব্যবহার করে আপনাকে ডেটা কাজ করতে হবে।
Object-ইনস্ট্যান্স তৈরি এবং Method ব্যবহার করা:
DECLARE
-- Declare an instance of the Employee object
emp1 Employee;
emp_info VARCHAR2(100);
BEGIN
-- Creating an instance of the Employee object using the constructor
emp1 := Employee(101, 'John Doe', 50000);
-- Calling the display_info method to fetch employee information
emp_info := emp1.display_info;
-- Displaying employee information
DBMS_OUTPUT.PUT_LINE(emp_info);
END;
এখানে:
Employeeএকটি Object Type, যা কর্মচারী (Employee) এর তথ্য সংরক্ষণ করতে ব্যবহৃত হয়।emp1হল সেই Object এর ইনস্ট্যান্স, যাEmployeeকনস্ট্রাক্টর ফাংশনের মাধ্যমে তৈরি করা হয়েছে।emp1.display_infoমেথডটিemp1অবজেক্টের তথ্য প্রদর্শন করতে ব্যবহৃত হচ্ছে।
Output:
Employee Name: John Doe, Salary: 50000
PL/SQL Object Types এর আরও উদাহরণ:
১. Voter Object Type:
-- Create Object Type Voter
CREATE OR REPLACE TYPE Voter AS OBJECT (
voter_id NUMBER,
name VARCHAR2(50),
age NUMBER,
CONSTRUCTOR FUNCTION Voter(p_voter_id NUMBER, p_name VARCHAR2, p_age NUMBER) RETURN SELF AS RESULT,
MEMBER FUNCTION is_eligible RETURN BOOLEAN
);
Voter Object Type Body:
-- Body for the Voter object type
CREATE OR REPLACE TYPE BODY Voter AS
-- Constructor to initialize the Voter object
CONSTRUCTOR FUNCTION Voter(p_voter_id NUMBER, p_name VARCHAR2, p_age NUMBER)
RETURN SELF AS RESULT IS
BEGIN
SELF.voter_id := p_voter_id;
SELF.name := p_name;
SELF.age := p_age;
RETURN;
END Voter;
-- Method to check if the voter is eligible to vote
MEMBER FUNCTION is_eligible RETURN BOOLEAN IS
BEGIN
IF SELF.age >= 18 THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
END is_eligible;
END Voter;
Voter Object Use:
DECLARE
v1 Voter;
eligibility BOOLEAN;
BEGIN
-- Creating an instance of Voter object
v1 := Voter(1, 'Alice', 25);
-- Checking eligibility
eligibility := v1.is_eligible;
IF eligibility THEN
DBMS_OUTPUT.PUT_LINE(v1.name || ' is eligible to vote.');
ELSE
DBMS_OUTPUT.PUT_LINE(v1.name || ' is not eligible to vote.');
END IF;
END;
Output:
Alice is eligible to vote.
Object-Oriented PL/SQL এর সুবিধা:
- Encapsulation: Object-Oriented PL/SQL এ Encapsulation ধারণাটি মেনে চলে, যেখানে ডেটা (Attributes) এবং কার্যকলাপ (Methods) একত্রে সংরক্ষণ করা হয়।
- Code Reusability: একবার একটি Object Type তৈরি করার পর সেটি বিভিন্ন জায়গায় পুনরায় ব্যবহার করা যেতে পারে।
- Maintainability: Object-Oriented প্রোগ্রামিং কোড ব্যবস্থাপনাকে সহজ করে তোলে, কারণ অবজেক্ট এবং মেথডের মধ্যে সম্পর্ক পরিষ্কার থাকে।
- Extensibility: নতুন ফিচার বা মেথড যোগ করা সহজ, কারণ OOP-এ এক্সটেনশন করার ক্ষমতা থাকে।
সারাংশ:
PL/SQL Object-Oriented Programming (OOP) আপনাকে Object Types, Methods, এবং Constructors তৈরি করার সুবিধা দেয়। এর মাধ্যমে আপনি ডেটাবেসের ভিতরে অবজেক্ট-ভিত্তিক পদ্ধতিতে কাজ করতে পারেন এবং এর সাহায্যে ডেটা ম্যানিপুলেশন আরও সিস্টেমেটিক এবং কার্যকরী হয়। OOP এর সুবিধাগুলির মধ্যে Encapsulation, Code Reusability, এবং Maintainability রয়েছে, যা কোডের গঠন এবং কার্যক্ষমতা উন্নত করতে সহায়ক।
Read more