BCNF In DBMS In Hindi?
हेलो दोस्तों आज के इस ब्लॉग पोस्ट(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) को खूब एन्जॉय किया होगा|
आप स्वतंत्रता पूर्वक अपना बहुमूल्य फीडबैक और कमेंट यहाँ पर दे सकते है|
आपका समय शुभ हो|