अपने डेटाबेस को सामान्यीकृत करना: दूसरे सामान्य फॉर्म में संक्रमण (2 एनएफ)

दूसरे सामान्य फॉर्म में डेटाबेस डालना

पिछले महीने, हमने डेटाबेस तालिका को सामान्य करने के कई पहलुओं को देखा है। सबसे पहले, हमने डेटाबेस सामान्यीकरण के बुनियादी सिद्धांतों पर चर्चा की। पिछली बार, हमने पहले सामान्य रूप (1 एनएफ) द्वारा निर्धारित मूलभूत आवश्यकताओं की खोज की। अब, आइए अपनी यात्रा जारी रखें और दूसरे सामान्य रूप (2 एनएफ) के सिद्धांतों को कवर करें।

2 एनएफ की सामान्य आवश्यकताओं को याद करें:

इन नियमों को एक सरल कथन में संक्षेप में सारांशित किया जा सकता है: 2 एनएफ इसे निकालने के द्वारा तालिका में अनावश्यक डेटा की मात्रा को कम करने, इसे नई तालिका में रखकर और उन तालिकाओं के बीच संबंध बनाने का प्रयास करता है।

आइए एक उदाहरण देखें। एक ऑनलाइन स्टोर की कल्पना करें जो डेटाबेस में ग्राहक की जानकारी को बनाए रखती है। उनके पास निम्नलिखित तत्वों वाले ग्राहकों नामक एक एकल तालिका हो सकती है:

इस तालिका में एक संक्षिप्त रूप से अनावश्यक डेटा की एक छोटी राशि प्रकट होती है। हम "सागर क्लिफ, एनवाई 11579" और "मियामी, FL 33157" प्रविष्टियों को दो बार संग्रहित कर रहे हैं। अब, यह हमारे सरल उदाहरण में बहुत अधिक जोड़ा गया भंडारण जैसा प्रतीत नहीं होता है, लेकिन अगर हमारे टेबल में हजारों पंक्तियां थीं तो बर्बाद जगह की कल्पना करें। इसके अतिरिक्त, यदि सागर क्लिफ के लिए ज़िप कोड बदलना था, तो हमें डेटाबेस में कई स्थानों पर यह परिवर्तन करना होगा।

एक 2 एनएफ-अनुरूप डेटाबेस संरचना में, यह अनावश्यक जानकारी निकाली जाती है और एक अलग तालिका में संग्रहीत होती है। हमारी नई टेबल (चलिए इसे ज़िप कहते हैं) में निम्नलिखित फ़ील्ड हो सकते हैं:

अगर हम सुपर-कुशल बनना चाहते हैं, तो हम इस तालिका को पहले भी भर सकते हैं - डाकघर सभी वैध ज़िप कोड और उनके शहर / राज्य संबंधों की निर्देशिका प्रदान करता है। निश्चित रूप से, आपको एक ऐसी स्थिति का सामना करना पड़ा जहां इस प्रकार के डेटाबेस का उपयोग किया गया था। किसी ने आदेश लेते हुए आपको पहले अपने ज़िप कोड के लिए कहा होगा और फिर उस शहर और राज्य को पता था जिसे आप बुला रहे थे। इस प्रकार की व्यवस्था ऑपरेटर त्रुटि को कम करती है और दक्षता बढ़ जाती है।

अब जब हमने ग्राहक तालिका से डुप्लिकेट डेटा हटा दिया है, तो हमने दूसरे सामान्य रूप के पहले नियम को संतुष्ट कर दिया है। हमें अभी भी दो तालिकाओं को एक साथ जोड़ने के लिए एक विदेशी कुंजी का उपयोग करने की आवश्यकता है। हम उस संबंध को बनाने के लिए ज़िप कोड (ज़िप तालिका से प्राथमिक कुंजी) का उपयोग करेंगे। यहां हमारी नई ग्राहक तालिका है:

हमने अब डेटाबेस में संग्रहीत अनावश्यक जानकारी की मात्रा को कम कर दिया है और हमारी संरचना दूसरे सामान्य रूप में है!

यदि आप यह सुनिश्चित करना चाहते हैं कि आपका डेटाबेस सामान्यीकृत है, तो इस श्रृंखला में हमारे अन्य लेखों का पता लगाएं: