ডেটাবেসে ফাংশনাল ডিপেন্ডেন্সি হলো অ্যাট্রিবিউটের মধ্যে contraintes (বাধ্যতামূলক নিয়ম) প্রয়োগ করা একটি ধারণা। এটি ঘটে যখন একটি রিলেশন (relation) এর এক অ্যাট্রিবিউট অন্য অ্যাট্রিবিউটকে অনন্যভাবে নির্ধারণ করে। এটি A → B আকারে লেখা যায়, যার অর্থ হলো "B, A-র ওপর ফাংশনালি ডিপেন্ডেন্ট"। এটাকে ডেটাবেস ডিপেন্ডেন্সিও বলা হয়।
ডেটাবেস ডিজাইনে ফাংশনাল ডিপেন্ডেন্সির গুরুত্ব
ফাংশনাল ডিপেন্ডেন্সি ডেটার বৈধতা নিশ্চিত করতে সাহায্য করে। একটি Employees টেবিল বিবেচনা করুন যেখানে Social Security Number (SSN), নাম, জন্ম তারিখ, ঠিকানা ইত্যাদি কলাম আছে।
SSN অ্যাট্রিবিউটটি নাম, জন্ম তারিখ, ঠিকানা ও অন্যান্য ভ্যালুর মান নির্ধারণ করে, কারণ সোশ্যাল সিকিউরিটি নাম্বার প্রতিটি ব্যক্তির জন্য ইউনিক, কিন্তু নাম, জন্ম তারিখ বা ঠিকানা ইউনিক নাও হতে পারে। আমরা এটাকে এইভাবে লিখতে পারি:
SSN → name, date of birth, address
অতএব, নাম, জন্ম তারিখ এবং ঠিকানা SSN-র ওপর ফাংশনালি ডিপেন্ডেন্ট। কিন্তু বিপরীত বিবৃতি (name → SSN) সত্য নয়, কারণ একাধিক কর্মীর নাম একই হতে পারে কিন্তু SSN কখনো একই হবে না। সহজ ভাষায়, যদি আমরা SSN অ্যাট্রিবিউটের মান জানি, তবে নাম, জন্ম তারিখ ও ঠিকানার মান খুঁজে পেতে পারি। কিন্তু শুধু নাম জানলে SSN শনাক্ত করা সম্ভব নয়।
এক ফাংশনাল ডিপেন্ডেন্সির বাম দিক একাধিক অ্যাট্রিবিউট থাকতে পারে। ধরুন, একটি ব্যবসার একাধিক লোকেশন আছে। Employee টেবিলে employee, title, department, location এবং manager অ্যাট্রিবিউট থাকতে পারে।
কর্মচারী তার কাজের লোকেশন নির্ধারণ করে, তাই একটি ডিপেন্ডেন্সি আছে:
employee → location
কিন্তু এক লোকেশনে একাধিক ম্যানেজার থাকতে পারে, তাই employee এবং department মিলে manager নির্ধারণ করে:
employee, department → manager
ফাংশনাল ডিপেন্ডেন্সি ও নর্মালাইজেশন (Normalization)
ফাংশনাল ডিপেন্ডেন্সি ডেটাবেস নর্মালাইজেশনে অবদান রাখে, যা ডেটা ইন্টিগ্রিটি নিশ্চিত করে এবং ডেটা রিডান্ডেন্সি (অনাবশ্যক পুনরাবৃত্তি) কমায়। নর্মালাইজেশন ছাড়া ডেটাবেসের ডেটা সঠিক এবং নির্ভরযোগ্য হয় কিনা তা নিশ্চিত করা সম্ভব নয়।