Normalization in DBMS in Hindi
Normalization in DBMS
Normalization एक ऐसी प्रक्रिया है जिसमे जटिल और दोहराव (Redundancy) डेटा structure से साधारण (Normal) डेटा structure में परिवर्तित किया जाता है। अर्थात Normalization में टेबल के अनावश्यक और अवन्छिक डेटा को अलग-अलग भाग में बाट कर डेटा को सरल तरीके से प्रदर्शित करता है।
Types of Normalization
- First Normal Form (1NF)
- Second Normal Form (2NF)
- Third Normal Form (3NF)
- Boyce-Codd Normal Form (BCNF)
- Fourth Normal Form (4NF)
- Fifth Normal Form (5NF)
Third Normal Form (3NF)
3NF डेटाबेस को व्यवस्थित करता है ताकि डेटा में दोहराव (redundancy) न हो और डेटा सही तरीके से स्टोर हो। इसके लिए कुछ नियम हैं:
1. टेबल पहले से Second Normal Form (2NF) में होनी चाहिए। (2NF का मतलब है कि टेबल में कोई भी non-prime column, primary key के हिस्से पर निर्भर नहीं होना चाहिए।)
2. 3NF में, कोई भी non-prime column (जो प्राइमरी की का हिस्सा नहीं है) किसी दूसरे non-prime column पर निर्भर नहीं होना चाहिए। अर्थात, हर non-prime column सिर्फ primary key पर निर्भर हो।
दुसरे शब्दों में, Third Normal Form यह सुनिश्चित करता है कि कोई भी non-prime attribute किसी अन्य non-prime attribute पर निर्भर न हो। इसका मतलब है कि हर non-prime attribute सीधे primary key पर निर्भर होना चाहिए, न कि किसी अन्य non-prime attribute के माध्यम से।
3NF के लिए, table 2NF में होनी चाहिए और कोई ट्रांज़िटिव निर्भरता नहीं होनी चाहिए।
उदाहरण: student details table:

- Primary key: SID (student id) ।
- समस्या: ZIP से STATE निर्धारित होता है यह एक ट्रांज़िटिव निर्भरता है क्योंकि STATE (Non-key attributes) ZIP (Other non-key attributes) पर निर्भर है, न कि सीधे SID पर।
3NF में लाने के लिए table को अलग अलगे भागो में बाटते है :
Students table:

Zip table:

- Students table में SNAME और ZIP केवल SID पर निर्भर हैं।
- Zip table में STATE केवल ZIP (इसकी प्राथमिक कुंजी) पर निर्भर है।
- कोई ट्रांज़िटिव निर्भरता नहीं बची।
Boyce-Codd Normal Form (BCNF)
यह Third Normal Form (3NF) का एक बेहतर और advanced version है। इसे 3.5NF भी कहते हैं क्योंकि यह 3NF से advanced है और उसकी कमियों को ठीक करता है। इसका मुख्य काम डेटाबेस में डेटा की दोहराव (redundancy) और त्रुटियाँ (anomalies) को कम करना होता है।
BCNF के मुख्य नियम:
1. टेबल पहले से ही 3NF में होनी चाहिए।
2. X एक सुपर की (Super Key) होनी चाहिए।
यानी, यदि कोई attribute (Y) किसी अन्य attribute (X) पर निर्भर करता है, तो X को टेबल की कैंडिडेट की (Candidate Key) होना चाहिए।
उदाहरण:
मान लीजिए एक टेबल Student_Details है, जिसमें निम्न कॉलम हैं:
- Student_ID (छात्र आईडी)
- Course (कोर्स)
- Professor (प्रोफेसर)
यहाँ निम्न फंक्शनल डिपेंडेंसी हैं:
- Student_ID, Course → Professor
- Professor → Course
समस्या:
Professor → Course एक non-trivial dependency है, लेकिन Professor यहाँ Candidate key नहीं है (Candidate key Student_ID, Course या Student_ID, Professor हैं)।
यह टेबल 3NF में हो सकती है (क्योंकि कोई ट्रांजिटिव डिपेंडेंसी नहीं है), लेकिन BCNF में नहीं है।
BCNF में Convert करने का तरीका
इस टेबल को दो टेबल्स में विभाजित करें:
1. Professor_Details:
– Professor (Primary Key)
– Course
2. Student_Course:
– Student_ID
– Professor
अब दोनों टेबल्स BCNF में हैं, क्योंकि:
– Professor → Course में, Professor अब primary key है।
– Student_ID, Professor भी एक Candidate key की है।
Boyce-Codd Normal Form (BCNF) डेटाबेस डिज़ाइन को अधिक मजबूत और Efficient बनाता है।
Fourth Normal Form (4NF)
Fourth Normal Form (4NF) जो Multi-Valued Dependencies को हटाने में मदद करता है। यह तब लागू होता है जब एक टेबल में एक से अधिक Independent multivalued dependencies होती हैं, जिससे डेटा Redundancy (अनावश्यक दोहराव) होता है।
Fourth Normal Form (4NF) इसे समझने के लिए boyce-codd Normal Form (BCNF) को समझना आवश्यक है। BCNF का मुख्य कार्य डेटाबेस में डेटा की दोहराव (redundancy) और त्रुटियाँ (anomalies) को कम करना होता है। इसके बाद भी दुसरे प्रकार की त्रुटियाँ (anomalies) हो सकती है।
4NF के नियम
- टेबल पहले से ही BCNF (Boyce-Codd Normal Form) में होनी चाहिए।
- इसमें कोई non-trivial multi-valued dependency नहीं होनी चाहिए।
मल्टी-वैल्यूड डिपेंडेंसी क्या है?
यह तब होती है जब किसी टेबल के किसी कॉलम (A) का एक मान दूसरे कॉलम (B) के कई मानों से स्वतंत्र रूप से जुड़ा होता है।
- उदाहरण: यदि एक छात्र के कई कोर्स और कई हॉबीज़ हों, तो कोर्स और हॉबीज़ एक-दूसरे से स्वतंत्र होते हैं। इन्हें एक ही टेबल में रखने पर अनावश्यक कॉम्बिनेशन बनते हैं।
4NF उदाहरण
समस्या: नीचे दी गई टेबल में एक छात्र के कोर्स और हॉबीज़ को एक साथ रखा गया है। यहाँ प्रत्येक कोर्स को हर हॉबी के साथ जोड़ा गया है, जिससे डेटा दोहराव हो रहा है।

