हेलो दोस्तों आज के इस ब्लॉग पोस्ट(BCNF In DBMS In Hindi) में मैं आपको BCNF normal form के बारे में हिंदी में जानकारी देने वाला हूँ| BCNF का फुल फॉर्म होता है Boyce code normal form |
यह रिलेशन 3NF से थोड़ा ज्यादा ही strict है | क्योकि जो भी रिलेशन BCNF में होगा वो 3NF में जरूर होगा, पर यह जरुरी नहीं है कि जो भी रिलेशन 3NF में है वो BCNF में भी हो |BCNF In DBMS In Hindi|
What is BCNF(BCNF In DBMS In Hindi) normal form example: The BCNF can be defined in different ways given below
कोई भी रिलेशन BCNF में तभी होगा जब प्रत्येक non -trival अथवा लेफ्ट साइड की फंक्शनल डिपेंडेंसी एक कैंडिडेट key होगी |BCNF In DBMS In Hindi|
कुछ और शब्दों में कहें तो कोई भी रिलेशन BCNF में तभी होगा जब केवल determinants ही कैंडिडेट के हो |BCNF In DBMS In Hindi|
example के लिए एक रिलेशन R में X ->A होल्ड करता है | पर A X में नहीं है | तभी X रिलेशन R में एक कैंडिडेट होगा|BCNF In DBMS In Hindi|
अगर हम इन ब्लॉग 2NF and 3NF के रेफ़्रेन्स के बारे में बात करें तो यहाँ पर रिलेशन sale और S जो कि 3NF में नहीं है तो फिर यह BCNF में भी नहीं होगा |
पर वही दूसरी तरफ रिलेशन SP , SC , CS जो कि 3 NF में है और BCNF में भी है|
क्योकि रिलेशन sale में हमारे पास चार determinants है {S#}, {P#}, {City}, {S#, P#} , जिनमे से केवल {स#, प#} ही एक कैंडिडेट key है |
इसलिए रिलेशन sale BCNF में नहीं है |
और रिलेशन S में दो determinants है {S#}, {City} और यहाँ पर सिटी एक कैंडिडेट key नहीं है इसलिए यह S रिलेशन भी BCNF में नहीं है |
और दूसरी तरफ relation SP , CS , और SC में सभी सप्लायर कैंडिडेट key ही केवल denterminants है | इसलिए ये सभी BCNF में है |
वैसे तो ज्यादातर रिलेशन जो कि 3NF में है वो BCNF में होते ही है|
पर जो 3NF relation BCNF में नहीं होते है उसके पीछे के reasons निम्नलिखित है :
रिलेशन में जो भी कैंडिडेट कीस होती है वो कम्पोजिट key होती है |
एक रिलेशन में एक से ज्यादा candidate key होती है |
keys में कुछ attributes common होते है |
चलिए अगर आपको अभी तक BCNF normal form के बारे में ज्यादा अच्छे से समझ नहीं आया है|
तो फिर अब हम आपको एक example के माध्यम से समझाने के प्रयास करते है जो कि निम्नलिखित है :
Table: Relation – Player
Name | Language | Hobby |
Nitin | Hindi | Football |
Nitin | English | Swimming |
Nitin | Hindi | Swimming |
Nitin | English | Football |
Jitin | French | Jogging |
Jitin | Spanish | Jogging |
यहाँ पर आप एक रिलेशन player देख सकते है | हम नाम को एक unique key लेते है|
और इस टेबल के अनुसार एक प्लेयर एक से ज्यादा लैंग्वेज को जान सकता है और एक से ज्यादा हॉबी रख सकता है |
तो यहाँ पर हर एक attribute एक प्राइमरी के कि तरह काम कर रहा है| इसलिए यह रिलेशन BCNF में है |
पर यह रिलेशन कुछ anomalies को face कर रहा है जैसे कि :
अगर हम jitin कि एक और हॉबी को इस टेबल में ऐड करना चाह रहे है तो फिर हम कुछ इस तरह से इसे add कर सकते है :
Name | Language | Hobby |
Nitin | Hindi | Football |
Nitin | English | Football |
Nitin | Hindi | Swimming |
Nitin | English | Swimming |
Jitin | French | Jogging |
Jitin | Spanish | Jogging |
Jitin | French | Jogging |
पर अगर हम कुछ इस तरह से tuple को ऐड करेंगे तो इसका मतलब यह होगा कि जितिन को सिंगिंग केवल फ्रेंच लैंग्वेज में आती है पर स्पेनिश में नहीं|
पर अगर हम spanish के लिए भी एक tuple ऐड करें तो रिलेशन कुछ इस तरह से दिखेगा :
Name | Language | Hobby |
Nitin | Hindi | Football |
Nitin | English | Football |
Nitin | Hindi | Swimming |
Nitin | English | Swimming |
Jitin | French | Jogging |
Jitin | Spanish | Jogging |
Jitin | French | Jogging |
Jitin | Spanish | Jogging |
तो BCNF relation में कुछ anomalies होती है जो कि निम्नलिखित है :
insert
जैसे कि अगर हम एक सिंगल tuple add करना चाह रहे है तो फिर हमें बहुत से tuple को ऐड करना पड़ता है|
जैसे हम ऊपर के example में देख चुके है |
Delete :
Insertion के जैसे deletion में भी प्रॉब्लम है |
अगर हम एक tuple को डिलीट करना चाहते है तो फिर हमें कुछ और tuple को डिलीट करने की जरुरत पड़ेगी |
जैसे कि अगर हम (Nitin, Hindi, Football) को डिलीट करते है तो फिर हमें (Nitin, English, Football) को भी डिलीट करना पड़ेगा|
कुछ और extensive blogs पढ़ने के लिए नीचे दी गयी blog लिंक पर क्लिक करें|
What is Normalization and why is it needed?
Third Normal Form In DBMS In Hindi?
Second Normal Form In DBMS In Hindi?
First Normal Form In Dbms In Hindi?
Conclusion:
तो दोस्तों इस ब्लॉग पोस्ट(BCNF In DBMS In Hindi) में हमने BCNF normal form के बारे में हिंदी में जाना | BCNF का full form boyce code normal form होता है | और कोई भी रिलेशन को BCNF में होता है वो 3NF में भी होगा| पर यह जरुरी नहीं है कि कोई रिलेशन अगर 3NF में है तो BCNF में जरूर ही होगा, वह BCNF में हो भी सकता है और नहीं भी | यह depend करता है कि वह रिलेशन BCNF की कंडीशन को फुलफिल करता है या नहीं |
इस ब्लॉग(BCNF In DBMS In Hindi) को लेकर आपके मन में कोई भी प्रश्न है तो आप हमें इस पते support@a5theory.comपर ईमेल लिख सकते है|
आशा करता हूँ, कि आपने इस पोस्ट(BCNF In DBMS In Hindi) को खूब एन्जॉय किया होगा|
आप स्वतंत्रता पूर्वक अपना बहुमूल्य फीडबैक और कमेंट यहाँ पर दे सकते है|
आपका समय शुभ हो|