Skip to main content

কিভাবে একটি ডাটাবেস তৃতীয় তৃতীয় ফর্ম রূপান্তর করতে (3NF)

ইউ জি Dravya Guna vijnana বিস্তারিত মাদক (জুন 2025)

ইউ জি Dravya Guna vijnana বিস্তারিত মাদক (জুন 2025)
Anonim

তৃতীয় স্বাভাবিক ফর্ম (3NF) একটি ডাটাবেস নীতি যা প্রথম সাধারণ ফর্ম (1NF) এবং দ্বিতীয় সাধারণ ফর্ম (2NF) দ্বারা সরবরাহিত ডাটাবেস স্বাভাবিকীকরণ নীতিগুলির উপর ভিত্তি করে ডেটা অখণ্ডতা সমর্থন করে।

তৃতীয় সাধারণ ফর্ম প্রয়োজনীয়তা

তৃতীয় স্বাভাবিক ফর্মের মধ্যে ডাটাবেসের জন্য দুটি মৌলিক প্রয়োজনীয়তা রয়েছে:

  • ডাটাবেস ইতিমধ্যে 1NF এবং 2NF উভয় প্রয়োজনীয়তা পূরণ করা আবশ্যক।
  • সমস্ত ডাটাবেস কলাম প্রাথমিক কী উপর নির্ভর করতে হবে, অর্থাত যে কোন কলামের মান শুধুমাত্র প্রাথমিক কী থেকে উদ্ভূত হতে পারে।

প্রাথমিক মূল নির্ভরতা সম্পর্কে

চলুন আমরা আরো কী বুঝাতে চাই তা হল যে সমস্ত কলাম প্রাথমিক কীতে অবশ্যই নির্ভর করবে।

যদি কোন কলামের মান টেবিলের প্রাথমিক কী এবং অন্য কলাম উভয় থেকে উদ্ভূত হয় তবে এটি 3NF লঙ্ঘন করে। এই কলামগুলির সাথে একজন কর্মচারী টেবিল বিবেচনা করুন:

  • কর্মচারী আইডি
  • নামের প্রথম অংশ
  • নামের শেষাংশ

LastName এবং FirstName উভয়ই কেবল EmployeeID এর মানের উপর নির্ভর করে? আচ্ছা, LastName FirstName এর উপর নির্ভর করে? না, কারণ LastName এর অন্তর্গত কোনও কিছুই FirstName এর মানকে সুপারিশ করবে না। FirstName LastName উপর নির্ভর করতে পারে? আবারও, কারণ এটি সত্য নয়: যা কোনও LastName হতে পারে, এটি প্রথম নামের মান হিসাবে একটি ইঙ্গিত প্রদান করতে পারে না। অতএব, এই টেবিল 3NF compliant হয়।

কিন্তু এই যানবাহন টেবিল বিবেচনা করুন:

  • VehicleID
  • উত্পাদক
  • মডেল

নির্মাতা ও মডেলটি VehicleID থেকে উদ্ভূত হতে পারে - তবে মডেলটি নির্মাতার কাছ থেকেও উদ্ভূত হতে পারে কারণ একটি গাড়ির মডেল শুধুমাত্র একটি বিশেষ নির্মাতার দ্বারা তৈরি করা হয়। এই টেবিল নকশাটি নন-3 এনএফ সঙ্গতিপূর্ণ, এবং এর ফলে, তথ্য বিঘ্ন ঘটতে পারে। উদাহরণস্বরূপ, আপনি মডেল আপডেট না করে নির্মাতার আপডেট করতে পারেন, ত্রুটিগুলি প্রবর্তন করে।

এটি মেনে চলার জন্য, আমরা অতিরিক্ত নির্ভরশীল কলামটিকে অন্য টেবিলে সরাতে এবং বিদেশী কী ব্যবহার করে এটি উল্লেখ করতে হবে। এই দুই টেবিল ফলে হবে:

যানবাহন টেবিল

নীচের টেবিলে, ModelID একটি বিদেশী কী মডেল টেবিল:

  • VehicleID
  • উত্পাদক
  • ModelID

মডেল টেবিল

নির্মাতারা এই নতুন টেবিল মানচিত্র মডেল। যদি আপনি কোনও মডেলের নির্দিষ্ট গাড়ির তথ্য আপডেট করতে চান তবে আপনি এই টেবিলে গাড়ি টেবিলের পরিবর্তে এটি করবেন।

  • ModelID
  • উত্পাদক
  • মডেল

3NF মডেলের মধ্যে Derived ক্ষেত্র

একটি টেবিলে একটি ডেরিভেড ফিল্ড থাকতে পারে - যেটি টেবিলে অন্যান্য কলামের উপর ভিত্তি করে গণনা করা হয়। উদাহরণস্বরূপ, উইজেট আদেশের এই টেবিলে বিবেচনা করুন:

  • অর্ডার নম্বর
  • গ্রাহক সংখ্যা
  • একক দাম
  • পরিমাণ
  • মোট

মোট 3NF সম্মতিটি ভাঙ্গায় কারণ এটি প্রাথমিক কীতে সম্পূর্ণরূপে নির্ভরশীল হওয়ার পরিবর্তে পরিমাণ দ্বারা ইউনিট মূল্য গুণমান করে তৈরি করা যেতে পারে। তৃতীয় স্বাভাবিক ফর্মটি মেনে চলার জন্য আমাদের টেবিল থেকে এটি অপসারণ করতে হবে।

প্রকৃতপক্ষে, এটি উদ্ভূত হওয়ার পরে, ডেটাবেসে এটি সংরক্ষণ করা ভাল নয়।

ডাটাবেস প্রশ্নের সম্পাদনার সময় আমরা কেবল "ফ্লাইতে" এটি গণনা করতে পারি। উদাহরণস্বরূপ, আমরা পূর্বে ক্রম সংখ্যা এবং মোট উদ্ধার করতে এই প্রশ্নটি ব্যবহার করেছি:

নির্বাচন করুন OrderNumber, উইজেট Orrders থেকে মোট

আমরা এখন নিম্নলিখিত প্রশ্নের ব্যবহার করতে পারি:

নির্বাচন করুন OrderNumber, UnitPrice * উইজেটঅরডার্স থেকে মোট হিসাবে পরিমাণ

স্বাভাবিকীকরণ নিয়ম লঙ্ঘন ছাড়া একই ফলাফল অর্জন করতে।