আজকে আমাদের আলোচনার বিষয় – রিলেশনাল অ্যালজেবরার অতিরিক্ত অপারেশনসমূহ যা অধ্যায়-৪ এর ডাটাবেস ম্যানেজমেন্ট সিস্টেম এ অন্তর্ভুক্ত। এটি চার বছর মেয়াদি কোর্সের আলোকে লেখা হয়েছে। ডাটাবেস ম্যানেজমেন্ট সিস্টেমের বিভিন্ন ইংরেজি বই অনুসরণ করেই রচনা করা হয়েছে। ইঞ্জিনিয়ারিং বিষয়ের যে-কোন বই সম্পূর্ণরূপে বাংলা ভাষায় রচনা করা সম্ভব নয়। এজন্যে কিছু কিছু ইংরেজি শব্দকে বাংলায় অনুবাদ করা হয়নি। ফলে ছাত্রছাত্রীদের হয়ত কিছুটা অসুবিধা হতে পারে।
রিলেশনাল অ্যালজেবরার অতিরিক্ত অপারেশনসমূহ
রিলেশনাল অ্যালজেবরার অতিরিক্ত অপারেশনসমূহ
(ক) সেট ইন্টারসেকশন অপারেশন (Set-Intersection Operation): সেট ইন্টারসেকশন অপারেশনকে প্রতীক যারা প্রকাশ করা হয়। রিলেশনাল অ্যালজেব্রা কুয়েরিতে বিভিন্নভাবে ব্যবহৃত হয়ে থাকে। যেমনঃ যে সমস্ত কাস্টমারের কোন ব্যাংকে অ্যাকাউন্ট ও লোন উভয়ই আছে, তাদেরকে খুঁজে বের করার ক্ষেত্রে সেট ইন্টারসেকশন অপারেশন ব্যবহার করে কুয়েরি রচনা করা হলে তা হবে নিম্নরূপ:
π (borrower) (depositor)
customer name ∩ π customer_name
যদি এ কুয়েরিটি এর উপর নির্বাহ করা হয়, তবে যে ফলাফল পাওয়া যাবে, তা ৮.৩.৯ চিত্রে দেয়া হল:
customer name |
Alam |
Zafar |
চিত্র: সেট ইন্টারসেকশন ব্যবহার করে কুয়েরির ফলাফল
(খ) ন্যাচারাল জয়েন অপারেশন (Natural-join Operation) : ন্যাচারাল জয়েন অপারেশন হল একটা বাইনারি অপারেশন। এর সাহায্যে আমরা সুনির্দিষ্ট কিছু সিলেকশন ও একটি কার্তেসীয় প্রোডাক্টকে যুক্ত করে একটি মাত্র অপারেশনে পরিণত করতে পারি। একে জয়েন সিম্বল দ্বারা প্রকাশ করা হয়।
এখন যদি কোন ব্যাংকের ঋণগ্রহীতাদের নাম, লোন নম্বর ও লোনের পরিমাণ বের করার জন্যে ন্যাচারাল জয়েন অপারেশন ব্যবহার করে একটি কুয়েরি ডিজাইন করা হয়, তবে কুয়েরিটি হবে নিম্নরূপঃ
π
coustomer name, loan_number, amount (borrower x loan)
কুয়েরিটি বিশ্লেষণ করলে দেখা যায় যে, তা borrower এবং Loan নামক দুইটি Relation এর উপর কাজ করবে। যদি নিম্নের চিত্রের উপর এ কুয়েরিকে নির্বাহ করা হলে যে ফলাফল পাওয়া যাবে, তা ৪.১২ নং চিত্রে দেখানো হলঃ
branch name | loan number | amount |
Dhanmondi | L-500 | 500 |
Mirpur | L-600 | 400 |
Uttara | L-20 | 100 |
Farmgate | L-24 | 600 |
Tejgaon | L-50 | 800 |
চিত্র: লোন রিলেশন।
customer name | loan number |
Karim | L-500 |
Rahim | L-600 |
Jalil | L-20 |
Fatema | L-24 |
Moly | L-50 |
চিত্র: করোয়ার রিলেশন।
customer name | loan number | amount |
Karim | L-500 | 500 |
Rahim | L-600 | 400 |
Jalil | L-20 | 100 |
Fatema | L-24 | 600 |
Moly | L-50 | 800 |
চিত্রঃ ন্যাচারেল জয়েন অপারেশনের ফলাফল
(গ) ডিভিশন অপারেশন (Division Operation) : ডিভিশন অপারেশনকে চিহ্ন দ্বারা ডিনোট করা হয়ে থাকে। সাধারণত। কিছু সুনির্দিষ্ট অপারেশন সম্পন্ন করার জন্যেই ডিভিশন অপারেশনটি ব্যবহৃত হয়। উদাহরণস্বরূপ মনে করি, ঢাকা শহরে কোন একটি ব্যাংকের তিনটি শাখা আছে। এদের নাম যথাক্রমে ধানমণ্ডি, মিরপুর ও তেজগাঁও। এখন ডিভিশন অপারেশন ব্যবহার করে এমন একটি কুয়েরি লিখতে হবে, যা নির্বাহ করলে শুধুমাত্র ঐ কাস্টমারকে খুঁজে বের করবে, যার ঢাকা শহরের প্রতিটি ব্যাংক শাখায় কমপক্ষে একটি করে অ্যাকাউন্ট আছে। কুয়েরিটি হবে নিম্নরূপঃ
π
customer-name, branch-name (depositor × account)
÷ π
branch-name ( σ branch-city = “Dhaka” (branch))
যদি এ কুয়েরিটি নিম্নের ৪.১৩ নং রিলেশনের উপর নির্বাহ করা হয়, তবে তার জন্য ফলাফল পাওয়া হলঃ Fatema। কারণ নিম্নের টেবিলে একমাত্র ফাতেমা (Fatema) নামক ব্যক্তিরই Dhanmodi, Mirpur ও Tejgaon শাখায় অ্যাকাউন্ট আছে এবং অন্যান্যদের অ্যাকাউন্ট রয়েছে অন্যান্য শাখায়।
customer-name | branch-name |
Aziz | Saver |
Shima | Dhamrai |
Fatema | Dhanmondi |
Kazal | Khulna |
Fatema | Mirpiur |
Rokib | Sylhet |
Fatema | Tejgaon |
(ঘ) অ্যাসাইনমেন্ট অপারেশন (Assignment Operation) : অ্যাসাইনমেন্ট অপারেশনকে ” চিহ্ন দ্বারা প্রকাশ করা হয়। এটি কোন প্রোগ্রামিং ল্যাংগুয়েজে ব্যবহৃত অ্যাসাইনমেন্ট এর মতই কাজ করে থাকে। কোন অ্যাসাইনমেন্ট অপারেশন সাধারণত ফলাফল হিসাবে কোন রিলেশন প্রদান করে না। তবে এতে ” এর ডান পাশে অবস্থিত এক্সপ্রেশনের ফলাফলকে এর বামে অবস্থিত এক্সপ্রেশনকে রিলেশন ভেরিয়্যাবল হিসাবে অ্যাসাইন (Assign) করে থাকে।
অ্যাসাইনমেন্ট অপারেশনের সাহায্যে একটি কুয়েরিকে সিকোয়েন্সিয়াল প্রোগ্রামের মত একটি এক্সপ্রেশনের সাথে কতকগুলো অ্যাসাইনমেন্টের সিরিজ আকারে লেখা যায়। পরবর্তীতে ঐ এক্সপ্রেশনের ফলাফল প্রদর্শন করা যায়। রিলেশনাল অ্যালজেব্রা কুয়েরির ক্ষেত্রে অ্যাসাইনমেন্টকে অবশ্যই একটি টেম্পোরারি রিলেশন ভেরিয়্যাবল (Temporary Relation Veriable)-এ তৈরি করতে হবে।
আরও দেখুনঃ