Site icon Electrical Gurukul [ ইলেকট্রিকাল গুরুকুল ] GOLN

এনটিটি রিলেশনশীপ-এর কন্সট্রেইন্ট | অধ্যায়-৩ | ডাটাবেস ম্যানেজমেন্ট সিস্টেম

এনটিটি রিলেশনশীপ-এর কন্সট্রেইন্ট

আজকে আমাদের আলোচনার বিষয় – এনটিটি রিলেশনশীপ-এর কন্সট্রেইন্ট যা অধ্যায়-৩ এর ডাটাবেস ম্যানেজমেন্ট সিস্টেম এ অন্তর্ভুক্ত। এটি চার বছর মেয়াদি কোর্সের আলোকে লেখা হয়েছে। ডাটাবেস ম্যানেজমেন্ট সিস্টেমের বিভিন্ন ইংরেজি বই অনুসরণ করেই রচনা করা হয়েছে। ইঞ্জিনিয়ারিং বিষয়ের যে-কোন বই সম্পূর্ণরূপে বাংলা ভাষায় রচনা করা সম্ভব নয়। এজন্যে কিছু কিছু ইংরেজি শব্দকে বাংলায় অনুবাদ করা হয়নি। ফলে ছাত্রছাত্রীদের হয়ত কিছুটা অসুবিধা হতে পারে।

এনটিটি রিলেশনশীপ-এর কন্সট্রেইন্ট

এনটিটি রিলেশনশীপ-এর কন্সট্রেইন্ট

একটি E-R (Entity-Relationship) এন্টারপ্রাইজ স্কীমা কিছু সুনির্দিষ্ট কনস্ট্রেইন্টকে ডিফাইন করতে পারে, যা অবশ্যই ডাটাবেস কন্টেন্টের সাথে অনুরূপ হবে। এক্ষেত্রে (ক) ম্যাপিং কারডিনালিটিস্ (mapping cardinalities) এবং (খ) এঞ্জিসটেন্স ডিপেনডেনসিস (existence dependencies) হল সবচেয়ে গুরুত্বপূর্ণ দুইটি কনস্ট্রেইন্টস (constraints)। নিম্নে এদের বর্ণনা দেয়া হলঃ

(ক) ম্যাপিং কারডিনালিটিজ (mapping cardinatites)

ডাটাবেস ম্যানেজমেন্ট সিস্টেমে একটি রিলেশনশীপ সেট এর মাধ্যমে কোন একটি এনটিটি সেটের একটি এনটিটি অপর একটি এনটিটি সেটের কতগুলো এনটিটির সাথে এসোসিয়েশন সৃষ্টি করতে পারে, তা যে প্রক্রিয়ায় প্রকাশ করা হয়, সে প্রক্রিয়াকেই ম্যাপিং কারডিনালিটি বলে। ম্যাপিং কারডিনালিটি প্রধানত বাইনারি রিলেশনশীপ এর ক্ষেত্রে ব্যবহৃত হয়। যদি বাইনারি রিলেশনশীপ R. একটি এনটিটি সেট A এবং অপর একটি এনটিটি সেট B হয়, তবে নিম্নের যে কোন একটি ম্যাপিং কারডিনালিটি অবশ্যই অনুসরণ করতে হবে:

১। ওয়ান টু ওয়ান (One to one)

২। ওয়ান টু মেনি (One to many)

৩। মেনি টু ওয়ান (Many to one)

৪। মেনি টু মেনি (Many to many)

নিম্নে চিত্রসহ এদের বর্ণনা দেয়া হলঃ

১। ওয়ান টু ওয়ানঃ যখন একটি Entity set-এর একটি Entity-এর সাথে অপর Entity set-এর সর্বোচ্চ একটি Entity’ মধ্যকার সম্পর্ক স্থাপনের মাধ্যমে রিলেশনশীপ তৈরি হয়, তখন এ ধরনের রিলেশনশীপকে ওয়ান-টু-ওয়ান (One-to-one) রিলেশনশীপ বলা হয়।
যেমন-এ প্রকার ম্যাপিং কারডিনালিটির ক্ষেত্রে A-এর একটি এনটিটি সর্বোচ্চ B-এর একটি এনটিটির সাথে এসোসিয়েটেড হয় এবং B-এর একটি এনটিটি সর্বোচ্চ A-এর একটি এনটিটির সাথে এসোসিয়েটেড হয়, যা নিম্নের চিত্রে দেখানো হল:

 

চিত্রঃ ওয়ান টু ওয়ান কারডিনালিটি

 

যে কোন Information-কে ভেঙ্গে আলাদা আলাদা ডাটাবেস টেবিলে সংরক্ষণ করা হয়। তখন ডাটাবেস টেবিলগুলোর মধ্যে রিলেশনশীপ প্রতিষ্ঠা করতে One-to-one রিলেশনের প্রয়োজন হয়।

