3NF এবং বিসিএনএফের মধ্যে সহজ শর্তাবলী মধ্যে পার্থক্য (একটি 8 বছর বয়সী বোঝাতে সক্ষম হতে হবে)


157

আমি উদ্ধৃতিটি পড়েছি: ডেটা কী [1NF], পুরো কী [2NF] এবং কী [3NF] ব্যতীত আর কিছুই নির্ভর করে না

যাইহোক, 3.5NF বা বিসিএনএফ বলা হওয়ার সাথে সাথে বুঝতে আমার সমস্যা হচ্ছে। আমি যা বুঝি তা এখানে:

  • বিসিএনএফ 3NF এর চেয়ে কঠোর
  • টেবিলের যে কোনও এফডির বাম পাশ অবশ্যই একটি সুপারকি (বা কমপক্ষে কোনও প্রার্থীর কী) হতে হবে

তাহলে এটি কেন, কিছু 3NF টেবিল বিসিএনএফ-তে নেই? আমি বোঝাতে চাইছি, 3 এনএফের উদ্ধৃতিটি স্পষ্টভাবে "কী ছাড়া কিছুই নয়" বলেছে যার অর্থ সমস্ত বৈশিষ্ট্যগুলি কেবলমাত্র মূল কীতে নির্ভর করে। প্রাথমিক কীটি সর্বোপরি একজন প্রার্থী কী, যতক্ষণ না এটি আমাদের প্রাথমিক কী হিসাবে নির্বাচিত হয়।

যদি এখনও পর্যন্ত আমার বোঝাপড়া সম্পর্কে কিছু ভুল হয় তবে দয়া করে আমাকে সংশোধন করুন এবং আপনার যে কোনও সহায়তা সরবরাহ করতে পারেন তার জন্য ধন্যবাদ।


এটি এমন এক অদ্ভুত অনুভূতি যা কেবলমাত্র একটি প্রকাশিত পাঠ্যপুস্তকই একটি ধারণার সংক্ষিপ্ত, নির্ভুল বর্ণনা সরবরাহ করতে পারে। আপনি যদি এই (সত্যই পুরানো) প্রশ্নের উত্তরগুলি লক্ষ্য করেন তবে দেখতে পাবেন যে উচ্চমানের রেটগুলির কোনওটিই অস্পষ্ট বা অসম্পূর্ণ নয়। বীজগণিত সংজ্ঞা থাকা বিষয়টি ছিল না, বাস্তব-বিশ্বের উদাহরণগুলির মাধ্যমে ধারণাটি বোঝা ছিল। আমার মূল প্রশ্নের উদ্ধৃতি হিসাবে, গুগল "তাই আমাকে কোডড সাহায্য করুন" উদ্ধৃতিগুলির মূলটি খুঁজে পেতে। এটি সম্পর্কে অস্পষ্ট কিছুই নেই।
অর্ণব দত্ত

1
আপনি কোথায় ভাবেন যে নন-পাঠ্যপুস্তকের উত্সগুলি তাদের তথ্যগুলি পেয়েছে? অনেকগুলি দুর্বল পাঠ্যপুস্তকও রয়েছে তবে পাঠ্যপুস্তকগুলি একাডেমিক শিক্ষানবিশ সহ একাধিক লোক দ্বারা পর্যালোচনা করা হয় এবং অন্যের পাঠ্যপুস্তকের ব্যাখ্যার চেয়ে বোকামি না হওয়ার সম্ভাবনা বেশি থাকে। অজ্ঞাত ও ভুল তথ্যযুক্ত লোকদের দ্বারা উচ্চ রেটিং কিছু সঠিক করে না। আপনার প্রশ্নে আগত লোকদের জন্য আমি সেই মন্তব্যটি সেখানে রেখেছি। এই "কী ছাড়া কিছুই" বাক্যাংশটি অকেজো থেকে কম less একটি সঠিক সংজ্ঞা থাকা অবশ্যই সমস্যা, কারণ "ধারণাটি বোঝার" একটি ছাড়া অসম্ভব।
ফিলিপ্সি

উত্তর:


162

আপনার পিজ্জাতে ঠিক তিনটি শীর্ষস্থানীয় প্রকার থাকতে পারে:

  • এক ধরণের পনির
  • এক প্রকার মাংস
  • এক প্রকার সবজি

