কম্পিউটার টিউটোরিয়াল

বয়েস-কোড স্বাভাবিক ফর্ম (BCNF)


বয়েস-কোড স্বাভাবিক ফর্ম (BCNF) কী?

বিসিএনএফ (BCNF) হলো থার্ড নর্মাল ফর্ম (3NF) এর একটি 확장한 এবং এটি 3NF এর চেয়ে কিছুটা শক্তিশালী।

একটি রিলেশন R BCNF-এ থাকবে, যদি P → Q একটি তुच্ছ ফাংশনাল নির্ভরতা হয় এবং P হলো R-এর একটি সুপারকী।

যদি একটি রিলেশন BCNF-এ থাকে, তবে এর মানে হলো ফাংশনাল নির্ভরতা ভিত্তিক বাড়তি ডেটা দূর করা হয়েছে, তবে কিছু বাড়তি ডেটা এখনও থাকতে পারে।

উদাহরণ

<SportsClub>

গ্রাউন্ড শুরুর_সময় শেষ_সময় প্যাকেজ
G01 07:00 09:00 Gold
G01 10:00 12:00 Gold
G01 10:30 11:00 Bronze
G02 10:15 11:15 Silver
G02 08:00 09:00 Silver

উপরোক্ত রিলেশন 1NF, 2NF, 3NF-এ আছে, কিন্তু BCNF-এ নেই। কারণ:

ফাংশনাল নির্ভরতা: {Package → Ground}

নির্ধারক গুণগত Package, যার ওপর Ground নির্ভর করে, এটি نہ একটি কैंडিডেট কী এবং نہ কैंडিডেট কীর সুপারসেট।

BCNF-এ রূপান্তর

<Package>

প্যাকেজ গ্রাউন্ড
Gold G01
Silver G02
Bronze G01

<TomorrowBookings>

গ্রাউন্ড শুরুর_সময় শেষ_সময়
G01 07:00 09:00
G01 10:00 12:00
G01 10:30 11:00
G02 10:15 11:15
G02 08:00 09:00

এখন উপরের টেবিলগুলো BCNF-এ আছে।

  • <Package> টেবিলের কैंडিডেট কী: Package এবং Ground
  • <TomorrowBookings> টেবিলের ক্যান্ডিডেট কী: {Ground, Begin_Time} এবং {Ground, End_Time}

<Package> রিলেশনে Package কে কী হিসেবে ব্যবহার করার কারণে ব> অনোমালি দূর হয়েছে।

  1. ডাটাবেস টেবিল কীভাবে স্বাভাবিক করবেন (Normalize)

  2. দ্বিতীয় স্বাভাবিক ফর্ম (2NF)

  3. তৃতীয় স্বাভাবিক ফর্ম (3NF)

  4. ডজ্যাঙ্গোতে ফর্ম উইজেট ব্যবহার