सामान्यीकरण क्या है? 1NF, 2NF, 3NF, BCNF डेटाबेस उदाहरण

विषय - सूची:

Anonim

सामान्यीकरण क्या है?

सामान्यीकरण एक डेटाबेस डिज़ाइन तकनीक है जो डेटा अतिरेक को कम करती है और सम्मिलन, अद्यतन और हटाए जाने की विसंगतियों जैसी अवांछनीय विशेषताओं को समाप्त करती है। सामान्यीकरण नियम बड़े तालिकाओं को छोटी तालिकाओं में विभाजित करते हैं और उन्हें रिश्तों का उपयोग करके लिंक करते हैं। SQL में Normalization का उद्देश्य अनावश्यक (दोहरावदार) डेटा को समाप्त करना और यह सुनिश्चित करना है कि डेटा तार्किक रूप से संग्रहीत है।

रिलेशनल मॉडल के आविष्कारक एडगर कॉड ने पहले सामान्य फॉर्म की शुरुआत के साथ डेटा के सामान्यीकरण के सिद्धांत का प्रस्ताव रखा, और उन्होंने दूसरे और तीसरे सामान्य फॉर्म के साथ सिद्धांत का विस्तार करना जारी रखा। बाद में उन्होंने बॉयस-कोड्ड नॉर्मल फॉर्म के सिद्धांत को विकसित करने के लिए रेमंड एफ। बॉयस को शामिल किया।

डेटाबेस सामान्य प्रपत्र

यहाँ सामान्य प्रपत्रों की एक सूची दी गई है

  • 1NF (पहला सामान्य रूप)
  • 2NF (दूसरा सामान्य फॉर्म)
  • 3NF (तीसरा सामान्य फॉर्म)
  • बीसीएनएफ (बॉयस-कोडड नॉर्मल फॉर्म)
  • 4NF (चौथा सामान्य रूप)
  • 5NF (पांचवां सामान्य रूप)
  • 6NF (छठा सामान्य रूप)

SQL सर्वर में डेटा सामान्यीकरण का सिद्धांत अभी भी आगे विकसित किया जा रहा है। उदाहरण के लिए, 6 वें सामान्य रूप पर भी चर्चा होती है । हालांकि, अधिकांश व्यावहारिक अनुप्रयोगों में, सामान्यीकरण 3 आरडी सामान्य फॉर्म में अपना सर्वश्रेष्ठ प्राप्त करता है । एसक्यूएल सामान्यीकरण सिद्धांतों का विकास नीचे दिया गया है-

डेटाबेस सामान्य प्रपत्र

डेटाबेस सामान्य उदाहरण के साथ

डेटाबेस सामान्यीकरण उदाहरण को केस स्टडी की सहायता से आसानी से समझा जा सकता है। मान लें, एक वीडियो लाइब्रेरी किराए पर ली गई फिल्मों का एक डेटाबेस रखता है। डेटाबेस में किसी भी सामान्यीकरण के बिना, सभी जानकारी एक तालिका में संग्रहीत की गई है जैसा कि नीचे दिखाया गया है। आइए तालिकाओं के उदाहरण के साथ डेटाबेस में सामान्यीकरण को समझते हैं:

यहां आप देखते हैं कि मूवीज रेंटेड कॉलम में कई वैल्यूज हैं। अब 1 सामान्य रूपों में चलते हैं:

1NF (प्रथम सामान्य प्रपत्र) नियम

  • प्रत्येक टेबल सेल में एक एकल मान होना चाहिए।
  • प्रत्येक रिकॉर्ड को अद्वितीय होना चाहिए।

1NF में उपरोक्त तालिका-

1NF उदाहरण

आगे बढ़ने से पहले आइए कुछ बातों को समझते हैं -

एक कुंजी क्या है?

एक कुंजी एक मूल्य है जिसका उपयोग किसी तालिका में विशिष्ट रूप से रिकॉर्ड की पहचान करने के लिए किया जाता है। एक कुंजी एक कॉलम या कई कॉलम का संयोजन हो सकता है

नोट: एक तालिका में कॉलम जिनका उपयोग रिकॉर्ड की पहचान करने के लिए नहीं किया जाता है उन्हें गैर-कुंजी कॉलम कहा जाता है।

प्राथमिक कुंजी क्या है?