সুতরাং আমরা দুটি পিজ্জা অর্ডার করি এবং নিম্নলিখিত টপিংগুলি চয়ন করি:

Pizza    Topping     Topping Type
-------- ----------  -------------
1        mozzarella  cheese
1        pepperoni   meat
1        olives      vegetable
2        mozzarella  meat
2        sausage     cheese
2        peppers     vegetable

এক সেকেন্ড অপেক্ষা করুন, মোজারেল্লা পনির এবং মাংস উভয়ই হতে পারে না! এবং সসেজ পনির নয়!

আমাদের এই ধরণের ভুলগুলি প্রতিরোধ করতে হবে, মোজরেলাকে সর্বদা পনির হতে হবে। আমাদের এটির জন্য একটি পৃথক টেবিল ব্যবহার করা উচিত, তাই আমরা সেই সত্যটি কেবল একটি জায়গায় লিখে রাখি।

Pizza    Topping
-------- ----------
1        mozzarella
1        pepperoni
1        olives
2        mozzarella 
2        sausage
2        peppers

Topping     Topping Type
----------  -------------
mozzarella  cheese
pepperoni   meat
olives      vegetable
sausage     meat
peppers     vegetable

এটি সেই ব্যাখ্যা ছিল যা একটি 8 বছর বয়সী বুঝতে পারে। এখানে আরও প্রযুক্তিগত সংস্করণ।

বিসিএনএফ কেবল 3 এনএফ থেকে আলাদাভাবে কাজ করে যখন সেখানে একাধিক ওভারল্যাপিং প্রার্থী কী রয়েছে।

কারণটি হ'ল কার্যক্ষম নির্ভরতা X -> Yঅবশ্যই সত্য যদি Yএটির উপসেট হয় X। সুতরাং যে কোনও টেবিলে কেবল একটি প্রার্থী কী রয়েছে এবং 3NF এ রয়েছে, এটি ইতিমধ্যে বিসিএনএফ-এ রয়েছে কারণ কোনও কলাম নেই (কী বা নন-কী নেই) যা সেই কী ছাড়া অন্য কোনও কিছুর উপর নির্ভরশীল dependent

যেহেতু প্রতিটি পিজ্জার অবশ্যই প্রতিটি টপিং টাইপের একটির অবশ্যই একটি হওয়া উচিত, আমরা জানি যে (পিজ্জা, টপিং টাইপ) একটি প্রার্থী কী। আমরা স্বজ্ঞাতভাবেও জানি যে প্রদত্ত টপিং একই সাথে বিভিন্ন ধরণের হতে পারে না। সুতরাং (পিজ্জা, শীর্ষস্থানীয়) অবশ্যই অনন্য হতে হবে এবং তাই প্রার্থী কী। সুতরাং আমাদের কাছে দুটি ওভারল্যাপিং প্রার্থী কী রয়েছে।

আমি একটি অসঙ্গতি দেখিয়েছি যেখানে আমরা মোজরেলাকে ভুল শীর্ষের ধরণ হিসাবে চিহ্নিত করেছি। আমরা জানি এটি ভুল, তবে যে নিয়মটি এটি ভুল করে তা হ'ল নির্ভরতা Topping -> Topping Typeযা এই টেবিলের জন্য বিসিএনএফের জন্য বৈধ নির্ভরতা নয়। এটি সম্পূর্ণ প্রার্থী কী ছাড়া অন্য কোনও কিছুর উপর নির্ভরশীলতা।

সুতরাং এটি সমাধান করার জন্য, আমরা পিজ্জা টেবিলের বাইরে টপিং টাইপ নিই এবং এটিকে শীর্ষস্থানীয় টেবিলে একটি অ-কী বৈশিষ্ট্য হিসাবে তৈরি করি।


3
"এটি পুরো প্রার্থীর চাবি ছাড়া অন্য কোনও কিছুর উপর নির্ভরশীলতা।" - ধন্যবাদ
gnsb

