Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
MySQL + SQL · Lesson 29

DBMS में BCNF

BCNF क्या है

BCNF (Boyce-Codd Normal Form) 3NF का ज़्यादा सख़्त रूप है। यह एक छोटी खाई बंद करता है जो 3NF overlapping candidate keys वाली tables में छोड़ सकता है। अगर table BCNF में है, यह एक ख़ास तरह की dependency-based redundancy से मुक्त होने की गारंटी है।

💡 BCNF "3NF, पर सख़्त" है: हर dependency A -> B को, A super key होना चाहिए।

BCNF नियम

Table BCNF में है अगर, हर functional dependency A -> B को, determinant A एक super key हो (यह row को विशिष्ट पहचान सके)। अगर कोई determinant super key न हो, table BCNF में नहीं है और decompose करनी चाहिए।

BCNF बनाम 3NF

बात3NFBCNF
Determinant नियमSuper key या dependent candidate key का हिस्साDeterminant super key होना चाहिए
सख़्तीकम सख़्तज़्यादा सख़्त
हर BCNF 3NF है?—हाँ
हर 3NF BCNF है?हमेशा नहीं—

जब 3NF काफ़ी नहीं

एक table सोचिए जहाँ student subjects लेता है, हर एक एक teacher पढ़ाता है, और हर teacher एक subject पढ़ाता है:

(student, subject) -> teacher
teacher -> subject

यहाँ teacher -> subject का determinant (teacher) super key नहीं है। Table 3NF में हो सकती है पर फिर भी redundant subject-teacher तथ्य store करती है। यह BCNF में नहीं है।

BCNF में ठीक करना

Decompose कीजिए ताकि हर determinant super key बन जाए:

teaches(teacher PK, subject)
takes(student, teacher)

अब teacher -> subject ऐसी table में है जहाँ teacher key है, और student-teacher link अलग है। हर dependency को अब super-key determinant है — design BCNF में है।

BCNF कब इस्तेमाल करें

  • 3NF इस्तेमाल कीजिए ज़्यादातर रोज़ के databases को — यह आमतौर पर काफ़ी है।
  • BCNF इस्तेमाल कीजिए जब overlapping candidate keys 3NF के बाद भी redundancy कराएँ।
  • Trade-off का ध्यान — BCNF को queries में अतिरिक्त joins चाहिए हो सकते हैं।

BCNF आख़िरी बची dependency redundancy हटाने के बारे में है, ज़्यादा tables की कीमत पर।

आम गलतियाँ

  • यह सोचना 3NF हमेशा BCNF के बराबर है। 3NF table अब भी BCNF तोड़ सकती है।
  • Overlapping candidate keys अनदेखा करना। वहीं BCNF मायने रखता है।
  • Over-decomposing। अतिरिक्त tables joins जोड़ सकती हैं; ज़रूरत तक ही normalize कीजिए।
  • यह भूलना BCNF 3NF का मतलब है। BCNF तक पहुँचना मतलब आप पहले से 3NF पूरा करते हैं।

सारांश

  • BCNF 3NF का ज़्यादा सख़्त रूप है।
  • नियम: हर A -> B को, A super key होना चाहिए।
  • 3NF overlapping candidate keys के साथ redundancy छोड़ सकता है; BCNF हटाता है।
  • हर BCNF table 3NF में है, पर उल्टा नहीं।
  • ज़्यादातर मामलों को 3NF; वो redundancy बचे तब BCNF इस्तेमाल कीजिए।

आगे, पिछले forms दोहराइए normalization में, या theory functional dependency में।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

BCNF क्या है?
BCNF (Boyce-Codd Normal Form) 3NF का ज़्यादा सख़्त रूप है। Table BCNF में है अगर, हर functional dependency A -> B को, A एक super key हो। यह कुछ redundancy हटाता है जो 3NF overlapping candidate keys वाली tables में अब भी छोड़ सकता है।
3NF और BCNF में क्या अंतर है?
3NF ऐसी dependency allow करता है जहाँ determinant super key न हो, जब तक dependent candidate key का हिस्सा हो। BCNF इसे बिल्कुल allow नहीं करता — हर determinant super key होना चाहिए। तो BCNF 3NF से सख़्त है।
3NF कब काफ़ी नहीं होता?
3NF तब redundancy छोड़ सकता है जब table में कई overlapping candidate keys हों और non-key column key का हिस्सा तय करे। ऐसे दुर्लभ मामलों में, table 3NF में है पर BCNF में नहीं, और anomalies अब भी हो सकती हैं।
क्या हर BCNF table 3NF में भी है?
हाँ। BCNF मज़बूत है, तो BCNF की हर table अपने-आप 3NF में है (और 2NF व 1NF)। उल्टा हमेशा सच नहीं: 3NF table BCNF में न हो सकती है।
क्या मुझे हमेशा BCNF तक normalize करना चाहिए?
अक्सर व्यावहारिक databases को 3NF काफ़ी है। BCNF तब इस्तेमाल होता है जब आपको हर आख़िरी dependency-based redundancy हटानी हो, पर BCNF में decompose करना कभी queries को ज़्यादा joins चाहिए बना सकता है, तो यह trade-off है।
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

अगला topicDatabase Design में Denormalization आपकी प्रगति: 29 / 151 (19%) · Lesson 30 / 151 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें