DBMS में नॉर्मलाइजेशन क्या है? Normalization in DBMS in Hindi

DBMS में Normalization एक बहुत ही महत्वपूर्ण तकनीक है जिसकी मदद से डेटाबेस में डाटा को कुछ नियमों का पालन कर सही तरीके से सुव्यवस्थित किया जाता है। नॉर्मलाइजेशन को डीबीएमएस में सामान्यीकरण भी कहा जाता है। नॉर्मलाइजेशन की प्रकिया के बाद डेटाबेस में से redundancy यानि डाटा का दोहराव कम हो जाता है।

आइये जानते हैं की DBMS में Normalization क्या होता है? और नॉर्मलाइजेशन के कितने types होते हैं?

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 कुछ इस प्रकार के होते हैं:

  1. Insertion anomalies: यह समस्या तब आती है जब हम डेटाबेस में डेटा insert करने में सक्षम नहीं होते हैं क्योंकि insertion के समय कुछ attributes गायब हो सकते हैं।
  2. Updation anomalies: यह तब होता है जब same data items समान values के साथ दोहराए जाते हैं और एक दूसरे से linked नहीं होते हैं।
  3. 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 भागों में बांटा गया है:

  1. First Normal Form (1NF)
  2. Second Normal Form (2NF)
  3. Third Normal Form (3NF)
  4. Boyce and Codd Normal Form (BCNF)
  5. 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 CodeEmployee NameEmployee Phone Number
101Ashok98765683,995234123
102Amit99023467
103Vivek86213908

इसे 1NF form में normalize करने के बाद टेबल कुछ इस प्रकार दिखाई देगा:

Employee CodeEmployee NameEmployee Phone Number
101Ashok98765683
101Ashok995234123
102Amit99023467
103Vivek86213908

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 CodeProject IDEmployee NameProject Name
101P03AshokProject103
101P01AshokProject101
102P04AmitProject104
103P02VivekProject102

इस टेबल से partial dependency को हटाने के लिए हम टेबल को तीन टेबल में विभाजित करेंगे:

<EmployeeDetail>

Employee CodeEmployee Name
101Ashok
101Ashok
102Amit
103Vivek

<EmployeeProject>

Employee CodeProject ID
101P03
101P01
102P04
103P02

<ProjectDetail>

Project IDProject Name
P03Project103
P01Project101
P04Project104
P02Project102

हमने 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 CodeEmployee NameEmployee ZipcodeEmployee City
101Ashok1100422Hanumangadh
102Amit1100322Sitapur
103Vivek1100522Ramnagar

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 CodeEmployee NameEmployee Zipcode
101Ashok1100422
102Amit1100322
103Vivek1100522

<Employee_Zip>

Employee ZipcodeEmployee City
1100422Hanumangadh
1100322Sitapur
1100522Ramnagar

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:

StudentTeacherSubject
VivekVikashPHP
VivekAmanDBMS
AmitVikashPHP
AmitPriyankaDBMS

इस टेबल के अनुसार 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:

TeacherSubject
VikashPHP
AmanDBMS
PriyankaDBMS

Table 2:

StudentTeacher
VivekVikash
VivekAman
AmitVikash
AmitPriyanka

इस तरह से अब रिलेशन 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_IDTeacherSubject
1001VikashPHP
1001AmanDBMS
1002VikashPHP
1003PriyankaDBMS

इस टेबल में आप देख सकते हैं की student id 1001 के लिए Teacher और Subject कॉलम में एक से ज्यादा values हैं इसलिए यहाँ Multi-valued dependency है। इसे 4NF में लाने के लिए 2 भाग में divide कर देंगे:

Student_Teacher:

Student_IDTeacher
1001Vikash
1001Aman
1002Vikash
1003Priyanka

Student_Subject:

Student_IDSubject
1001PHP
1001DBMS
1002PHP
1003DBMS

सम्बंधित अन्य जानकारियाँ:

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 में सामान्यीकरण के बारे में बताई गयी यह जानकारी कैसी लगी हमें कमेंट करके जरुर बताएं।

Default image
Vivek Vaishnav

नमस्कार, मैं विवेक, WebInHindi का founder हूँ। इस ब्लॉग से आप वेब डिजाईन, वेब डेवलपमेंट, Blogging से जुड़े जानकारियां और tutorials प्राप्त कर सकते हैं। अगर आपको हमारा यह ब्लॉग पसंद आये तो आप हमें social media पर follow कर हमारा सहयोग कर सकते हैं|

Leave a Reply