12
"সুতরাং যে কোনও টেবিলে কেবল একটি প্রার্থীর চাবি রয়েছে এবং 3NF এ রয়েছে" - যথেষ্ট নয় quite আপনার দেওয়া উদাহরণটি এই শর্তটি পূরণ করে। তবে এটি 3NF উদাহরণ নয় কারণ এটি 2NF নয়। কী (1NF), পুরো কী (2NF), এবং কী (3NF) ছাড়া কিছুই নয়। কীটি (পিজ্জা, শীর্ষস্থানীয়), এবং কলাম শীর্ষস্থানীয় টিপিং কীটির উপর নির্ভরশীল এবং কী ছাড়া কিছুই নয়, তবে এটি পুরো কীটির উপর নির্ভর করে না। সুতরাং এটি 2NF নয় এবং এভাবে 3NF বা বিসিএনএফ নয়। এটি 1 এনএফ এটি 2NF তৈরি করা আপনি যে সমস্যাটি বর্ণনা করার চেষ্টা করছেন তা বাইপাস করবে।
ড্যানিয়েল বারবালস

4
@ ড্যানিয়েলবারব্লস, এই টেবিলের মূল বিষয়টি হ'ল এটির এই টেবিলের জন্য বিকল্প প্রার্থী কী রয়েছে: (পিজ্জা, টপিংটাইপ)। যেহেতু শীর্ষস্থানীয় টাইপটি সেই প্রার্থী কীটির একটি উপসেট, তাই এটি 2 এনএফকে সন্তুষ্ট করে।
বিল কারউইন

6
দুঃখিত, আমি এটি ডাউনভোট করতে হয়েছিল। আপনি যে উদাহরণটি দেখিয়েছেন তা 3 এনএফ-তে নেই। বিসিএনএফের উদ্দেশ্য বুঝতে, আমাকে অবশ্যই একটি উদাহরণ দেখতে হবে যেখানে এটি 3NF এ রয়েছে তবে আমি বিসিএনএফ নয়। এখনই, আমি বিসিএনএফের উদ্দেশ্য দেখতে পাচ্ছি না।
স্পেরো

5
কেন এটি ইতিমধ্যে 2NF এ পরিচালনা করা হচ্ছে না? আমার দৃষ্টিকোণ থেকে, মূল টেবিলের প্রাথমিক কীটি হ'ল পিজা + টপিং, এবং শীর্ষস্থানীয় টাইপ টপিংয়ের উপর নির্ভরশীল, তাই আঞ্চলিক নির্ভরতা যা 2NF পর্যায়ে যত্ন নেওয়া উচিত?
গ্রিনপেনগুইন

91

সূক্ষ্ম পার্থক্য হ'ল 3NF কী এবং নন-কী বৈশিষ্ট্যগুলিকে (যাকে নন-প্রাইম বৈশিষ্ট্যও বলা হয় ) মধ্যে পার্থক্য তৈরি করে যেখানে বিসিএনএফ তা দেয় না।

এটি জোনোলোর সংজ্ঞা 3NF ব্যবহার করে সর্বোত্তমভাবে ব্যাখ্যা করা হয়েছে যা কোডের সমান:

নীচের শর্তগুলির মধ্যে কমপক্ষে একটির দ্বারা সন্তুষ্ট প্রতিটি ননড্রাইভাল এফডি (এক্স-> এ) এর জন্য একটি সম্পর্ক, আর 3 এনএফ-এ রয়েছে:

(ক) এক্স আর এর জন্য সুপারকি, বা

(খ) এ আর এর মূল বৈশিষ্ট্য

বিসিএনএফের প্রয়োজন (ক) তবে (খ) এর নিজস্ব বিশেষ কেস হিসাবে বিবেচনা করা হবে না। অন্য কথায় বিসিএনএফের প্রয়োজন যে প্রতিটি অনিয়মিত নির্ধারক একটি সুপারকি এমনকি তার নির্ভরযোগ্য বৈশিষ্ট্যগুলি কীটির অংশ হিসাবে ঘটে।

আর এর মাধ্যমে সন্তুষ্ট প্রতিটি ননদীঘ্য এফডি (এক্স-> এ) এর জন্য বিসিএনএফ-এর একটি সম্পর্ক, আর, নীচে রয়েছে:

(ক) এক্স আর এর জন্য সুপারকি

বিসিএনএফ তাই আরও কঠোর।

