3NF বনাম BCNF
নর্মালাইজেশন হল একটি প্রক্রিয়া যা রিলেশনাল ডাটাবেসে ডেটাতে থাকা রিডানড্যান্সিগুলিকে কমিয়ে আনার জন্য করা হয়। এই প্রক্রিয়াটি প্রধানত বড় টেবিলগুলিকে ছোট টেবিলে বিভক্ত করবে যেখানে কম অপ্রয়োজনীয়তা থাকবে। এই ছোট টেবিলগুলি ভালভাবে সংজ্ঞায়িত সম্পর্কের মাধ্যমে একে অপরের সাথে সম্পর্কিত হবে। একটি ভাল স্বাভাবিক ডাটাবেসে, ডেটাতে যে কোনও পরিবর্তন বা পরিবর্তনের জন্য শুধুমাত্র একটি টেবিল পরিবর্তন করতে হবে। তৃতীয় সাধারণ ফর্ম (3NF) 1971 সালে এডগার এফ. কড দ্বারা প্রবর্তন করা হয়েছিল, যিনি রিলেশনাল মডেল এবং স্বাভাবিককরণের ধারণারও উদ্ভাবক। Boyce-Codd Normal Form (BCNF) 1974 সালে Codd এবং Raymond F.বয়েস।
3NF কি?
3NF হল তৃতীয় স্বাভাবিক ফর্ম যা রিলেশনাল ডাটাবেস স্বাভাবিকীকরণে ব্যবহৃত হয়। Codd এর সংজ্ঞা অনুসারে, একটি টেবিলকে 3NF বলা হয়, যদি এবং শুধুমাত্র যদি, সেই টেবিলটি দ্বিতীয় স্বাভাবিক আকারে থাকে (2NF), এবং টেবিলের প্রতিটি বৈশিষ্ট্য যা প্রার্থী কী এর অন্তর্গত নয় তার উপর সরাসরি নির্ভর করা উচিত যে টেবিলের প্রতিটি প্রার্থী কী. 1982 সালে কার্লো জানিওলো 3NF এর জন্য একটি ভিন্নভাবে প্রকাশ করা সংজ্ঞা তৈরি করেছিলেন। যে টেবিলগুলি 3NF মেনে চলে সেগুলি সাধারণত টেবিলে রেকর্ড সন্নিবেশ, মুছে বা আপডেট করার সময় ঘটে এমন অসঙ্গতি ধারণ করে না৷
BCNF কি?
BCNF (3.5NF নামেও পরিচিত) রিলেশনাল ডাটাবেস স্বাভাবিকীকরণে ব্যবহৃত আরেকটি স্বাভাবিক ফর্ম। এটি 3NF দ্বারা সম্বোধন করা হয় না এমন কিছু অসঙ্গতি ক্যাপচার করার জন্য চালু করা হয়েছিল। একটি টেবিলকে BCNF-এ বলা হয়, যদি এবং শুধুমাত্র যদি, A → B ফর্মের প্রতিটি নির্ভরতার জন্য যা নন-তুচ্ছ, A একটি সুপার-কী। BCNF স্বাভাবিক ফর্মে নেই এমন একটি টেবিলকে পচিয়ে দেওয়া BCNF ফর্মে টেবিল তৈরির গ্যারান্টি দেয় না (মূল টেবিলে থাকা নির্ভরতাগুলি সংরক্ষণ করার সময়)।
3NF এবং BCNF এর মধ্যে পার্থক্য কী?
3NF এবং BCNF উভয়ই সাধারন ফর্ম যা রিলেশনাল ডাটাবেসে ব্যবহার করা হয় টেবিলের রিডানড্যান্সি কমানোর জন্য। একটি টেবিলে যা BCNF স্বাভাবিক আকারে থাকে, A → B ফর্মের প্রতিটি অ-তুচ্ছ কার্যকরী নির্ভরতার জন্য, A একটি সুপার-কি যেখানে, 3NF মেনে চলা একটি টেবিল 2NF এবং প্রতিটি নন-প্রাইম হওয়া উচিত অ্যাট্রিবিউট সরাসরি সেই টেবিলের প্রতিটি প্রার্থী কী-এর উপর নির্ভর করবে। BCNF কে 3NF এর তুলনায় একটি শক্তিশালী স্বাভাবিক ফর্ম হিসাবে বিবেচনা করা হয় এবং এটি 3NF দ্বারা ক্যাপচার করা যায় না এমন কিছু অসঙ্গতি ক্যাপচার করার জন্য তৈরি করা হয়েছিল। BCNF ফর্মের সাথে সঙ্গতিপূর্ণ একটি টেবিল পাওয়ার জন্য 3NF-এ থাকা একটি টেবিলকে পচানোর প্রয়োজন হবে। এই পচনের ফলে অনুসন্ধান চালানোর সময় অতিরিক্ত যোগদানের ক্রিয়াকলাপ (বা কার্টেসিয়ান পণ্য) হবে। এতে কম্পিউটেশনাল টাইম বাড়বে। অন্যদিকে, BCNF মেনে চলা টেবিলগুলিতে শুধুমাত্র 3NF মেনে চলা টেবিলের তুলনায় কম অপ্রয়োজনীয়তা থাকবে। অধিকন্তু, বেশিরভাগ সময়, নির্ভরতা সংরক্ষণ এবং ক্ষতিহীন যোগদানকে বাধা না দিয়ে 3NF মেনে চলা একটি টেবিল পাওয়া সম্ভব।কিন্তু BCNF এর সাথে এটা সবসময় সম্ভব হয় না।