যেমন- Customer টেবিলে কাস্টমারদের নাম, আইডি নং, ঠিকানা ইত্যাদি এবং অন্য আরেকটি Loan নামক টেবিলে লোন নং এবং সর্বমোট টাকার পরিমাণ উল্লেখ আছে। এখন কোন এক কাস্টমার লোন নিয়ে উক্ত টেবিলদ্বয়ের মধ্যে ওয়ান-টু-ওয়ান রিলেশন স্থাপিত হয়।

এক্ষেত্রে Customer এবং Loan দুটি এনটিটি সেট এবং borrower রিলেশনশীপের মাধ্যমে উক্ত এনটিটি সেটের মধ্যে One- to-one রিলেশনশীপ প্রতিষ্ঠিত হয়। কেননা একজন কাস্টমারের জন্য একাধিক লোন বা একাধিক কাস্টমারের জন্য একটি লোন প্রযোজ্য হবে না। সুতরাং, সে কারণে One-to-one রিলেশনশীপে অ্যারো উভয় দিকে হবে।

 

চিত্রঃ ওয়ান-টু-ওয়ান রিলেশনশীপের E-R diagram.

 

২। ওয়ান টু মেনিঃ যখন একটি Entity set-এর একটি Entity-এর সাথে অপর Entity set-এর যে কোন সংখ্যক Entity-এর সাথে সম্পর্ক স্থাপনের মাধ্যমে একটি রিলেশন তৈরি হয়, তখন এ ধরনের রিলেশনশীপকে ওয়ান-টু-মেনি (One-to-many) রিলেশনশীপ বলা হয়।
যেমন-এ প্রকার ম্যাপিং কারডিনালিটির ক্ষেত্রে A-এর একটি এনটিটি, B-এর যে কোন সংখ্যক এনটিটি’র সাথে এবং B-এর একটি বা একাধিক এনটিটি A-এর কেবলমাত্র একটি এনটিটি’র সাথে এসোসিয়েটেড হতে পারে। নিচের চিত্রে এটি দেখানো হলঃ

 

চিত্রঃ ওয়ান টু মেনি কারডিনালিটি

 

এ ধরনের রিলেশনশীপ, ডাটাবেসে বহুল ব্যবহৃত হয়। যেমন- Customer টেবিলে কাস্টমারদের নামে, আইডি নং, ঠিকানা ইত্যাদি এবং Loan নামক টেবিলে লোন নং এবং সর্বমোট টাকার পরিমাণ উল্লেখ আছে। এখন কোন এক কাস্টমার সময়ের প্রয়োজনে। বিভিন্ন সময়ে যে কোন সংখ্যক লোন নিয়ে থাকতে পারে। আর এতে টেবিলদ্বয়ের মধ্যে ওয়ান-টু-মেনি রিলেশন স্থাপিত হয়।

এক্ষেত্রে Customer এবং Loan দু’টি Entity set এবং borrower রিলেশনশীপ, যার মাধ্যমে উক্ত এনটিটি সেট দু’টি ওয়ান-টু- মেনি রিলেশনশীপ স্থাপিত হয়। কেননা, এক্ষেত্রে একজন কাস্টমারের যে কোন সংখ্যক লোন থাকতে পারে। ওয়ান-টু-মেনি। রিলেশনশীপে অ্যারো ওয়ানের দিকে হয়ে থাকে।

 

চিত্রঃ ওয়ান-টু-মেনি রিলেশনশীপের E-R diagram.

 

৩। মেনি টু ওয়ানঃ যখন একটি Entity set-এর যে কোন সংখ্যক Entity-এর সাথে অপর Entity set-এর সর্বোচ্চ একটি Entity-এর সাথে সম্পর্ক স্থাপনের মাধ্যমে রিলেশনশীপ তৈরি হয়, তখন এ ধরনের রিলেশনশীপকে মেনি-টু-ওয়ান (Many-to One) রিলেশনশীপ বলা হয়।

যেমন-এ প্রকার ম্যাপিং কারডিনালিটি’র ক্ষেত্রে A-এর একটি বা একাধিক এনটিটি, B-এর একটি মাত্র এনটিটি-এর সাথে এবং B-এর একটি এনটিটি, A-এর যে কোন সংখ্যক এনটিটির সাথে এসোসিয়েটেড হতে পারে। নিচের চিত্রে এটি দেখানো হল:

 

চিত্রঃ মেনি টু ওয়ান কারডিনালিটি

 