পার্থক্যটি এতই সূক্ষ্ম যে 3NF হিসাবে বহু লোক অনানুষ্ঠানিকভাবে যা বর্ণনা করেন তা আসলে বিসিএনএফ। উদাহরণস্বরূপ, আপনি এখানে বলেছিলেন যে 3NF এর অর্থ "ডেটা কী [গুলি] এর উপর নির্ভর করে ... এবং কী [গুলি] ছাড়া কিছুই নয়", তবে এটি সত্যই বিসিএনএফের একটি অনানুষ্ঠানিক বর্ণনা এবং 3NF নয়। 3NF আরও নির্ভুলভাবে বর্ণনা করা যেতে পারে " চাবিগুলির উপরে নন-কী ডেটা নির্ভর করে ... এবং কীগুলি ছাড়া কিছুই নয়"।

আপনি আরও বলেছেন:

3 এনএফের উদ্ধৃতিটি স্পষ্টভাবে "কী ছাড়া কিছুই নয়" বলেছে যার অর্থ সমস্ত বৈশিষ্ট্যগুলি কেবলমাত্র মূল কীতে নির্ভর করে।

এটি একটি ওভারসিম্প্লিফিকেশন। 3 এনএফ এবং বিসিএনএফ এবং সমস্ত সাধারণ ফর্মগুলি কেবলমাত্র একটি "প্রাথমিক" কী নয়, সমস্ত প্রার্থী কী এবং / অথবা সুপারকি-র সাথে সম্পর্কিত।


7
কি দারুন. প্রফেসর জ্যানিওলো আসলে আমার ক্লাস (সিএস 143, ইউসিএলএ) পড়ায় এবং ফাইনাল পরীক্ষার প্রস্তুতির সময় আমি এই উত্তরটিতে হোঁচট খেয়েছি। আমার প্রোফেসরের নামটি দেখে দুর্দান্ত, এবং বিস্তারিত উত্তরের জন্য ধন্যবাদ!
ডিভি।

আপনি কি এমন কোনও সম্পর্কের উদাহরণ দিতে পারেন যা 3NF এ রয়েছে তবে বিসিএনএফ-তে নেই? আমার পক্ষে এটি কল্পনা করা শক্ত ...
লিও

10
আর {এ, বি, সি} যেখানে {এ, বি a একটি কী। নির্ভরতা সি-> বি দেওয়া, বিসিএনএফ নয়, তবে 3NF এর প্রয়োজনীয়তা পূরণ করে।
এনভোভেল

2
কী মানেই প্রার্থী চাবি। কী বৈশিষ্ট্যটির অর্থ এমন একটি বৈশিষ্ট্য যা প্রার্থী কী এর অংশ, একে একে একটি প্রধান বৈশিষ্ট্য
এনভিজেল

3
কোনও বৈশিষ্ট্য প্রধান প্রার্থী যদি এটি কোনও প্রার্থী কী এর অংশ হয়; অ-প্রধানমন্ত্রী যদি এটি কোনও প্রার্থী কী এর অংশ না হয়।
এনভোভেল

26

বিসিএনএফ এবং 3 এনএফের মধ্যে পার্থক্য

বিসিএনএফ সংজ্ঞা ব্যবহার করে

যদি এবং কেবলমাত্র এর প্রতিটি নির্ভরশীলতা X → Y এর জন্য, নিম্নলিখিত শর্তগুলির কমপক্ষে একটি ধারন করে :

  • এক্স → ওয়াই একটি তুচ্ছ কার্যকরী নির্ভরতা (Y ⊆ X), বা
  • এক্সটি স্কিমা আর এর জন্য একটি সুপার কী

এবং 3NF সংজ্ঞা

যদি এবং কেবলমাত্র, এর প্রতিটি কার্যকরী নির্ভরতা এক্স → এ এর ​​জন্য, নিম্নলিখিত শর্তগুলির কমপক্ষে একটি ধারণ করে:

  • এক্স-এ একটি রয়েছে (যা, এক্স → এ তুচ্ছ কার্যকরী নির্ভরতা), বা
  • এক্স একটি সুপারকি, বা
  • AX এর প্রতিটি উপাদান, A এবং X এর মধ্যে সেট পার্থক্যটি একটি প্রধান বৈশিষ্ট্য (যেমন, AX এ প্রতিটি বৈশিষ্ট্য কিছু প্রার্থী কীতে থাকে)

আমরা সহজ শর্তে নিম্নলিখিত পার্থক্যটি দেখতে পাচ্ছি:

  • বিসিএনএফ-তে : প্রতিটি আংশিক কী (মূল বৈশিষ্ট্য) কেবল একটি সুপারকি-র উপর নির্ভর করতে পারে ,

যেহেতু

  • 3NF ইন : একটি আংশিক কী (মৌলিক অনুষঙ্গ) করতে পারেন এছাড়াও একটি বৈশিষ্ট্য যে উপর নির্ভর করে না একটি superkey (অর্থাত অন্য আংশিক কী / মৌলিক বৈশিষ্ট্য বা এমনকি একটি অ মৌলিক বৈশিষ্ট্য)।

কোথায়

  1. একটি প্রধান বৈশিষ্ট্য হ'ল প্রার্থী কীতে পাওয়া বৈশিষ্ট্য এবং
  2. একজন প্রার্থী কী যে সম্পর্ক জন্য একটি ন্যূনতম superkey, এবং
  3. একজন 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

সমস্যার সমাধান : এখন আমরা যদি আদালতকে আপগ্রেড করি তবে আমরা গ্যারান্টি দিতে পারি যে হারের প্রকারটি এই পরিবর্তনটি প্রতিফলিত করবে, এবং আমরা কোনও আদালতের জন্য ভুল মূল্য নিতে পারি না।

(প্রযুক্তিগত ভাষায়, আমরা গ্যারান্টি দিতে পারি যে কার্যক্ষম নির্ভরতা "হারের ধরণ" -> "আদালত" লঙ্ঘিত হবে না))