प्राथमिक एक एकल स्तंभ मान है जिसका उपयोग किसी डेटाबेस रिकॉर्ड को विशिष्ट रूप से पहचानने के लिए किया जाता है।

इसकी निम्नलिखित विशेषताएं हैं

  • एक प्राथमिक कुंजी पूर्ण नहीं हो सकती
  • एक प्राथमिक कुंजी मान अद्वितीय होना चाहिए
  • प्राथमिक प्रमुख मूल्यों को शायद ही कभी बदला जाना चाहिए
  • नया रिकॉर्ड डालने पर प्राथमिक कुंजी को एक मूल्य दिया जाना चाहिए।

समग्र कुंजी क्या है?

एक संयुक्त कुंजी एक स्तंभ की एक प्राथमिक कुंजी है जो किसी रिकॉर्ड को विशिष्ट रूप से पहचानने के लिए उपयोग की जाती है

हमारे डेटाबेस में, हमारे पास रॉबर्ट फिल के समान नाम वाले दो लोग हैं, लेकिन वे अलग-अलग जगहों पर रहते हैं।

इसलिए, हमें रिकॉर्ड की पहचान करने के लिए पूर्ण नाम और पते दोनों की आवश्यकता होती है। वह एक समग्र कुंजी है।

चलो दूसरे सामान्य रूप में चलते हैं 2NF

2NF (दूसरा सामान्य फॉर्म) नियम

  • नियम 1- 1NF में हो
  • नियम 2- एकल स्तंभ प्राथमिक कुंजी

यह स्पष्ट है कि जब तक हम उपरोक्त तालिका का विभाजन नहीं करते हैं, तब तक हम अपने साधारण डेटाबेस को 2 एन डी सामान्यकरण रूप में आगे नहीं बढ़ा सकते हैं ।

हमने अपनी 1NF तालिका को दो तालिकाओं में विभाजित किया है। तालिका 1 और तालिका 2। तालिका 1 में सदस्य जानकारी है। तालिका 2 में किराए की फिल्मों की जानकारी है।

हमने एक नया कॉलम शुरू किया है, जिसका नाम सदस्यता + है जो तालिका 1 की प्राथमिक कुंजी है। सदस्यता आईडी का उपयोग करके रिकॉर्ड्स को विशिष्ट रूप से तालिका 1 में पहचाना जा सकता है।

डेटाबेस - विदेशी कुंजी

तालिका 2 में, सदस्यता_आईडी विदेशी कुंजी है

विदेशी कुंजी एक अन्य तालिका की प्राथमिक कुंजी को संदर्भित करती है! यह आपके टेबल्स को जोड़ने में मदद करता है

  • एक विदेशी कुंजी का प्राथमिक कुंजी से अलग नाम हो सकता है
  • यह सुनिश्चित करता है कि एक तालिका में पंक्तियों की पंक्तियाँ दूसरे में हों
  • प्राथमिक कुंजी के विपरीत, उन्हें अद्वितीय होने की आवश्यकता नहीं है। ज्यादातर वे नहीं हैं
  • विदेशी चाबियां शून्य हो सकती हैं, हालांकि प्राथमिक कुंजी नहीं हो सकती

आपको विदेशी कुंजी की आवश्यकता क्यों है?

मान लीजिए, एक नौसिखिया इस तरह के रूप में टेबल बी में एक रिकॉर्ड सम्मिलित करता है

आप केवल अपनी विदेशी कुंजी में मान डालने में सक्षम होंगे जो मूल तालिका में अद्वितीय कुंजी में मौजूद हैं। यह संदर्भात्मक अखंडता में मदद करता है।

तालिका 1 से सदस्यता आईडी की विदेशी कुंजी के रूप में तालिका 2 से सदस्यता आईडी की घोषणा करके उपरोक्त समस्या को दूर किया जा सकता है

अब, यदि कोई सदस्यता आईडी फ़ील्ड में कोई मान सम्मिलित करने का प्रयास करता है जो मूल तालिका में मौजूद नहीं है, तो एक त्रुटि दिखाई जाएगी!

सकर्मक क्रियात्मक निर्भरताएँ क्या हैं?

एक गैर-कुंजी स्तंभ को परिवर्तित करते समय एक सकर्मक कार्यात्मक निर्भरता, किसी अन्य गैर-कुंजी स्तंभ को बदलने का कारण हो सकता है

तालिका पर विचार करें। गैर-कुंजी कॉलम को पूरा नाम बदलने से सैल्यूटेशन बदल सकता है।