এ ধরনের রিলেশনশীপও ডাটাবেসে ব্যবহৃত হয়ে থাকে। যেমন- customer এবং loan নামক দু’টি এনটিটি সেট borrower রিলেশনশীপ সেটের মাধ্যমে মেনি-টু-ওয়ান রিলেশন স্থাপিত হতে পারে। কেননা এক্ষেত্রে যেকোন সংখ্যক কাস্টমার একটি মাত্র লোন গ্রহণ করবে। অর্থাৎ, একটি লোনের বিপরীতে যে কোন সংখ্যক কাস্টমার থাকবে। মেনি টু ওয়ান রিলেশনশীপে অ্যারো ওয়ানের দিকে হবে।

 

চিত্রঃ মেনি-টু-ওয়ান রিলেশনশীপের E-R diagram.

 

৪। মেনি টু মেনিঃ যখন একটি Entity set-এর যেকোন সংখ্যক Entity অপর একটি Entity set-এর যে কোন সংখ্যক Entity-এর সাথে সম্পর্ক স্থাপনের মাধ্যমে রিলেশনশীপ তৈরি হয়, তখন এ ধরনের রিলেশনশীপকে মেনি-টু-মেনি (Many-to- many) রিলেশনশীপ বলা হয়।

যেমন- এ প্রকার ম্যাপিং কারডিনালিটির ক্ষেত্রে A-এর যে কোন সংখ্যক এনটিটি, B-এর যে কোন সংখ্যক এনটিটির সাথে এবং B-এর যে কোন সংখ্যক এনটিটি, A-এর যে কোন সংখ্যক এনটিটির সাথে এসোসিয়েটেড হতে পারে। নিচের চিত্রে এটি দেখানো হলঃ

 

চিত্রঃ মেনি টু মেনি কারডিনালিটি

 

এ ধরনের রিলেশনশীপও ডাটাবেসে ব্যবহৃত হয়। যেমন- customer এবং loan নামক দু’টি এনটিটি সেট borrower রিলেশনশীপ সেটের মাধ্যমে মেনি-টু-মেনি রিলেশন স্থাপিত হতে পারে। কেননা এক্ষেত্রে ব্যবসায়িক পার্টনারশীপে অংশগ্রহণকারী একাধিক কাস্টমার একটি লোন গ্রহণ করতে পারে, আবার একজন কাস্টমার একাধিক লোনও গ্রহণ করতে পারে। মেনি-টু-মেনি রিলেশনশীপে অ্যারো চিহ্ন কোন দিকেই হবে না।

 

চিত্র: ৩.৪৬ মেনি-টু-মেনি রিলেশনশীপের E-R diagram.

 

(খ) এগজিস্টেন্স ডিপেনডেনসিস (Existence dependencies)

ম্যাপিং কনসট্রেইন্টস (mapping constraints) এর ক্ষেত্রে অন্য একটি গুরুত্বপূর্ণ শ্রেণী হল এগজিসটেন্স ডিপেনডেনসিস (existence dependencies)। যদি x নামক একটি এনটিটির অস্তিত্ব (existence) y নামক অপর একটি এনটিটির উপর নির্ভরশীল। হয়, তখন x কে y এর উপর অস্তিত্ব নির্ভর অথবা এগজিসটেন্ট ডিপেনডেন্ট (existence dependent) বলা হয়। এক্ষেত্রে যদি y কে মুছে ফেলা হয়, তবে x আপনা-আপনি মুছে যায়। y এনটিটিকে বলা হয় ডোমিনেন্ট (dominent) এনটিটি এবং x এনটিটিকে বলা হয় সাবর্ডিনেট এনটিটি (subordinate entity)

উদাহরণস্বরূপ, লোন (loan) ও পেমেন্ট (payment) নামক দুইটি এনটিটি সেটের কথা ধরা যাক। এক্ষেত্রে পেমেন্ট এনটিটি সেটটি একটি লোনের বিপরীতে সমস্ত পেমেন্ট সংক্রান্ত তথ্য সংরক্ষণ করে। পেমেন্ট এনটিটি সেটকে Payment_number, payment_date payment_amount দ্বারা বর্ণনা করা যেতে পারে।

যদি এ দুইটি এনটিটি সেটের মধ্যে একটি One to many রিলেশনশীপ (লোন হতে পেমেন্টের দিকে) লোন-পেমেন্ট তৈরি করা হয়, তবে দেখা যাবে যে, প্রতিটি পেমেন্ট এনটিটি অবশ্যই লোন এনটিটির সাথে এসোসিয়েটেড হবে। অতএব যদি লোন এনটিটি মুছে ফেলা হয়, তবে পেমেন্ট এনটিটিগুলো অবশ্যই মুছে যাবে। কিন্তু পেমেন্ট এনটিটিগুলো মুছলে লোন এনটিটি সেটের কোন কিছুই ঘটবে না। উদাহরণে লোন হল ডোমিনেন্ট এবং পেমেন্ট হল সাবর্ডিনেট এনটিটি।

আরও দেখুনঃ

Exit mobile version