1NF क्या है?
1NF DBMS में फर्स्ट नॉर्मल फॉर्म है, जिसे अननॉर्मलाइज्ड टेबल पर लागू करके इसे नॉर्मलाइज किया जाता है। एक अननॉर्मलाइज्ड टेबल में निम्नलिखित मुद्दे होते हैं जिन्हें एक आदर्श डेटाबेस डिजाइन प्राप्त करने के लिए टालने की आवश्यकता होती है:
अननॉर्मलाइज्ड टेबल के साथ समस्याएं
डेटा रिडंडेंसी (Data Redundancy)
एक ही डेटा आइटम को कई बार संग्रहीत करना डेटा रिडंडेंसी के रूप में जाना जाता है।
आइए एक उदाहरण देखें:
हमारे पास एक <Employee> टेबल है जिसमें कर्मचारियों के वर्तमान पते को संग्रहीत करने के लिए एक फील्ड है। इनमें से कुछ कर्मचारियों को कंपनी द्वारा रहने के लिए जगह दी गई है; इसलिए, उनका पता समान है। पता डेटाबेस में दोहराया जाएगा:
Table 1.1
| EmpID | EmpName | EmpAddress |
|---|---|---|
| 001 | Amit | 11, VA Street, New York |
| 002 | Tom | 11, VA Street, New York |
| 003 | David | 11, VA Street, New York |
| 004 | Steve | 13, HG Block, Philadelphia |
| 005 | Jeff | 13, HG Block, Philadelphia |
इसे हल करने के लिए, कर्मचारी के पते को एक अलग टेबल में संग्रहीत करें और
अपडेशन एनोमली (Updation Anomaly)
यह तब होता है जब आप टेबल को अपडेट करते समय समस्याओं का सामना करते हैं।
Table 1.2
| EmpID | EmpName | EmpAddress | EmpDept |
|---|---|---|---|
| 001 | Amit | 11, VA Street, New York | A |
| 002 | Tom | 11, VA Street, New York | B |
| 003 | Tom | 11, VA Street, New York | C |
| 004 | Steve | 13, HG Block, Philadelphia | D |
| 005 | Jeff | 27, ZR Block, Virginia | E |
यदि हमें कर्मचारी Tom का पता अपडेट करने की आवश्यकता है, जो दो विभागों से है, तो हमें दो पंक्तियों को अपडेट करने की आवश्यकता है। यदि हम केवल एक पंक्ति अपडेट करते हैं, तो Tom के दो अलग-अलग पते होंगे जो डेटा में असंगति पैदा करेंगे।
डिलीशन एनोमली (Deletion Anomaly)
मान लीजिए कंपनी विभाग D को बंद करने का फैसला करती है, तो पंक्ति का डिलीशन कर्मचारी Steve के डेटा को भी डिलीट कर देगा।
इंसर्शन एनोमली (Insertion Anomaly)
यह तब होता है जब आप किसी ऐसे रिकॉर्ड में डेटा डालने का प्रयास करते हैं जो मौजूद नहीं है।
नॉर्मलाइजेशन उपरोक्त सभी मुद्दों/एनोमली को हटा देता है और आपको एक नॉर्मलाइज्ड परफेक्ट डेटाबेस डिजाइन देता है जिसे एक डेटाबेस एडमिनिस्ट्रेटर पसंद करता है।
आइए देखें कि फर्स्ट नॉर्मल फॉर्म (1NF) का उपयोग करके डेटा को कैसे नॉर्मलाइज किया जाए।
क्यों 1NF
फर्स्ट नॉर्मल फॉर्म (1NF) डेटा रिडंडेंसी के मुद्दे और डेटाबेस की एनोमली को हटाने में उपयोगी है जैसा कि उपरोक्त अनुभाग में दिखाया गया है। 1NF में सभी एट्रिब्यूट के एटॉमिक डोमेन होने चाहिए। यदि यह एटॉमिक नहीं है, तो आपके डेटाबेस का डिजाइन खराब है। यह नॉर्मलाइजेशन में पहला कदम है।
इसलिए, एक टेबल के नॉर्मलाइज्ड फॉर्म में होने का सबसे महत्वपूर्ण नियम यह है कि इसमें केवल एटॉमिक मान होने चाहिए।
उदाहरण
नीचे दिए गए उदाहरण में एक टेबल है जिसमें हर कॉलम एटॉमिक मानों से बना है, सिवाय DeptRole कॉलम के। इसलिए, DeptRole कॉलम विभाग A, B, और C के लिए एटॉमिक मान नियम का उल्लंघन करता है।
Table 1.3
| DeptId | DeptName | DeptRole |
|---|---|---|
| 001 | A | Finance, HR |
| 002 | B | Programming, Networking |
| 003 | C | Management, Marketing |
| 004 | D | Operations |
आइए अब इसे सही करें और 1NF में बदलें:
| DeptId | Dept Name | DeptRole |
|---|---|---|
| 001 | A | Finance |
| 001 | A | HR |
| 002 | B | Programming |
| 002 | B | Networking |
| 003 | C | Management |
| 003 | C | Marketing |
| 004 | D | Operations |
अब उपरोक्त टेबल 1NF में है और हमारे पास हर कॉलम में एटॉमिक मान हैं।