Database Tutorials Declarative Mapping এবং মডেল তৈরি গাইড ও নোট

281

Declarative Mapping SQLAlchemy ORM এর একটি বিশেষ পদ্ধতি, যা Python ক্লাস এবং ডেটাবেস টেবিলের মধ্যে সম্পর্ক স্থাপন করে। এই পদ্ধতিতে আমরা ডেটাবেস টেবিলের কাঠামো Python ক্লাসের মাধ্যমে মডেল করি, এবং SQLAlchemy আমাদের ক্লাসকে ডেটাবেসের টেবিলের সাথে ম্যাপ করে। এটি ORM ব্যবহারের অন্যতম সুবিধা, কারণ এটি ডেটাবেসের সাথে সম্পর্কিত কোড লেখাকে সহজ এবং পরিষ্কার করে তোলে।

SQLAlchemy তে Declarative Base ব্যবহার করে ডেটাবেস টেবিল এবং Python ক্লাসের মধ্যে একটি সহজ এবং কার্যকর ম্যাপিং তৈরি করা যায়।


Declarative Mapping কী?

Declarative Mapping SQLAlchemy তে একটি পদ্ধতি, যা Python ক্লাসকে ডেটাবেস টেবিলের সাথে ম্যাপ করে। এটি SQLAlchemy ORM এর মাধ্যমে Object Relational Mapping (ORM) এর সহজ পদ্ধতি। এই পদ্ধতিতে, Python ক্লাস এবং ডেটাবেস টেবিলের কলামগুলোর মধ্যে সম্পর্ক সহজভাবে স্থাপন করা যায়।


Declarative Base তৈরি করা

Declarative Mapping ব্যবহারের জন্য প্রথমে declarative_base() ফাংশনটি ব্যবহার করে একটি Base ক্লাস তৈরি করতে হয়। এই ক্লাসটি সমস্ত মডেল ক্লাসের জন্য ভিত্তি হিসেবে কাজ করে। আপনার মডেল ক্লাসগুলো এই Base ক্লাস থেকে ইনহেরিট করবে।

উদাহরণ:

from sqlalchemy.ext.declarative import declarative_base

# Declarative Base তৈরি
Base = declarative_base()

এখানে Base একটি ক্লাস, যা সমস্ত মডেল ক্লাসের জন্য মাদার ক্লাস হিসেবে কাজ করবে।


মডেল তৈরি করা

Declarative Mapping পদ্ধতি ব্যবহার করে ডেটাবেস টেবিলের জন্য মডেল তৈরি করা হয়। মডেল ক্লাসের মধ্যে আপনি টেবিলের নাম এবং কলাম সংজ্ঞা দেন। প্রতিটি ক্লাসের ক্ষেত্রে একটি টেবিল এবং তার কলাম ডিফাইন করা হয়।

উদাহরণ:

from sqlalchemy import Column, Integer, String

# User মডেল তৈরি
class User(Base):
    __tablename__ = 'users'  # টেবিলের নাম
    id = Column(Integer, primary_key=True)  # প্রাথমিক কী
    name = Column(String)
    age = Column(Integer)

এখানে User একটি Python ক্লাস যা users টেবিলের প্রতিনিধিত্ব করছে। id, name, এবং age কলামগুলো এই টেবিলের ক্ষেত্রগুলো।


মডেল ব্যবহার করে টেবিল তৈরি করা

ডেটাবেসে টেবিল তৈরি করার জন্য Base.metadata.create_all() মেথড ব্যবহার করা হয়। এটি সমস্ত মডেল ক্লাসের জন্য টেবিলগুলো ডেটাবেসে তৈরি করে।

উদাহরণ:

from sqlalchemy import create_engine

# ডেটাবেস ইঞ্জিন তৈরি
engine = create_engine('sqlite:///example.db', echo=True)

# টেবিল তৈরি
Base.metadata.create_all(engine)

এখানে, create_all(engine) মেথডটি User মডেলের ভিত্তিতে ডেটাবেসে টেবিল তৈরি করবে।


মডেল ব্যবহার করে ডেটা ম্যানিপুলেশন

Declarative Mapping ব্যবহার করে তৈরি করা মডেল ক্লাসের মাধ্যমে ডেটাবেসে CRUD (Create, Read, Update, Delete) অপারেশন করা সহজ। এখানে Session ব্যবহার করে ডেটা ইনসার্ট, আপডেট এবং রিড করা হয়।

উদাহরণ:

from sqlalchemy.orm import sessionmaker

# সেশন তৈরি
Session = sessionmaker(bind=engine)
session = Session()

# নতুন ইউজার ইনসার্ট
new_user = User(name="Alice", age=25)
session.add(new_user)
session.commit()  # ডেটাবেসে সেভ

# ডেটা রিড করা
users = session.query(User).all()
for user in users:
    print(user.name, user.age)

# সেশন বন্ধ করা
session.close()

এখানে, session.add(new_user) ব্যবহার করে নতুন ইউজার ইনসার্ট করা হয়েছে এবং session.query(User).all() ব্যবহার করে সমস্ত ইউজার রিড করা হয়েছে।


Declarative Mapping এর সুবিধা

  • সহজ এবং পরিষ্কার কোড: Declarative Mapping ব্যবহারে মডেল ক্লাসের মাধ্যমে ডেটাবেসের কাঠামো সহজে নির্ধারণ করা যায়।
  • ওবজেক্ট-ওরিয়েন্টেড পদ্ধতি: Python অবজেক্ট ব্যবহার করে ডেটাবেসের সাথে কাজ করা সম্ভব হয়, যা ডেভেলপারদের জন্য খুবই সুবিধাজনক।
  • ডেটাবেস পরিবর্তনের সহজ সমাধান: ডেটাবেস স্কিমায় পরিবর্তন করার জন্য ক্লাসের মধ্যে পরিবর্তন করলেই হয়ে যায়, এতে কোড লেখা সহজ হয়ে যায়।

সারাংশ

Declarative Mapping SQLAlchemy ORM এর মাধ্যমে ডেটাবেস টেবিল এবং Python ক্লাসের মধ্যে একটি কার্যকর সম্পর্ক স্থাপন করে। declarative_base() ফাংশন ব্যবহার করে Base ক্লাস তৈরি করা হয়, যা থেকে সব মডেল ক্লাস ইনহেরিট করে। এর মাধ্যমে আপনি ডেটাবেসের টেবিল, কলাম, এবং সম্পর্ক মডেল করতে পারবেন এবং সরাসরি Python অবজেক্ট ব্যবহার করে ডেটাবেস ম্যানিপুলেশন করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...