PL/SQL Object Types কি?

Database Tutorials - পিএল/এসকিউএল (PL/SQL) - PL/SQL Object Types এবং Object-Oriented Features
251

PL/SQL Object Types হল এক ধরনের ডেটা টাইপ যা অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ধারণাকে সমর্থন করে। এই ধরনের ডেটা টাইপ ব্যবহার করে আপনি কাস্টম ডেটা স্ট্রাকচার তৈরি করতে পারেন, যা Attributes এবং Methods ধারণ করতে পারে। এটি আপনাকে একটি অবজেক্টের মতো ডেটা এবং ফাংশনালিটি সংরক্ষণ এবং পরিচালনা করার সুযোগ দেয়।

এটি Object-Oriented Programming (OOP) এর ধারণাকে PL/SQL-এ অন্তর্ভুক্ত করে, যেখানে আপনি একাধিক অ্যাট্রিবিউট ও কার্যকারিতা (Methods) সহ একত্রিত ডেটা ধারণ করতে পারেন।

PL/SQL Object Types ব্যবহারের মাধ্যমে আপনি ডেটাবেসে একটি বাস্তববিশ্বের অবজেক্টের প্রতিনিধিত্ব করতে পারেন এবং সেই অনুযায়ী কোড লেখার সময় একটি ক্লাস বা অবজেক্টের মতো কাজ করতে পারেন।


PL/SQL Object Types এর উপাদানসমূহ:

  1. Attributes: অবজেক্টের ডেটা অংশ। এটি ঐ অবজেক্টের বৈশিষ্ট্য এবং স্টেট।
  2. Methods: অবজেক্টের কর্ম, যা অ্যাট্রিবিউটগুলোর উপর কাজ করে।

Object Type তৈরি করার Syntax:

PL/SQL-এ একটি Object Type দুটি প্রধান অংশে বিভক্ত:

  1. Object Type Specification: এটি অবজেক্ট টাইপের স্কিমা ঘোষণা করে, যেখানে তার অ্যাট্রিবিউট এবং মেথডের তালিকা থাকে।
  2. Object Type Body: এটি অবজেক্ট টাইপের শরীর, যেখানে মেথডগুলোর বাস্তবায়ন করা হয়।

Syntax:

-- 1. Object Type Specification (ওবজেক্ট টাইপের ঘোষণা)
CREATE OR REPLACE TYPE <object_type_name> AS OBJECT (
   attribute1 <data_type>,
   attribute2 <data_type>,
   ...
   MEMBER FUNCTION <function_name> RETURN <data_type> 
);

-- 2. Object Type Body (ওবজেক্ট টাইপের শরীর)
CREATE OR REPLACE TYPE BODY <object_type_name> AS
   MEMBER FUNCTION <function_name> RETURN <data_type> IS
   BEGIN
      -- function logic
   END <function_name>;
END;

PL/SQL Object Types এর উদাহরণ:

1. Object Type Declaration:

ধরা যাক, আমরা একটি Employee নামক অবজেক্ট টাইপ তৈরি করতে চাই, যার দুটি অ্যাট্রিবিউট হবে: emp_id এবং emp_name

-- Object Type Declaration
CREATE OR REPLACE TYPE Employee AS OBJECT (
   emp_id   NUMBER,
   emp_name VARCHAR2(50)
);

এখানে, আমরা একটি Employee নামক অবজেক্ট টাইপ ঘোষণা করেছি, যার দুটি অ্যাট্রিবিউট রয়েছে: emp_id এবং emp_name

2. Object Type Body:

এখন, আমরা Employee অবজেক্ট টাইপের জন্য একটি মেথড তৈরি করি, যা কর্মচারীর নামের দৈর্ঘ্য ফেরত দেবে।

-- Object Type Body
CREATE OR REPLACE TYPE BODY Employee AS
   MEMBER FUNCTION get_name_length RETURN NUMBER IS
   BEGIN
      RETURN LENGTH(emp_name);
   END get_name_length;
END;

এখানে, get_name_length মেথড emp_name এর দৈর্ঘ্য ফেরত দিবে।

3. Object Type ব্যবহার:

এখন, যখন একটি Employee অবজেক্ট তৈরি করতে হবে, তখন সেই অবজেক্টের অ্যাট্রিবিউট এবং মেথড ব্যবহার করা যাবে।

DECLARE
   e Employee; -- Employee টাইপের একটি অবজেক্ট
BEGIN
   -- অবজেক্টের ভ্যালু সেট করা
   e := Employee(101, 'John Doe');
   
   -- মেথড কল করা
   DBMS_OUTPUT.PUT_LINE('Employee name length: ' || e.get_name_length);
END;

এখানে, আমরা একটি Employee অবজেক্ট তৈরি করেছি এবং তার get_name_length মেথড ব্যবহার করেছি। এই কোডটি John Doe নামের দৈর্ঘ্য প্রিন্ট করবে, অর্থাৎ 8।


Object Types এর সুবিধা:

  1. Encapsulation: ডেটা এবং তার সাথে সম্পর্কিত কার্যক্রম একত্রিত করা যায়। এটা একটি অবজেক্টের মতো ডেটা স্ট্রাকচার তৈরি করতে সাহায্য করে, যার মাধ্যমে ডেটার সুরক্ষা এবং সংগঠন সহজ হয়।
  2. Code Reusability: একবার অবজেক্ট টাইপ তৈরি করলে, আপনি সহজেই সেটি পুনরায় ব্যবহার করতে পারেন।
  3. Complex Data Representation: আপনি বাস্তব বিশ্বে যেসব জটিল ডেটা ধারণ করতে চান (যেমন পণ্য, কর্মচারী, স্টুডেন্ট) তা সহজে PL/SQL অবজেক্ট টাইপ দিয়ে সংজ্ঞায়িত করতে পারেন।
  4. Method Integration: অবজেক্ট টাইপে ডেটার সাথে সম্পর্কিত কার্যক্রম (মেথড) একত্রিত করতে পারেন।

Object Types এর সীমাবদ্ধতা:

  1. Complexity: যখন আপনি অধিক জটিল অবজেক্ট টাইপ তৈরি করেন, তখন কোড কিছুটা জটিল হয়ে যেতে পারে।
  2. Performance Overhead: কিছু অবজেক্ট টাইপ বেশি জটিল হলে এর পারফরম্যান্সে প্রভাব ফেলতে পারে, বিশেষত যখন অনেক বড় ডেটা সেট নিয়ে কাজ করতে হয়।
  3. Database Storage: অবজেক্ট টাইপের ডেটা অ্যাট্রিবিউটগুলি ডেটাবেসে সংরক্ষিত হলে সেগুলোর জন্য অতিরিক্ত স্টোরেজ জায়গার প্রয়োজন হতে পারে।

Conclusion:

PL/SQL এর Object Types একটি শক্তিশালী বৈশিষ্ট্য যা আপনাকে ডেটাবেসে অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ধারণা ব্যবহার করতে সহায়তা করে। এটি ডেটা এবং কার্যকারিতাকে একত্রিত করতে, কোড পুনঃব্যবহারযোগ্য করতে, এবং বাস্তব বিশ্বের ডেটা মডেলিং করার জন্য একটি কার্যকর উপায়। তবে, তার জটিলতা এবং পারফরম্যান্স বিবেচনায় রাখতে হবে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...