6

সব ভাল উত্তর। এটিকে সহজ ভাষায় রাখতে [বিসিএনএফ] কোনও আংশিক কী কোনও কীটির উপর নির্ভর করতে পারে না।

অর্থাত্ কোনও প্রার্থী কী এর কোনও আংশিক উপসেট (অর্থাত্ সম্পূর্ণ সেট ব্যতীত কোনও তুচ্ছ সাবসেট) কিছু প্রার্থী কীতে কার্যত নির্ভরশীল হতে পারে না।


2
কেন না? আসুন ধরা যাক একটি সম্পর্ক আর (এ, বি, সি, ডি, ই) এবং (এ, বি) এবং (সি, ডি) প্রার্থী কী। তারপরে এবি-> ডি। যেহেতু এবি আর এর একটি সুপারকি, তাই আর বিসিএনএফ থাকা উচিত, তাই না? (এটি কেবল বোঝার চেষ্টা করার জন্য একটি প্রশ্ন))
পেটেইকুন

3

' স্মার্টনাট 700 ', ' বিল কারভিন ', এবং ' স্ক্ল্যাভোভেল ' এর উত্তরগুলি দুর্দান্ত। তবুও আমি এটিতে একটি আকর্ষণীয় দৃষ্টিভঙ্গি রাখি।

ঠিক আছে, আমাদের কাছে প্রাইম এবং নন-প্রাইম কী রয়েছে।

যখন আমরা নন-প্রাইমগুলি কীভাবে প্রাইমগুলির উপর নির্ভর করে তার উপর ফোকাস করি তখন আমরা দুটি কেস দেখতে পাই:

নন-প্রাইম নির্ভরশীল হতে পারে বা নাও হতে পারে

  • নির্ভরশীল যখন: আমরা দেখতে পাচ্ছি যে তারা অবশ্যই একটি পূর্ণ প্রার্থী কীতে নির্ভর করবে। এটি 2NF
  • নির্ভরশীল না হলে: কোনও নির্ভরতা বা ট্রানজিটিভ নির্ভরতা থাকতে পারে না

    • এমনকি ট্রানজিটিভ নির্ভরতাও নয় : নরমালাইজেশন তত্ত্বটি এটিকে কী সম্বোধন করে তা নিশ্চিত নয়।
    • যখন অস্থায়ীভাবে নির্ভরশীল: এটি অযাচিত হিসাবে গণ্য হয়। এটি 3NF

