তৃতীয় স্বাভাবিক ফর্ম (3 এনএফ) একটি ডাটাবেস নীতি যা প্রথম সাধারণ ফর্ম (1 এনএফ) এবং দ্বিতীয় স্বাভাবিক ফরম (2 এনএফ) দ্বারা প্রদত্ত ডাটাবেস স্বাভাবিককরণ নীতির উপর ভিত্তি করে ডেটা অখণ্ডতা সমর্থন করে।
তৃতীয় সাধারণ ফরম প্রয়োজনীয়তা
তৃতীয় সাধারণ ফর্ম হতে একটি ডাটাবেস জন্য দুটি মৌলিক প্রয়োজনীয়তা আছে:
- ডাটাবেস ইতিমধ্যে 1NF এবং 2NF উভয় প্রয়োজনীয়তা পূরণ করতে হবে।
- সমস্ত ডাটাবেস কলাম প্রাথমিক কী উপর নির্ভর করতে হবে, যার অর্থ কোন কলামের মান শুধুমাত্র প্রাথমিক কী থেকে উদ্ভূত হতে পারে।
প্রাথমিক কী নির্ভরতা সম্পর্কে
চলুন শুরু করা যাক আমরা কি বলতে কি আসলে সমস্ত কলাম প্রাথমিক কী উপর নির্ভর করা উচিত দ্বারা অর্থ।
যদি একটি কলামের মানটি প্রাথমিক কী এবং টেবিলে অন্য কলামের থেকে উদ্ভূত হতে পারে, তবে এটি 3 এনএফ লঙ্ঘন করে। এই কলাম সঙ্গে একটি কর্মচারী টেবিলের বিবেচনা করুন:
- কর্মচারী আইডি
- নামের প্রথম অংশ
- নামের শেষাংশ
উভয় LastName এবং FirstName উভয়ই কি EmployeeID এর মান নির্ভর করে? ভাল, LastName কি FirstName উপর নির্ভর করতে পারে? না, কারণ LastName এর অন্তর্নিহিত কিছু কিছুই FirstName এর মানটি সুপারিশ করবে না। সর্বদা LastName উপর নির্ভর করতে পারে? আবার, কারণ একই সত্য: যাই হোক না কেন একটি LastName হতে পারে, এটি FirstName এর মান হিসাবে একটি ইঙ্গিত প্রদান করতে পারে নি। অতএব, এই টেবিল 3 এনএফ সঙ্গতিপূর্ণ।
কিন্তু এই যানবাহন টেবিল বিবেচনা করুন:
- VehicleID
- উত্পাদক
- মডেল
কারিগর এবং মডেলটি ভেহিকলআইড থেকে উপকৃত হতে পারে - কিন্তু মডেলটি কারিগর থেকেও প্রাপ্ত হতে পারে কারণ একটি গাড়ির মডেলটি শুধুমাত্র একটি নির্দিষ্ট প্রস্তুতকারকের দ্বারা তৈরি করা হয়। এই টেবিলের নকশার অ-3 এনএফ অনুবর্তী, এবং এর ফলে, ডেটা বিশ্লেষণের ফলে ফলাফল পাওয়া যায়। উদাহরণস্বরূপ, আপনি মডেল আপডেট না করে নির্মাতার আপডেট করতে পারেন, inaccuracies প্রবর্তন।
এটি অনুধাবন করতে, আমাদের অতিরিক্ত নির্ভরশীল কলামকে অন্য সারণিতে সরাতে হবে এবং একটি বিদেশী কী ব্যবহার করে তা উল্লেখ করতে হবে। এর ফলে দুটি টেবিল থাকবে:
যানবাহন টেবিল
নীচের সারণিতে, মডেলআইড মডেলের টেবিলের জন্য একটি বিদেশী কী:
- VehicleID
- উত্পাদক
- ModelID
মডেল টেবিল
নির্মাতারা এই নতুন সারণি মানচিত্র মডেল। আপনি যদি কোনও মডেলের নির্দিষ্ট কোনও গাড়ির তথ্য আপডেট করতে চান, তবে আপনি এই টেবিলের মধ্যে এটি করবেন যেগুলি যানবাহন সারণির তুলনায়।
- ModelID
- উত্পাদক
- মডেল
3 এনএফ মডেলের ডেরিভেড ফিল্ডগুলি
একটি সারণিতে একটি ডেরিভেটিভ ফিল্ড থাকতে পারে - যেটি টেবিলের অন্যান্য কলামগুলির উপর ভিত্তি করে গণনা করা হয়। উদাহরণস্বরূপ, উইজেট অর্ডারগুলির এই টেবিলে বিবেচনা করুন:
- অর্ডার নম্বর
- গ্রাহক সংখ্যা
- একক দাম
- পরিমাণ
- মোট
সর্বনিম্ন 3 এনএফ সম্মতি বিলোপ করে কারণ এটি প্রাথমিক কী উপর সম্পূর্ণরূপে নির্ভরশীল হওয়ার পরিবর্তে পরিমাণ দ্বারা ইউনিট মূল্য সংখ্যাবৃদ্ধি দ্বারা প্রাপ্ত করা যায়। তৃতীয় সাধারণ ফর্মের সাথে মেনে চলার জন্য আমরা টেবিলে তা সরিয়ে ফেলব।
প্রকৃতপক্ষে, যেহেতু এটি উদ্ভূত হয়, এটি ডাটাবেসের মধ্যে সব সময়ে সংরক্ষণ করা ভাল।
ডাটাবেস প্রশ্নগুলি সম্পন্ন করার সময় আমরা এটি "ফ্লাইং এ" নিরূপণ করতে পারি। উদাহরণস্বরূপ, আমরা পূর্বে ক্রম সংখ্যা এবং মোট উদ্ধার করতে এই প্রশ্নের ব্যবহার করতে পারে:
নির্বাচন অর্ডার নম্বরে, মোট থেকে WidgetOrdersআমরা এখন নিম্নলিখিত প্রশ্নের ব্যবহার করতে পারি:
নির্বাচন অর্ডার নম্বরে, ইউনিটপ্রাইস * পরিমাণ যতক্ষণ উইজেট অফলাইনে থাকেস্বাভাবিককরণের নিয়ম লঙ্ঘন ছাড়া একই ফলাফল অর্জন।