विषय-सूचि
Normalisation क्या है? (what is normalisation in ms access)
Normalization एक ऐसी प्रक्रिया है जो आपके डाटा को डेटाबेस के अंदर व्यवस्थित करने कि सहूलियत देती है। इसके अंदर ये चीजें हो सकती है:
- एक या एक से ज्यादा टेबल को क्रिएट करना।
- उन टेबल के बिच रिलेशनशिप स्थापित करना। ऐसा inconsistent dependency और redundancy हटाने वाले नियमों को फॉलो करते हुए करते हैं ताकि टेबल के अंदर का डाटा सुरक्षित रहे।
Redundancy क्या है? (redundancy in ms access)
redundant डाटा आपके डिस्क कि जगह को बर्बाद करते हैं और उसे मेन्टेन करने में समस्याएँ खड़ी करते हैं। अगर ये अन्वाश्याँ डाटा एक से ज्यादा लोकेशन पर उपस्थित हैं तो उन्हें उन सभी जगहों पर सामान तरीके से हटाना पड़ता है।
अगर आपको अपने ग्राहकों में से किसी एक का पता अपडेट कर के बदलना है तो ये ज्रूओरी हो जाता है कि वो पता सिर्फ Customers वाले टेबल में ही हो और कहीं और नही हो।
अगर समान डाटा एक से ज्यादा जगहों पर होते हैं तो उन्हें हटाने में भी समस्या खड़ी हो जाती है।
Inconsistent Dependency क्या है?
जैसे उपर हमने उदाहरण दिया कि ग्राहकों का पता कस्टमर्स वाले टेबल में ही हो तो बेहतर है और कहीं और समान डाटा होने से समस्या खड़ी हो जाती है।
इसी तरह अगर आपको किसी कर्मचारी का वेतन देखना है जो उस ग्राहक को प्रोडक्ट डिलीवर करता है तो आप उस चीज को कस्टमर्स वाले टेबल में नही देख सकते।
एक कर्मचारी का वेतन उस कर्मचारी पर dependent है या फिर निर्भर है, इसीलिए उसे Employees टेबल में होना चाहिए।
inconsistent डाटा का मतलब ये हुआ कि हमे उस डाटा को खोजने में दिक्कतें आ सकती है क्योंकि हो सकता है उस डाटा तक पहुँचने का रास्ता ही बंद हो गया हो।
डेटाबेस normalization कैसे करें?
यहाँ हम आपको एक स्टूडेंट वाले टेबल का उदाहरण देकर ये बताने जा रहे हैं कि normalization करने कि प्रक्रिया क्या है और इसे कैसे करते हैं।
- नीचे एक ऐसा टेबल है जो normalized नही है यानी unnormalized है।
Student# | Advisor | Adv-Room | Class1 | Class2 | Class3 |
---|---|---|---|---|---|
1022 | Jones | 412 | 101-07 | 143-01 | 159-02 |
4123 | Smith | 216 | 201-01 | 211-02 | 214-01 |
- फर्स्ट नार्मल फॉर्म: कोई भी समूह दुबारा नही आना चाहिए।
टेबल के केवल दो ही आयाम होने चाहिए यानी कि दो ही dimensions होने चाहिए। चूँकि एक स्टूडेंट के बहुत सारे क्लासेज हैं, इसीलिए उन क्लासेज को एक अलग टेबल में लिस्ट किया जाना चाहिए। जैसे उपर वाले टेबल के क्षेत्र- Class1, Class2, Class3 इत्यादि टेबल के डिजाईन में समस्या होने के प्रतीक हैं।
- स्प्रेडशीट अक्सर तीन आयामों यानी कि तीन डाइमेंशन्स का प्रयोग करते हैं लेकिन टेबल में ऐसा करना सही नही होता। अब हम बार-बार आने वाले यानि रिपीट होने वाले क्लासेस को अलग कर के एक अलग टेबल बनायेंगे जो इस प्रकार होगा-
Student# | Advisor | Adv-Room | Class# |
---|---|---|---|
1022 | Jones | 412 | 101-07 |
1022 | Jones | 412 | 143-01 |
1022 | Jones | 412 | 159-02 |
4123 | Smith | 216 | 201-01 |
4123 | Smith | 216 | 211-02 |
4123 | Smith | 216 | 214-01 |
- सेकंड नार्मल फॉर्म: redundant डाटा को हटायें।
नीचे के दो टेबल सेकंड नार्मल फॉर्म को दिखाते हैं:
Students:
Student# | Advisor | Adv-Room |
---|---|---|
1022 | Jones | 412 |
4123 | Smith | 216 |
Registration:
Student# | Class# |
---|---|
1022 | 101-07 |
1022 | 143-01 |
1022 | 159-02 |
4123 | 201-01 |
4123 | 211-02 |
4123 | 214-01 |
यहाँ हमने देखा कि क्लास स्टूडेंट (प्राइमरी की) पर निर्भर नही है इसीलिए ये ससेकंड नार्मल फॉर्म में नही था।
- थर्ड नार्मल फॉर्म: उन डाटा को हटायें जो की पर निर्भर नही हैं।
पहले वाले टेबल में Adv-Room (एडवाइजर का ऑफिस नंबर) एडवाइजर एट्रिब्यूट पर निर्भर है। इसीलिए इसे स्टूडेंट टेबल से उठा कर Faculty टेबल में डाला गया:
Student# | Advisor |
---|---|
1022 | Jones |
4123 | Smith |
Faculty:
Name | Room | Dept |
---|---|---|
Jones | 412 | 42 |
Smith | 216 | 42 |
अब आपका normalize किया हुआ टेबल तैयार है।
इस लेख से सम्बंधित यदि आपका कोई भी सवाल या सुझाव है, तो आप उसे नीचे कमेन्ट में लिख सकते हैं।