একটি পূর্ণ কার্যকরী নির্ভরতা ডাটাবেস স্বাভাবিকীকরণের একটি রাষ্ট্র যা দ্বিতীয় স্বাভাবিক ফর্ম (2 এনএফ) এর স্বাভাবিককরণের মানের সমতুল্য। সংক্ষিপ্তভাবে, এর মানে হল যে এটি প্রথম নরমাল ফর্ম (1 এনএফ) এর প্রয়োজনীয়তাগুলি পূরণ করে এবং সমস্ত অ-কী বৈশিষ্ট্যাবলী সম্পূর্ণরূপে কার্যকরীভাবে প্রাথমিক কীটি উপর নির্ভরশীল।
এটা যেমন শব্দ হতে পারে হিসাবে জটিল নয়। আসুন আরো বিস্তারিতভাবে এই এটি তাকান।
প্রথম সাধারণ ফর্মের সারসংক্ষেপ
একটি ডাটাবেস পুরোপুরি কার্যকরীভাবে নির্ভরশীল হতে পারে আগে, এটি প্রথম প্রথম সাধারণ ফর্ম মেনে চলতে হবে।
এই সব মানে প্রতিটি বৈশিষ্ট্য একটি একক রাখা উচিত, পারমাণবিক মান।
উদাহরণস্বরূপ, নিম্নোক্ত টেবিলে 1NF মেনে চলছে না , কারণ কর্মী টিনা দুটি অবস্থানে যুক্ত, তাদের উভয়েই একক কক্ষে রয়েছে:
কর্মচারী | অবস্থান |
---|---|
জন | লস এঞ্জেলেস |
টিনা | লস এঞ্জেলেস, শিকাগো |
এই নকশা অনুমোদন নেতিবাচক তথ্য আপডেট বা এন্ট্রি প্রভাবিত করতে পারে। 1 এনএফ সম্মতি নিশ্চিত করতে, টেবিলের পুনরায় সাজানো যাতে সমস্ত অ্যাট্রিবিউটস (বা কলাম কোষ) একটি একক মূল্য ধরে রাখে:
কর্মচারী | অবস্থান |
---|---|
জন | লস এঞ্জেলেস |
টিনা | লস এঞ্জেলেস |
টিনা | শিকাগো |
কিন্তু 1 এনএফ এখনও ডেটাগুলির সাথে সমস্যাগুলি এড়াতে যথেষ্ট নয়।
কিভাবে 2NF সম্পূর্ণ নির্ভরতা নিশ্চিত করতে কাজ করে
সম্পূর্ণ নির্ভরশীল হতে, সমস্ত অ-প্রার্থী কী বৈশিষ্ট্যাবলী প্রাথমিক কী উপর নির্ভর করতে হবে। (মনে রাখবেন, একটি প্রার্থী কী অ্যাট্রিবিউট কোনও মূল (উদাহরণস্বরূপ, একটি প্রাথমিক বা বিদেশী কী) একটি ডাটাবেস রেকর্ডকে স্বতন্ত্রভাবে সনাক্ত করার জন্য ব্যবহার করা হয়।
ডেটাবেস ডিজাইনার অ্যাট্রিবিউটগুলির মধ্যে নির্ভরশীল সম্পর্কগুলি বর্ণনা করতে একটি নোট ব্যবহার করে:
যদি অ্যাট্রিবিউট এ B এর মানটি নির্ধারণ করে, আমরা এটিকে লিখি -> বি - এর মানে হল যে বি এ কার্যকরীভাবে নির্ভরশীল। এই সম্পর্কের মধ্যে A, B এর মান নির্ধারণ করে, আর B এর উপর নির্ভর করে।
উদাহরণস্বরূপ, নিম্নোক্ত কর্মচারী বিভাগের টেবিলে, কর্মচারী আইডি এবং DeptID উভয়ই প্রার্থী কীগুলি: নিয়োগকর্তা হল টেবিলের প্রাথমিক কী, যখন DeptID একটি বিদেশী কী।
অন্য কোন অ্যাট্রিবিউট- এই ক্ষেত্রে, কর্মচারী নাম এবং DeptName- এর মানটি প্রাপ্ত প্রাথমিক কী-এর উপর নির্ভর করতে হবে।
কর্মচারী আইডি | কর্মকর্তার নাম | DeptID | DeptName |
---|---|---|---|
Emp1 | জন | Dept001 | মূলধন যোগান |
Emp2 | টিনা | Dept003 | বিক্রয় |
Emp3 | কার্লোস | Dept001 | মূলধন যোগান |
এই ক্ষেত্রে, টেবিল সম্পূর্ণ নির্ভরশীল নয়, কারণ কর্মচারী নাম প্রাথমিক কী EmployeeID উপর নির্ভর করে, DeptName DeptID এর পরিবর্তে নির্ভর করে। এই আংশিক নির্ভরতা বলা হয়।
এই টেবিলের 2 এনএফের সাথে সামঞ্জস্য করতে, আমাদের দুটি টেবিলে ডাটা আলাদা করতে হবে:
কর্মচারী আইডি | কর্মকর্তার নাম | DeptID |
---|---|---|
Emp1 | জন | Dept001 |
Emp2 | টিনা | Dept003 |
Emp3 | কার্লোস | Dept001 |
আমরা কর্মচারী সারণি থেকে DeptName অ্যাট্রিবিউট সরিয়ে ফেলি এবং একটি নতুন সারণি বিভাগ তৈরি করুন:
DeptID | DeptName |
---|---|
Dept001 | মূলধন যোগান |
Dept002 | মানব সম্পদ |
Dept003 | বিক্রয় |
এখন টেবিলের মধ্যে সম্পর্ক সম্পূর্ণরূপে নির্ভরশীল, অথবা 2 এনএফ এর মধ্যে।
কেন সম্পূর্ণ নির্ভরতা গুরুত্বপূর্ণ
ডেটাবেস অ্যাট্রিবিউটগুলির মধ্যে পূর্ণ নির্ভরতা ডেটা অখণ্ডতা নিশ্চিত করতে এবং ডেটা বিশ্লেষণগুলি এড়াতে সহায়তা করে।
উদাহরণস্বরূপ, উপরোক্ত বিভাগের টেবিলটি বিবেচনা করুন যা শুধুমাত্র 1 এনএফ এর জন্য অনুসরণ করে। এখানে আবার, হয়:
কর্মচারী | অবস্থান |
---|---|
জন | লস এঞ্জেলেস |
টিনা | লস এঞ্জেলেস |
টিনা | শিকাগো |
টিনা দুটি রেকর্ড আছে। যদি আমরা বুঝতে পারি যে, দুটি আছে, তাহলে আমরা একটিকে আপডেট করলে তা অসঙ্গত তথ্য হবে।
বা, যদি আমরা এই টেবিলে একটি কর্মচারী যোগ করতে চান, তবে আমরা এখনও অবস্থান জানি না? অবস্থান অ্যাট্রিবিউট NULL মানগুলির অনুমতি দেয় না যদি আমরা একটি নতুন কর্মচারী যোগ করতে অক্ষম হতে পারে
সম্পূর্ণ নির্ভরতা পুরো ছবি নয়, যদিও, এটি স্বাভাবিককরণের সময় আসে। আপনার ডাটাবেসটি থার্ড নরমাল ফরম (3 এনএফ) -এ রয়েছে তা অবশ্যই নিশ্চিত করতে হবে।