ভূমিকা
অবজেক্ট-রিলেশনাল ম্যাপিং (ওআরএম) এমন একটি প্রযুক্তি যা আপনাকে কোনও অবজেক্ট-ওরিয়েন্টড দৃষ্টান্ত ব্যবহার করে একটি ডাটাবেস থেকে ডেটা জিজ্ঞাসা করতে এবং ম্যানিপুলেট করতে দেয়। ওআরএম সম্পর্কে কথা বলার সময়, বেশিরভাগ লোক একটি লাইব্রেরির কথা উল্লেখ করছেন যা অবজেক্ট-রিলেশনাল ম্যাপিং কৌশলটি প্রয়োগ করে, তাই "একটি ওআরএম" শব্দবন্ধটি।
একটি ওআরএম লাইব্রেরি হ'ল একটি সম্পূর্ণ সাধারণ লাইব্রেরি যা আপনার পছন্দের ভাষায় লিখিত যা ডেটা ম্যানিপুলেট করার জন্য প্রয়োজনীয় কোডটি encapsulates, যাতে আপনি আর এসকিউএল ব্যবহার করবেন না; আপনি যে ভাষাটি ব্যবহার করছেন তেমন কোনও বস্তুর সাথে আপনি সরাসরি ইন্টারঅ্যাক্ট করেন।
উদাহরণস্বরূপ, এখানে ছদ্ম ভাষা সহ সম্পূর্ণ কল্পিত ঘটনা:
আপনার একটি বইয়ের ক্লাস রয়েছে, আপনি লেখক যে সমস্ত বই "লিনাস" সেগুলি পুনরুদ্ধার করতে চান। ম্যানুয়ালি, আপনি এরকম কিছু করবেন:
book_list = new List();
sql = "SELECT book FROM library WHERE author = 'Linus'";
data = query(sql); // I over simplify ...
while (row = data.next())
{
book = new Book();
book.setAuthor(row.get('author');
book_list.add(book);
}
একটি ওআরএম লাইব্রেরি সহ, এটি দেখতে এরকম হবে:
book_list = BookTable.query(author="Linus");
মেকানিকাল অংশটি ORM গ্রন্থাগারের মাধ্যমে স্বয়ংক্রিয়ভাবে যত্ন নেওয়া হয়।
সুবিধা - অসুবিধা
ORM ব্যবহার করা অনেক সময় সাশ্রয় করে কারণ:
- DRY : আপনি কেবলমাত্র এক জায়গায় আপনার ডেটা মডেলটি লিখেছেন এবং কোডটি আপডেট করা, বজায় রাখা এবং পুনরায় ব্যবহার করা সহজ।
- ডাটাবেস হ্যান্ডলিং থেকে আই 18 এন পর্যন্ত প্রচুর স্টাফ স্বয়ংক্রিয়ভাবে সম্পন্ন হয় ।
- এটি আপনাকে এমভিসি কোডটি লিখতে বাধ্য করে , যা শেষ পর্যন্ত আপনার কোডটিকে একটু পরিষ্কার করে তোলে।
- আপনাকে দুর্বল-গঠিত এসকিউএল লিখতে হবে না (বেশিরভাগ ওয়েব প্রোগ্রামাররা এটিকে সত্যই স্তন্যপান করে, কারণ এসকিউএলকে একটি "সাব" ভাষার মতো আচরণ করা হয়, যখন বাস্তবে এটি খুব শক্তিশালী এবং জটিল)।
- sanitizing; প্রস্তুত বিবৃতি বা লেনদেনের ব্যবহার কোনও পদ্ধতি কল করার মতোই সহজ।
একটি ORM গ্রন্থাগার ব্যবহার করা আরও নমনীয় কারণ:
- এটি আপনার কোডিংয়ের প্রাকৃতিক উপায়ে ফিট করে (এটি আপনার ভাষা!)
- এটি ডিবি সিস্টেমকে বিমূর্ত করে তোলে, তাই আপনি যখনই চান এটি পরিবর্তন করতে পারেন।
- মডেলটি দুর্বলভাবে অ্যাপ্লিকেশনটির বাকি অংশে আবদ্ধ, যাতে আপনি এটিকে পরিবর্তন করতে বা অন্য কোথাও ব্যবহার করতে পারেন।
- এটি আপনাকে মাথা ব্যাথা ছাড়াই ডেটা উত্তরাধিকারের মতো OOP ধার্মিকতা ব্যবহার করতে দেয়।
তবে ওআরএম একটি ব্যথা হতে পারে:
- আপনাকে এটি শিখতে হবে এবং ওআরএম লাইব্রেরিগুলি হালকা ওজনের সরঞ্জাম নয়;
- আপনি এটি সেট আপ করতে হবে। একই সমস্যা.
- পারফরম্যান্স স্বাভাবিক প্রশ্নের জন্য ঠিক আছে, তবে একটি এসকিউএল মাস্টার বড় প্রকল্পগুলির জন্য তার নিজের এসকিউএল দিয়ে সর্বদা আরও ভাল করবে।
- এটি ডিবি বিমূর্ত করে। আপনি যদি দৃশ্যের পিছনে কী ঘটছেন তা জানেন তবে এটি ঠিক আছে, তবে এটি নতুন প্রোগ্রামারদের জন্য একটি ফাঁদ যা খুব লোভী বক্তব্য লিখতে পারে যেমন একটি
for
লুপে ভারী আঘাতের মতো ।
কীভাবে ওআরএম সম্পর্কে শিখব?
ভাল, একটি ব্যবহার করুন। আপনি যে কোনও ওআরএম লাইব্রেরি চয়ন করেন, তারা সকলেই একই নীতি ব্যবহার করে। এখানে প্রায় প্রচুর ওআরএম লাইব্রেরি রয়েছে:
আপনি যদি ওয়েব প্রোগ্রামিংয়ে কোনও ওআরএম লাইব্রেরি চেষ্টা করতে চান তবে পুরো ফ্রেমওয়ার্ক স্ট্যাকের মতো ব্যবহার করা ভাল:
- সিমফনি (পিএইচপি, প্রপেল বা মতবাদ ব্যবহার করে)।
- জ্যাঙ্গো (পাইথন, একটি অভ্যন্তরীণ ওআরএম ব্যবহার করে)।
আপনি নিজের কিছু শেখার চেষ্টা না করা হলে নিজের নিজের ORM লেখার চেষ্টা করবেন না। এটি কাজের একটি বিশাল অংশ, এবং পুরানোগুলি নির্ভরযোগ্য হওয়ার আগে তাদের অনেক সময় এবং কাজ করে।