3NF में चलते हैं

3NF (तीसरा सामान्य फॉर्म) नियम

  • नियम 1- 2NF में हो
  • नियम 2- कोई सकर्मक कार्यात्मक निर्भरता नहीं है

हमारी 2NF तालिका को 3NF में ले जाने के लिए, हमें फिर से अपनी तालिका को विभाजित करने की आवश्यकता है।

3NF उदाहरण

नीचे SQL डेटाबेस में एक 3NF उदाहरण है:

हमने फिर से अपनी टेबल को विभाजित किया है और एक नई तालिका बनाई है जो सैल्यूटेशन को स्टोर करती है।

कोई सकर्मक कार्यात्मक निर्भरता नहीं हैं, और इसलिए हमारी तालिका 3NF में है

तालिका 3 में सैल्यूटेशन आईडी प्राथमिक कुंजी है, और तालिका 1 में सलामीकरण आईडी तालिका 3 में प्राथमिक कुंजी के लिए विदेशी है

अब हमारा छोटा उदाहरण एक ऐसे स्तर पर है जिसे सामान्यीकरण के उच्चतर रूपों को प्राप्त करने के लिए और अधिक विघटित नहीं किया जा सकता है। वास्तव में, यह पहले से ही उच्च सामान्यीकरण रूपों में है। सामान्य डेटाबेस में डेटा को सामान्य करने के अगले स्तरों में जाने के लिए अलग-अलग प्रयासों की सामान्य रूप से जटिल डेटाबेस में आवश्यकता होती है। हालाँकि, हम अगले कुछ समय में सामान्यीकरण के अगले स्तरों पर चर्चा करेंगे।

बीसीएनएफ (बॉयस-कोडड नॉर्मल फॉर्म)

यहां तक ​​कि जब एक डेटाबेस 3 आरडी नॉर्मल फॉर्म में होता है, तब भी विसंगतियों का परिणाम होता है यदि इसमें एक से अधिक कैंडिडेट कुंजी होते हैं।

कभी-कभी बीसीएनएफ को 3.5 सामान्य रूप भी कहा जाता है

4NF (चौथा सामान्य रूप) नियम

यदि किसी डेटाबेस तालिका उदाहरण में संबंधित इकाई का वर्णन करने वाले दो या अधिक, स्वतंत्र और बहुविकल्पीय डेटा शामिल नहीं हैं, तो यह 4 वें सामान्य रूप में है।

5NF (पाँचवाँ सामान्य रूप) नियम

एक तालिका केवल 5 वें सामान्य रूप में है यदि यह 4NF में है और यह डेटा की हानि के बिना किसी भी छोटी तालिका की संख्या में विघटित नहीं की जा सकती है।

6NF (छठा सामान्य रूप) प्रस्तावित

6 वें सामान्य रूप को मानकीकृत नहीं किया गया है, फिर भी, डेटाबेस विशेषज्ञों द्वारा कुछ समय के लिए इस पर चर्चा की जा रही है। उम्मीद है, हम निकट भविष्य में 6 वें सामान्य रूप के लिए एक स्पष्ट और मानकीकृत परिभाषा होगा ...

यह सब SQL सामान्यीकरण के लिए है !!!

सारांश

  • डेटाबेस डिजाइनिंग एक डेटाबेस प्रबंधन प्रणाली के सफल कार्यान्वयन के लिए महत्वपूर्ण है जो एक एंटरप्राइज़ सिस्टम की डेटा आवश्यकताओं को पूरा करता है।
  • DBMS में सामान्यीकरण प्रक्रिया डेटाबेस सिस्टम का उत्पादन करने में मदद करती है जो लागत प्रभावी हैं और बेहतर सुरक्षा मॉडल हैं।
  • कार्यात्मक निर्भरता सामान्यीकृत डेटा प्रक्रिया का एक बहुत महत्वपूर्ण घटक है
  • अधिकांश डेटाबेस सिस्टम तीसरे सामान्य रूपों तक सामान्यीकृत डेटाबेस हैं।
  • एक प्राथमिक कुंजी विशिष्ट पहचान तालिका में रिकॉर्ड है और शून्य नहीं हो सकती
  • एक विदेशी कुंजी तालिका को जोड़ने में मदद करती है और एक प्राथमिक कुंजी को संदर्भित करती है