বিসিএনএফ এবং 3 এনএফের মধ্যে পার্থক্য
বিসিএনএফ সংজ্ঞা ব্যবহার করে
যদি এবং কেবলমাত্র এর প্রতিটি নির্ভরশীলতা X → Y এর জন্য, নিম্নলিখিত শর্তগুলির কমপক্ষে একটি ধারন করে :
- এক্স → ওয়াই একটি তুচ্ছ কার্যকরী নির্ভরতা (Y ⊆ X), বা
- এক্সটি স্কিমা আর এর জন্য একটি সুপার কী
এবং 3NF সংজ্ঞা
যদি এবং কেবলমাত্র, এর প্রতিটি কার্যকরী নির্ভরতা এক্স → এ এর জন্য, নিম্নলিখিত শর্তগুলির কমপক্ষে একটি ধারণ করে:
- এক্স-এ একটি রয়েছে (যা, এক্স → এ তুচ্ছ কার্যকরী নির্ভরতা), বা
- এক্স একটি সুপারকি, বা
- AX এর প্রতিটি উপাদান, A এবং X এর মধ্যে সেট পার্থক্যটি একটি প্রধান বৈশিষ্ট্য (যেমন, AX এ প্রতিটি বৈশিষ্ট্য কিছু প্রার্থী কীতে থাকে)
আমরা সহজ শর্তে নিম্নলিখিত পার্থক্যটি দেখতে পাচ্ছি:
- বিসিএনএফ-তে : প্রতিটি আংশিক কী (মূল বৈশিষ্ট্য) কেবল একটি সুপারকি-র উপর নির্ভর করতে পারে ,
যেহেতু
- 3NF ইন : একটি আংশিক কী (মৌলিক অনুষঙ্গ) করতে পারেন এছাড়াও একটি বৈশিষ্ট্য যে উপর নির্ভর করে না একটি superkey (অর্থাত অন্য আংশিক কী / মৌলিক বৈশিষ্ট্য বা এমনকি একটি অ মৌলিক বৈশিষ্ট্য)।
কোথায়
- একটি প্রধান বৈশিষ্ট্য হ'ল প্রার্থী কীতে পাওয়া বৈশিষ্ট্য এবং
- একজন প্রার্থী কী যে সম্পর্ক জন্য একটি ন্যূনতম superkey, এবং
- একজন superkey সম্পর্ক পরিবর্তনশীল গুণাবলীর একটি সেট করে যার জন্য ঝুলিতে যে পরিবর্তনশীল নির্ধারিত সব সম্পর্ক, কোন দুটি স্বতন্ত্র tuples (সারি) এই set.Equivalently একটি superkey মধ্যে বৈশিষ্ট্যাবলী জন্য একই মান যে এটিও করতে পারেন কোনও সম্পর্কিত স্কিমার বৈশিষ্ট্যের একটি সেট হিসাবে সংজ্ঞায়িত করা হবে যার উপর স্কিমার সমস্ত বৈশিষ্ট্য কার্যত নির্ভরশীল। (সুপারিকে সর্বদা একটি প্রার্থী কী থাকে / একটি প্রার্থী কী সর্বদা একটি সুপারির সাবসেট থাকে the সুপারকেগুলির মধ্যে একটি পাওয়ার জন্য আপনি কোনও বৈশিষ্ট্য যুক্ত করতে পারেন))
এটি হ'ল, কোনও প্রার্থী কী এর কোনও আংশিক উপসেট (সম্পূর্ণ সেট ব্যতীত কোনও তুচ্ছ সাবসেট) সুপারকি ব্যতীত অন্য কোনও কিছুর উপর নির্ভরশীল হতে পারে না।
বিসিএনএফ-তে নেই এমন একটি টেবিল / সম্পর্কটি অন্য ব্যবহারকারীর পিজ্জার উদাহরণে উল্লিখিত আপডেট ব্যতিক্রমগুলির মতো ব্যতিক্রমতার সাথে সম্পর্কিত। দুর্ভাগ্যবশত,
- বিএনসিএফ সর্বদা প্রাপ্ত হতে পারে না , যখন
- 3NF সর্বদা প্রাপ্ত হতে পারে ।
3NF বনাম বিসিএনএফ উদাহরণ
পার্থক্যের একটি উদাহরণ বর্তমানে উইকিপিডিয়ায় " 3NF টেবিল বিসিএনএফ (বয়েস od কোডড নরমাল ফর্ম) পূরণ করে না " পাওয়া যাবে যেখানে নীচের টেবিলটি 3NF পূরণ করে তবে বিসিএনএফ নয় কারণ "টেনিস কোর্ট" (একটি আংশিক কী / প্রধান বৈশিষ্ট্য) নির্ভর করে এ "হার প্রকার" (একটি আংশিক কী / মৌলিক বৈশিষ্ট্য হল না একটি superkey), যা নির্ভরশীলতার আমরা ডাটাবেস, টেনিস ক্লাবের ক্লায়েন্ট জিজ্ঞাসা করে নির্ধারণ পারে:
আজকের টেনিস কোর্ট বুকিং ( 3NF, বিসিএনএফ নয় )
Court Start Time End Time Rate Type
------- ---------- -------- ---------
1 09:30 10:30 SAVER
1 11:00 12:00 SAVER
1 14:00 15:30 STANDARD
2 10:00 11:30 PREMIUM-B
2 11:30 13:30 PREMIUM-B
2 15:00 16:30 PREMIUM-A
টেবিলের সুপারকেগুলি হ'ল:
S1 = {Court, Start Time}
S2 = {Court, End Time}
S3 = {Rate Type, Start Time}
S4 = {Rate Type, End Time}
S5 = {Court, Start Time, End Time}
S6 = {Rate Type, Start Time, End Time}
S7 = {Court, Rate Type, Start Time}
S8 = {Court, Rate Type, End Time}
ST = {Court, Rate Type, Start Time, End Time}, the trivial superkey
3NF সমস্যা : আংশিক কী / প্রধান গুণাবলী "কোর্ট" সুপারকি ব্যতীত অন্য কোনও কিছুর উপর নির্ভরশীল। পরিবর্তে, এটি আংশিক কী / প্রধান বৈশিষ্ট্য "হারের ধরণ" এর উপর নির্ভরশীল। এর অর্থ হ'ল যদি আমরা কোনও আদালত আপগ্রেড করি তবে ব্যবহারকারীকে ম্যানুয়ালি হারের প্রকারটি পরিবর্তন করতে হবে, বা কোনও রেট পরিবর্তন প্রয়োগ করতে চাইলে ম্যানুয়ালি আদালত পরিবর্তন করতে হবে।
- কিন্তু যদি ব্যবহারকারী আদালতকে আপগ্রেড করে কিন্তু হার বাড়ানোর কথা মনে না রাখে? অথবা যদি ভুল হারের ধরণটি আদালতে প্রয়োগ করা হয় তবে কী হবে?
(প্রযুক্তিগত ভাষায়, আমরা গ্যারান্টি দিতে পারি না যে "হারের ধরণ" -> "কোর্ট" কার্যকরী নির্ভরতা লঙ্ঘিত হবে না।)
বিসিএনএফ সমাধান : আমরা যদি বিসিএনএফ- র উপরের টেবিলটি রাখতে চাই তবে আমরা প্রদত্ত সম্পর্ক / টেবিলটিকে নিম্নলিখিত দুটি সম্পর্ক / সারণিতে বিভক্ত করতে পারি (ধরে নিলাম আমরা জানি যে হারের ধরণটি কেবল আদালত এবং সদস্যপদ স্থিতির উপর নির্ভরশীল, যা আমরা পারতাম আমাদের ডাটাবেসের ক্লায়েন্টদের, টেনিস ক্লাবের মালিকদের) জিজ্ঞাসা করে আবিষ্কার করুন:
হারের প্রকারগুলি ( বিসিএনএফ এবং দুর্বল 3 এনএফ, যা বিসিএনএফ দ্বারা বোঝানো হয়েছে)
Rate Type Court Member Flag
--------- ----- -----------
SAVER 1 Yes
STANDARD 1 No
PREMIUM-A 2 Yes
PREMIUM-B 2 No
আজকের টেনিস কোর্ট বুকিং ( বিসিএনএফ এবং দুর্বল 3 এনএফ, যা বিসিএনএফ দ্বারা বোঝানো হয়েছে)
Member Flag Court Start Time End Time
----------- ----- ---------- --------
Yes 1 09:30 10:30
Yes 1 11:00 12:00
No 1 14:00 15:30
No 2 10:00 11:30
No 2 11:30 13:30
Yes 2 15:00 16:30
সমস্যার সমাধান : এখন আমরা যদি আদালতকে আপগ্রেড করি তবে আমরা গ্যারান্টি দিতে পারি যে হারের প্রকারটি এই পরিবর্তনটি প্রতিফলিত করবে, এবং আমরা কোনও আদালতের জন্য ভুল মূল্য নিতে পারি না।
(প্রযুক্তিগত ভাষায়, আমরা গ্যারান্টি দিতে পারি যে কার্যক্ষম নির্ভরতা "হারের ধরণ" -> "আদালত" লঙ্ঘিত হবে না))