तीसरे सामान्य फॉर्म (3 एनएफ) में डेटाबेस डालना

तीसरा सामान्य रूप (3 एनएफ) एक डेटाबेस सिद्धांत है जो पहले सामान्य फॉर्म (1 एनएफ) और दूसरा सामान्य फॉर्म (2 एनएफ) द्वारा प्रदान किए गए डेटाबेस सामान्यीकरण सिद्धांतों पर निर्माण करके डेटा की अखंडता का समर्थन करता है।

तीसरा सामान्य फॉर्म आवश्यकताएँ

डेटाबेस के लिए तीसरे सामान्य रूप में होने के लिए दो बुनियादी आवश्यकताएं हैं:

प्राथमिक कुंजी निर्भरता के बारे में

आइए आगे की खोज करें कि हम इस तथ्य से क्या मतलब रखते हैं कि सभी कॉलम प्राथमिक कुंजी पर निर्भर होना चाहिए।

यदि कॉलम का मान प्राथमिक कुंजी और तालिका में किसी अन्य कॉलम से लिया जा सकता है, तो यह 3 एनएफ का उल्लंघन करता है। इन कॉलम के साथ एक कर्मचारी तालिका पर विचार करें:

क्या LastName और FirstName केवल कर्मचारी के मूल्य पर निर्भर करते हैं? खैर, क्या LastName फर्स्टनाम पर निर्भर हो सकता है? नहीं, क्योंकि LastName में निहित कुछ भी फर्स्टनाम का मान सुझाएगा। फर्स्टनाम अंतिम नाम पर निर्भर हो सकता है? फिर से नहीं, क्योंकि यह भी सच है: जो कुछ भी अंतिम नाम हो सकता है, वह फर्स्टनाम के मूल्य के रूप में एक संकेत प्रदान नहीं कर सका। इसलिए, यह तालिका 3 एनएफ अनुपालन है।

लेकिन इस वाहन तालिका पर विचार करें:

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

इसे अनुपालन करने के लिए, हमें अतिरिक्त निर्भर कॉलम को दूसरी तालिका में स्थानांतरित करने और विदेशी कुंजी का उपयोग करके संदर्भित करने की आवश्यकता होगी। इसके परिणामस्वरूप दो टेबल होंगे:

वाहन टेबल

नीचे दी गई तालिका में, मॉडल आईडी मॉडल तालिका के लिए एक विदेशी कुंजी है:

मॉडल टेबल

यह नई टेबल निर्माताओं को मॉडल बनाती है। यदि आप किसी मॉडल के लिए विशिष्ट वाहन जानकारी अपडेट करना चाहते हैं, तो आप इसे वाहन तालिका के बजाए इस तालिका में करेंगे।

3 एनएफ मॉडल में व्युत्पन्न क्षेत्र

एक तालिका में व्युत्पन्न फ़ील्ड हो सकता है - जिसे तालिका में अन्य कॉलम के आधार पर गणना की जाती है। उदाहरण के लिए, विजेट ऑर्डर की इस तालिका पर विचार करें:

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

वास्तव में, चूंकि यह व्युत्पन्न होता है, इसलिए डेटाबेस में इसे स्टोर करना बेहतर नहीं है।

डेटाबेस क्वेरी करते समय हम इसे "फ्लाई पर" गणना कर सकते हैं। उदाहरण के लिए, हमने पहले आदेश संख्या और योग पुनर्प्राप्त करने के लिए इस क्वेरी का उपयोग किया होगा:

ऑर्डर नम्बर चुनें, विजेटऑर्डर से कुल

अब हम निम्नलिखित क्वेरी का उपयोग कर सकते हैं:

ऑर्डर नम्बर, यूनिटप्रिस * विजेटऑर्डर से कुल के रूप में मात्रा चुनें

सामान्यीकरण नियमों का उल्लंघन किए बिना एक ही परिणाम प्राप्त करने के लिए।