Boyce-Codd Normal Form-এর লক্ষ্য হলো একটি রিলেশনাল ডাটাবেসের কলাম এবং টেবিল들을 সংগঠিত করে ডেটা ইন্টিগ্রিটি বাড়ানো যাতে ডাটাবেস নরমালাইজেশন অর্জিত হয়। ডাটাবেস নরমালাইজেশন ঘটে যখন টেবিল들之間 স্থাপিত সম্পর্ক থাকে এবং টেবিলগুলোর ডিফাইনড রুলস থাকে যাতে ডাটাবেস আরও ফ্লেক্সিবল হয় এবং ডেটা সংরক্ষিত থাকে।
ডাটাবেস নরমালাইজেশনের লক্ষ্য হলো রিডান্ড্যান্ট ডেটা অপসারণ করা এবং ডেটা ডিপেন্ডেন্সিগুলো অর্থপূর্ণ করা। একটি ডাটাবেস নরমালাইজড হয় যখন একই ডেটা একাধিক টেবিলে সংরক্ষিত নয় এবং শুধু সম্পর্কিত ডেটা একটি টেবিলে থাকে।
Boyce-Codd Normal Form-এর উৎপত্তি
ডাটাবেস নরমালাইজড নিশ্চিত করার জন্য একটি গাইডলাইন সিরিজ অনুসরণ করা হয়। এই গাইডলাইনগুলোকে নরমাল ফর্ম বলা হয় এবং এক থেকে পাঁচ পর্যন্ত নম্বর দেওয়া হয়। একটি রিলেশনাল ডাটাবেসকে নরমালাইজড বলা হয় যদি সেটি প্রথম তিনটি ফর্ম পূরণ করে: 1NF, 2NF, এবং 3NF।
BCNF 1974 সালে রেমন্ড বয়েস এবং এডগার কড্ড দ্বারা থার্ড নরমাল ফর্ম বা 3NF-এর একটি এক্সটেনশন হিসেবে তৈরি হয়েছিল। তারা ডাটাবেস স্কিমা তৈরি করতে কাজ করছিল যাতে রিডান্ড্যান্সি মিনিমাইজ হয় কম্পিউটেশনাল টাইম কমানোর লক্ষ্যে। থার্ড নরমাল ফর্ম প্রাইমারি কী-এ ডিপেন্ডেন্ট নন থাকা কলামগুলো সরিয়ে ফেলেضافة প্রথম এবং দ্বিতীয় নরমাল ফর্মের গাইডলাইন মেনে। BCNF, যাকে কখনও কখনও 3.5NF বলা হয়, 3NF-এর সকল প্রয়োজনীয়তা পূরণ করে এবং ক্যান্ডিডেট কীগুলোর অন্যান্য অ্যাট্রিবিউটের উপর কোনো ডিপেন্ডেন্সি নেই সেটি নিশ্চিত করে।
BCNF-এর সৃষ্টির সময়, বয়েস স্ট্রাকচার্ড ইংলিশ কোয়েরি ল্যাঙ্গুয়েজের কি ডেভেলপারদের একজন ছিলেন, যা পরে SQL হিসেবে স্ট্যান্ডার্ডাইজড হয়েছিল, যা কড্ড-এর রিলেশনাল মডেল ব্যবহার করে ডেটা রিট্রিভাল উন্নত করেছিল। এই মডেলে, কড্ড মতে থাকেন ডাটাবেসের স্ট্রাকচারাল কমপ্লেক্সিটি কমানো যেতে পারে, অর্থাৎ কোয়েরিগুলো আরও শক্তিশালী এবং ফ্লেক্সিবল হতে পারে।
তিনি তার রিলেশনাল ডাটাবেস ইনসাইট ব্যবহার করে 1NF, 2NF, এবং 3NF গাইডলাইন ডিফাইন করেছিলেন। তিনি বয়েসের সাথে মিলে BCNF ডিফাইন করেছিলেন।
ক্যান্ডিডেট কী এবং BCNF
একটি ক্যান্ডিডেট কী হলো একটি টেবিলে একটি কলাম বা কলামগুলোর কম্বিনেশন যেটি ডাটাবেসে একটি ইউনিক কী গঠন করে। অ্যাট্রিবিউটের কম্বিনেশন অন্য কোনো ডেটা রেফারেন্স ছাড়া একটি ডাটাবেস রেকর্ড আইডেন্টিফাই করে। প্রতিটি টেবিলে একাধিক ক্যান্ডিডেট কী থাকতে পারে, যেকোনো একটি প্রাইমারি কী হিসেবে কোয়ালিফাই করতে পারে। একটি টেবিলে শুধু একটি প্রাইমারি কী থাকে।
ক্যান্ডিডেট কীগুলো ইউনিক হতে হবে।
একটি রিলেশন BCNF-এ থাকে যদি প্রতিটি ডিটারমিন্যান্ট একটি ক্যান্ডিডেট কী হয়। একটি ডাটাবেস টেবিল বিবেচনা করুন যেটি কর্মচারীর তথ্য সংরক্ষণ করে এবং যার অ্যাট্রিবিউট আছে <Employee_Id>, <First_name>, <Last_name>, এবং <Title>.
এই টেবিলে, ফিল্ড <Employee_Id> first_name and last_name নির্ধারণ করে। একইভাবে, টাপল (<First_name>, <Last_name>) <Employee_id> নির্ধারণ করে।
| Employee Id | First name | Last name | Title |
|---|---|---|---|
| 13133 | Emily | Smith | Manager |
| 13134 | Jim | Smith | Associate |
| 13135 | Emily | Jones | Associate |
এই ডাটাবেসের ক্যান্ডিডেট কী হলো Employee_Id কারণ এটি একমাত্র মান যেটি অন্য কোনো রো দ্বারা ব্যবহার করা যায় না।
প্রশ্নোত্তর
-
Boyce-Codd Normal Form-এর প্রয়োজনীয়তা কী?
এক টেবিল Boyce-Codd Normal Form (BCNF) প্রয়োজনীয়তা পূরণ করে যদি সব ডিটারমিন্যান্ট ক্যান্ডিডেট কী হয় এবং রিলেশন Third Normal Form (3NF)-এ থাকে। 3NF First Normal Form (1NF) এবং Second Normal Form (2NF)-এর রুলস মেনে, এবং সব কলাম প্রাইমারি কী-এ ডিপেন্ডেন্ট থাকে।
-
Fourth Normal Form এবং Boyce-Codd Normal Form-এর পার্থক্য কী?
Fourth Normal Form (4NF) ডাটাবেস নরমালাইজেশনে Boyce-Codd Normal Form (BCNF)-এর পরের লেভেল। 4NF 3NF-এর প্রয়োজনীয়তা পূরণ করে ঠিক BCNF-এর মতো। য่า হোক, 4NF টেবিলগুলোর কোনো মাল্টিভ্যালুড ডিপেন্ডেন্সি বা মੈনি-টু-ওয়ান রিলেশনশিপ নেই, যেখানে BCNF টেবিলগুলোর এই ডিপেন্ডেন্সি থাকতে পারে।