समस्या का कारण:
StudentID
→→Course
(मल्टी-वैल्यूड डिपेंडेंसी)StudentID
→→Hobby
(मल्टी-वैल्यूड डिपेंडेंसी)
यहाँ कोर्स और हॉबीज़ एक-दूसरे से स्वतंत्र हैं, लेकिन टेबल में उनके सभी कॉम्बिनेशन स्टोर किए गए हैं, जिससे रिडंडेंसी आती है।
4NF में सुधार:
इस टेबल को दो अलग टेबल्स में बाँटना होगा:
- StudentCourses: छात्रों और उनके कोर्सेस के लिए।
- StudentHobbies: छात्रों और उनकी हॉबीज़ के लिए।
Table 1: StudentCourses

Table 2: Student Hobbies

Fifth Normal Form (5NF)
यह सुनिश्चित करता है कि टेबल को छोटे-छोटे हिस्सों (सबटेबल्स) में बांटा जा सके, और फिर उन्हें जोड़कर (JOIN करके) बिना किसी डेटा लॉस या अनावश्यक रिकॉर्ड्स के मूल डेटा को फिर से प्राप्त किया जा सके। इसमें “जॉइन डिपेंडेंसी” (Join Dependency) को हटा दिया जाता है।
दुसरे शब्दों में, यह सुनिश्चित करता है कि डेटाबेस में कोई अनावश्यक डेटा दोहराव न हो और डेटा को इस तरह से व्यवस्थित किया जाए कि यह Join Dependency को पूरा करे।
5NF का उपयोग तब किया जाता है जब एक रिलेशन में Multivalued Dependency या Join Dependency के कारण डेटा को और छोटे, logical टुकड़ों में विभाजित करने की जरूरत होती है।
जब कोई रिलेशन Multivalued Dependency या Join Dependency के चलते अनावश्यक डेटा डुप्लिकेशन से प्रभावित होता है, तो उसे 5NF में बदल दिया जाता है।
हमारे पास एक Table है, जो इस प्रकार है:
Before 5NF

यहाँ डेटा दोहराया गया है, जो स्टोरेज की दृष्टि से प्रभावी नहीं है।
After 5NF
Student-Course Relationship:

Course-teacher relationship:

Joins in DBMS in Hindi
DBMS notes hindi
Normalization in DBMS in Hindi उम्मीद है कि यह topic आपके लिए Helpful हुआ होगा। और अधिक topics के लिए Search Button अथवा Read More Topics पर जाएं।