প্রাইমদের মধ্যে নির্ভরতা সম্পর্কে কী?

এখন আপনি দেখুন, আমরা 2 য় বা 3 য় এনএফ দ্বারা প্রাইমদের মধ্যে নির্ভরতার সম্পর্ককে সম্বোধন করছি না । আরও এই জাতীয় নির্ভরতা, যদি কোনও হয় তবে তা কাম্য নয় এবং এইভাবে এটির সমাধান করার জন্য আমাদের একক নিয়ম রয়েছে। এটি বিসিএনএফ

বিল কারভিনের পোস্টের উদাহরণটি এখানে উল্লেখ করে আপনি দেখতে পাবেন যে ' শীর্ষস্থানীয় ' এবং ' শীর্ষস্থানীয় টাইপ ' উভয়ই মূল কী এবং এর নির্ভরতা রয়েছে। তারা যদি নির্ভরতার সাথে অ-প্রাইম হয় তবে 3NF লাথি মারত।

বিঃদ্রঃ:

বিসিএনএফের সংজ্ঞাটি অত্যন্ত জেনারিক এবং প্রাইম এবং নন-প্রাইম মধ্যে পার্থক্যযুক্ত বৈশিষ্ট্য ছাড়াই। তবুও, উপরের চিন্তাভাবনাটি বুঝতে দ্বিতীয় ও তৃতীয় এনএফ-এর পরেও কিছু অসাধারণতা কীভাবে সংহত হয় তা বুঝতে সহায়তা করে।

উন্নত বিষয়: জেনেরিক বিসিএনএফকে 2NF এবং 3NF- এ ম্যাপিং করা হচ্ছে

এখন আমরা জানি যে বিসিএনএফ কোনও প্রাথমিক / অ-মৌলিক বৈশিষ্ট্যের উল্লেখ ছাড়াই একটি জেনেরিক সংজ্ঞা প্রদান করে, আসুন দেখুন বিসিএনএফ এবং 2/3 এনএফ-এর কীভাবে সম্পর্কিত।

প্রথমত, বিসিএনএফের প্রয়োজন (তুচ্ছ ঘটনা বাদে) প্রতিটি কার্যকরী নির্ভরতার জন্য X -> Y(এফডি), এক্স সুপার-কী হওয়া উচিত। আপনি যদি কেবল কোনও এফডি বিবেচনা করেন তবে আমাদের তিনটি কেস রয়েছে - (১) এক্স এবং ওয়াই উভয়ই প্রাইম, (২) উভয় প্রাইম এবং (৩) এক্স প্রাইম এবং ওয়াই অ-প্রাইম -প্রাইম এবং ওয়াই প্রাইম

কেস (1) এর জন্য 3NF যত্ন নেয় care

কেস (3) এর জন্য, 2 এনএফ যত্ন নেয়।

কেস (2) এর জন্য, আমরা বিসিএনএফের ব্যবহার খুঁজে পাই


3

এটি মূল্যবান উত্তর সহ একটি পুরাতন প্রশ্ন, তবে আমি এখনও এমন কিছু বিভ্রান্ত হয়েছি যতক্ষণ না আমি বাস্তব জীবনের উদাহরণ খুঁজে পেলাম যা 3NF দিয়ে সমস্যাটি দেখায়। সম্ভবত একটি 8 বছর বয়সী সন্তানের জন্য উপযুক্ত না তবে আশা করি এটি সাহায্য করবে।

আগামীকাল আমি সেই ত্রৈমাসিক পিতামাতাদের / শিক্ষকদের বৈঠকের একটিতে আমার বড় মেয়ের শিক্ষকদের সাথে দেখা করব। আমার ডায়েরি দেখতে দেখতে এখানে (নাম এবং কক্ষগুলি পরিবর্তন করা হয়েছে):

Teacher   | Date             | Room
----------|------------------|-----
Mr Smith  | 2018-12-18 18:15 | A12 
Mr Jones  | 2018-12-18 18:30 | B10 
Ms Doe    | 2018-12-18 18:45 | C21 
Ms Rogers | 2018-12-18 19:00 | A08 

