Normalization in DBMS in Hindi | नॉर्मलाइजेशन क्या है?
DBMS में Normalization एक बहुत ही महत्वपूर्ण तकनीक है जिसकी मदद से डेटाबेस में डाटा को कुछ नियमों का पालन कर सही तरीके से सुव्यवस्थित किया जाता है। नॉर्मलाइजेशन को डीबीएमएस में सामान्यीकरण भी कहा जाता है। नॉर्मलाइजेशन की प्रकिया के बाद डेटाबेस में से redundancy यानि डाटा का दोहराव कम हो जाता है।
आइये जानते हैं की DBMS में Normalization क्या होता है? और नॉर्मलाइजेशन के कितने types होते हैं?
Contents
What is Normalization in DBMS in Hindi?
Normalization वह प्रक्रिया है जिससे रिलेशनल डेटाबेस में उपस्थित डाटा को इस तरह से व्यवस्थित किया जाता है जिससे की उसमे कम से कम दोहराव (redundancy) हो। डेटाबेस में अलग-अगल स्थानों पर एक ही डाटा का बार-बार repeat होना Redundancy कहलाता है जिसे हटाना जरुरी होता है।
Redundancy की वजह से डेटाबेस में डाटा insert, update या delete जैसे operation perform करते समय कई तरह की समस्याएं आती हैं जिन्हें एनोमलीज (Anomalies) कहा जाता है। Anomalies की वजह से डेटाबेस में काम करने में कठिनाई आती है इसलिए Normalization technique का उपयोग कर इस समस्या से बचा जाता है।
Normalization की क्या आवश्यकता है?
जैसा कि हमने ऊपर चर्चा की है, डेटा redundancy को कम करने के लिए सामान्यीकरण (normalization) का उपयोग किया जाता है। यह प्रोसेस डेटाबेस से Anomalies को दूर करने और इसे अधिक consistent बनाने में हमारी मदद करता है।
एक डेटाबेस विसंगति (Database Anomalies) डेटाबेस में एक दोष है जो गलत planning और redundancy के कारण होता है। ये anomalies कुछ इस प्रकार के होते हैं:
- Insertion anomalies: यह समस्या तब आती है जब हम डेटाबेस में डेटा insert करने में सक्षम नहीं होते हैं क्योंकि insertion के समय कुछ attributes गायब हो सकते हैं।
- Updation anomalies: यह तब होता है जब same data items समान values के साथ दोहराए जाते हैं और एक दूसरे से linked नहीं होते हैं।
- Deletion anomalies: यह तब होता है जब डेटा के एक भाग को delete करने से डेटाबेस से अन्य आवश्यक जानकारी डिलीट हो जाती है।
नॉर्मलाइजेशन के प्रकार – Types of Normalization in DBMS in Hindi
DBMS में सामान्यीकरण के प्रकार की बात करें तो Normlization technique के कई types हैं जिन्हें Normal Form कहा जाता है।
हर Normal form में कुछ नियम होते हैं जिनकी मदद से डाटाबेस से redundant data (अनावश्यक दोहराव वाले डेटा) को समाप्त किया जाता है। Normal form के द्वारा एक बड़े डेटाबेस टेबल को छोटे-छोटे टेबल में विभाजित किया जाता है और उन्हें आपस में relationship के द्वारा जोड़ा जाता है।
Normal form कई प्रकार के होते हैं जिनके बारे में निचे जानकारी दी गयी है।
Normal Form in DBMS in Hindi
Normalization rules को मुख्यतः 4 भागों में बांटा गया है:
- First Normal Form (1NF)
- Second Normal Form (2NF)
- Third Normal Form (3NF)
- Boyce and Codd Normal Form (BCNF)
- Fourth Normal Form (4NF)
आइये इन सभी नार्मल फॉर्म्स को विस्तार से जानते हैं:
First Normal Form (1NF)
1st Normal Form के नियम कुछ इस प्रकार हैं:
- टेबल के हर एक cell में single value होना चाहिए, Multiple values नही होने चाहिए।
- हर एक record unique होने चाहिए।
1NF Example:
आइये First normal form का एक उदाहरण देखते हैं। निचे एक EmployeeDetail नाम का टेबल दिया गया है जिसमे आप देख सकते हैं की Phone Number वाले कॉलम में multiple values दिए गये हैं जो की 1NF Rules के अनुसार गलत हैं।
<EmployeeDetail>
Employee Code | Employee Name | Employee Phone Number |
---|---|---|
101 | Ashok | 98765683,995234123 |
102 | Amit | 99023467 |
103 | Vivek | 86213908 |
इसे 1NF form में normalize करने के बाद टेबल कुछ इस प्रकार दिखाई देगा:
Employee Code | Employee Name | Employee Phone Number |
---|---|---|
101 | Ashok | 98765683 |
101 | Ashok | 995234123 |
102 | Amit | 99023467 |
103 | Vivek | 86213908 |
Second Normal Form (2NF)
2NF के rules कुछ इस प्रकार हैं:
- टेबल First Normal Form में होने चाहिए।
- Partial dependency नही होना चाहिए, यानी सभी non-prime attributes primary key पर fully functionally dependent होने चाहिए।
2NF Example:
आइये इसे Example के माध्यम से समझते हैं:
निचे दिए गये टेबल में आप देख सकते हैं जहाँ दो prime attributes हैं Employee Code और Project ID.
जहाँ employee name को हम employee code से identify कर सकते हैं और Project Name को Project ID से identify कर सकते हैं इसलिए इस टेबल में partial dependency है।
Employee Code | Project ID | Employee Name | Project Name |
---|---|---|---|
101 | P03 | Ashok | Project103 |
101 | P01 | Ashok | Project101 |
102 | P04 | Amit | Project104 |
103 | P02 | Vivek | Project102 |
इस टेबल से partial dependency को हटाने के लिए हम टेबल को तीन टेबल में विभाजित करेंगे:
<EmployeeDetail>
Employee Code | Employee Name |
---|---|
101 | Ashok |
101 | Ashok |
102 | Amit |
103 | Vivek |
<EmployeeProject>
Employee Code | Project ID |
---|---|
101 | P03 |
101 | P01 |
102 | P04 |
103 | P02 |
<ProjectDetail>
Project ID | Project Name |
---|---|
P03 | Project103 |
P01 | Project101 |
P04 | Project104 |
P02 | Project102 |
हमने table को तीन टेबल में विभाजित कर दिया <EmployeeDetail>, <EmployeeProject>, और <ProjectDetail> अब ये सभी 2NF के नियमों का पालन करते हैं क्योंकि सभी non-prime attribute primary key पर fully dependent हैं।
Third Normal Form (3NF)
3NF के rules कुछ इस प्रकार हैं:
- टेबल Second Normal Form में होने चाहिए।
- टेबल में कोई transitive dependencies नही होने चाहिए
Transitive dependency क्या है?
जब कोई दो non-prime attributes के बीच indirect relationship हो जहाँ एक non-prime attribute पूरी तरह से prime attribute पर dependent हो तो ऐसी स्थिति में transitive dependency होती है। जैसे यदि A->B और B->C तो A->C transitive dependency होंगे।
3NF Example:
Employee Code | Employee Name | Employee Zipcode | Employee City |
---|---|---|---|
101 | Ashok | 1100422 | Hanumangadh |
102 | Amit | 1100322 | Sitapur |
103 | Vivek | 1100522 | Ramnagar |
Candidate key: Employee Code
Non-prime attributes: यहाँ Employee Code को छोड़कर सभी non-prime attributes हैं।
ऊपर दिया गया टेबल Third normal form में नही है इसका कारन है Employee Code -> Employee City में transitive dependency है क्योंकि:
- Employee Code -> Employee Zipcode
- Employee Zipcode -> Employee City
और Employee Zipcode एक super key नही है और Employee City कोई prime attribute नही है।
3NF Normalization के लिए लिए हम इस टेबल को दो भाग में विभाजित कर सकते हैं:
<Employee_Detail>
Employee Code | Employee Name | Employee Zipcode |
---|---|---|
101 | Ashok | 1100422 |
102 | Amit | 1100322 |
103 | Vivek | 1100522 |
<Employee_Zip>
Employee Zipcode | Employee City |
---|---|
1100422 | Hanumangadh |
1100322 | Sitapur |
1100522 | Ramnagar |
Boyce-Codd Normal Form (BCNF)
BCNF नार्मल फॉर्म 3NF का ही advanced version है इसलिये इसे 3.5NF भी कहा जाता है। एक रिलेशन को BCNF फॉर्म में होने के लिए निचे दिए गये नियमों का पालन करना होगा:
- टेबल 3NF में होना चाहिए
- प्रत्येक फंक्शनल डिपेंडेंसी में बाएं तरफ candidate key या super key होना चाहिए
अगर टेबल 3rd नार्मल फॉर्म में है और मान लीजिये X->Y एक Functional Dependency है तो X को Candidate key या Super key होना चाहिए।
BCNF Example:
Student | Teacher | Subject |
---|---|---|
Vivek | Vikash | PHP |
Vivek | Aman | DBMS |
Amit | Vikash | PHP |
Amit | Priyanka | DBMS |
इस टेबल के अनुसार Functional Dependency कुछ इस प्रकार हैं:
(student, Teacher) -> subject
(student, subject) -> Teacher
Teacher -> subject
जहाँ (student, teacher) और (student, subject) Candidate key हैं।
लेकिन यह टेबल BCNF form में नही है क्योंकी Teacher -> subject में Teacher Candidate key नही है। इस टेबल में कुछ समस्याओं (Anomalies) का सामना करना पड़ सकता है जैसे:
यदि हम student Amit को डिलीट करने की कोशिश करते हैं तो Priyanka DBMS subject पढ़ाती हैं यह जानकारी भी डिलीट हो जाएगी।
इस Anomalies को दूर करने के लिए हमें इसे BCNF form में लाना होगा जिसके लिए इसे हम दो टेबल में बाँट देंगे:
Table 1:
Teacher | Subject |
---|---|
Vikash | PHP |
Aman | DBMS |
Priyanka | DBMS |
Table 2:
Student | Teacher |
---|---|
Vivek | Vikash |
Vivek | Aman |
Amit | Vikash |
Amit | Priyanka |
इस तरह से अब रिलेशन BCNF form में आ चुका है और Anomalies भी हट गये हैं।
Fourth Normal Form (4NF)
कोई भी रिलेशन 4NF में तब होता है जब:
- रिलेशन BCNF फॉर्म में हो
- कोई भी Multi-valued dependency न हो
अगर dependency X->Y में X के एक Single value के लिए Y में multiple values हो तो वह Multi-valued dependency कहलाता है।
4NF Example:
Student_ID | Teacher | Subject |
---|---|---|
1001 | Vikash | PHP |
1001 | Aman | DBMS |
1002 | Vikash | PHP |
1003 | Priyanka | DBMS |
इस टेबल में आप देख सकते हैं की student id 1001 के लिए Teacher और Subject कॉलम में एक से ज्यादा values हैं इसलिए यहाँ Multi-valued dependency है। इसे 4NF में लाने के लिए 2 भाग में divide कर देंगे:
Student_Teacher:
Student_ID | Teacher |
---|---|
1001 | Vikash |
1001 | Aman |
1002 | Vikash |
1003 | Priyanka |
Student_Subject:
Student_ID | Subject |
---|---|
1001 | PHP |
1001 | DBMS |
1002 | PHP |
1003 | DBMS |
सम्बंधित अन्य जानकारियाँ:
Normalization in DBMS in Hindi – FAQ
DBMS में Normalization क्यों करते हैं?
DBMS में डेटा redundancy को कम करने के लिए normalization का उपयोग किया जाता है। यह प्रोसेस डेटाबेस से Anomalies को दूर करने और इसे अधिक consistent बनाने में हमारी मदद करता है।
1st नार्मल फॉर्म के नियम बताइए
1st Normal Form के नियम:
टेबल के हर एक cell में single value होना चाहिए।
हर एक record unique होने चाहिए।
आपको Normalization in DBMS in Hindi में सामान्यीकरण के बारे में बताई गयी यह जानकारी कैसी लगी हमें कमेंट करके जरुर बताएं।