প্রতি রুমে কেবল একজন শিক্ষক রয়েছেন এবং তারা কখনও চলাফেরা করেন না। আপনি একটি চেহারা আছে, তাহলে আপনি দেখতে পাবেন কিছু: প্রতিবার অ্যাট্রিবিউট জন্য (1) Teacher, Date, Room, আমরা সারি প্রতি শুধুমাত্র একটি মান রয়েছে। (2) সুপার-কী হল: (Teacher, Date, Room), (Teacher, Date)এবং (Date, Room)এবং প্রার্থী কী স্পষ্টত হয় (Teacher, Date)এবং (Date, Room)

(Teacher, Room) সুপারকি নয় কারণ আমি পরের ত্রৈমাসিক টেবিলটি শেষ করব এবং আমার মতো এই সারিও থাকতে পারে (মিঃ স্মিথ নড়েনি!):

Teacher  | Date             | Room
---------|------------------| ----
Mr Smith | 2019-03-19 18:15 | A12

আমরা কী উপসংহার নিতে পারি? (1) 1NF একটি অনানুষ্ঠানিক কিন্তু সঠিক সূত্র। (২) থেকে আমরা দেখতে পাচ্ছি যে কোনও "নন প্রাইম অ্যাট্রিবিউট" নেই: 2NF এবং 3NF বিনামূল্যে দেওয়া হয়।

আমার ডায়েরি 3NF হয়। ভাল! না আসলেই নয় কারণ কোনও ডেটা মডেলার এটি ডিবি স্কিমে গ্রহণ করবেন না। Roomঅ্যাট্রিবিউট উপর নির্ভরশীল Teacherঅ্যাট্রিবিউট (আবার শিক্ষক সরানো না!) কিন্তু স্কিমা এই সত্য প্রতিফলিত না। একটি বুদ্ধিমান ডেটা মডেলার কী করবে? টেবিলটি দুটি ভাগে ভাগ করুন:

Teacher   | Date
----------|-----------------
Mr Smith  | 2018-12-18 18:15
Mr Jones  | 2018-12-18 18:30
Ms Doe    | 2018-12-18 18:45
Ms Rogers | 2018-12-18 19:00

এবং

Teacher   | Room
----------|-----
Mr Smith  | A12
Mr Jones  | B10
Ms Doe    | C21
Ms Rogers | A08

তবে 3NF মূল বৈশিষ্ট্য নির্ভরতাগুলির সাথে কাজ করে না। এটি ইস্যুটি: 3NF সম্মতি কিছু পরিস্থিতিতে সাউন্ড টেবিলের স্কিমা নকশা নিশ্চিত করতে যথেষ্ট নয় ।

বিসিএনএফ-এর সাথে, 2NF এবং 3NF বিধিগুলিতে যদি অ্যাট্রিবিউটটি প্রধান বৈশিষ্ট্য হয় বা না হয় সেদিকে আপনি খেয়াল রাখবেন না। প্রতিটি অ-তুচ্ছ নির্ভরশীলতার জন্য (উপগ্রহগুলি অবশ্যই তাদের সুপারসেট দ্বারা নির্ধারিত হয়), নির্ধারক একটি সম্পূর্ণ সুপার কী। অন্য কথায়, সম্পূর্ণ সুপার কী (তুচ্ছ এফডি বাদে) অন্য কোনও কিছু দ্বারা নির্ধারিত হয় না । (আনুষ্ঠানিক সংজ্ঞা জন্য অন্যান্য উত্তর দেখুন)।

যত তাড়াতাড়ি Roomউপর নির্ভর করে Teacher, Roomঅবশ্যই একটি সাবসেট হতে হবে Teacher(এটি কেস নয়) বা Teacherএকটি সুপার কী হতে হবে (এটি আমার ডায়েরির ক্ষেত্রে নয়, তবে আপনি যখন টেবিলটি বিভক্ত করবেন তখন কেসটি থস করে)।

সংক্ষিপ্তসার হিসাবে: বিএনসিএফ আরও কঠোর, তবে আমার মতে 3NF এর চেয়ে বেশি বোঝা সহজ:

  • বেশিরভাগ ক্ষেত্রে বিসিএনএফ 3NF এর সাথে সমান;
  • অন্যান্য ক্ষেত্রে, বিসিএনএফ হ'ল আপনার মনে হয় / আশা 3NF is
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.