Normalization in Hindi - नॉर्मलाइजेशन क्या है?
DBMS में Normalization, data को संगठित करने की प्रक्रिया है। यह duplicate data को हटाता है और database को साफ और सटीक बनाएं रखने में मदद करता है।इस प्रक्रिया में बड़े table को छोटे tables में बांटा जाता है। इससे data को manage करना आसान हो जाता है।
Normalization, डेटाबेस की गति मे सुधार लाता है और जगह को बचाता है।
इस विधि से database बेहतर काम करता है। यह data को सही तरीके से संग्रहित करने में मदद करता है ताकि एक ही सूचना विभिन्न स्थानों में repeat न है। इससे data खोजना और अपडेट करना तेज और आसान होता है।
Types of Normalization in Hindi - नॉर्मलाइजेशन के प्रकार
Types of Normalization in Hindi - नॉर्मलाइजेशन के प्रकार
Normalization के निम्न प्रकार है
First Normal Form (1NF)
First Normal Form (1NF) का मतलब एक table का प्रत्येक row unique होना चाहिए और प्रत्येक column में single values होना चाहिए।column में एक ही data बार-बार नहीं होना चाहिए। 1NF यह सुनिश्चित करता है कि प्रत्येक column की value, single है और उसे छोटे भागों में नहीं तोड़ा जा सकता
Example:
Duplicate Columns को हटाएं Rule:
प्रत्येक column में unique values होना चाहिए और एक cell में कई values नहीं होना चाहिए जैसे नीचे टेबल में दिखाया गया हैl
Before 1NF(Unnormalized Table)
StudentID | Name | Subjects |
---|---|---|
101 | Rohit | Math, Science |
102 | Yash | EVS, Math |
Problem:
Subjects column के cell में दो subjects दिए गए हैं।
After 1NF ( हर Subject के लिए अलग Rows)
StudentID | Name | Subjects |
---|---|---|
101 | Rohit | Math |
101 | Rohit | Science |
102 | Yash | EVS |
103 | Yash | Math |
Second Normal Form (2NF)
Second Normal Form (2NF) का मतलब है कि टेबल 1NF में हो और उसमें कोई Partial Dependency न हो।सभी columns को संपूर्ण Composite primary key पर निर्भर होना चाहिए न कि उसके केवल एक भाग पर।
अगर कोई कॉलम सिर्फ Composite primary key के एक हिस्से पर निर्भर है, तो उसे नए टेबल में ले जाना चाहिए।
Note:
Composite primary key वह है जब एक Primary key दो या अधिक columns से मिलकर बनते हैं।
Note: Partial Dependency का मतलब जब एक column, Composite primary key के केवल एक भाग पर निर्भर करता है न कि पूरे पर।
Example:
Partial Dependency को हटाएंRule:
Table को 1NF में होना चाहिए और प्रत्येक non-key column को अवश्य ही पूरी तरह Primary key पर निर्भर होना चाहिए
Before 2NF (Partial Dependency उपस्थित है)
StudentID | CourseID | StudentName | CourseName |
---|---|---|---|
101 | C01 | Ajay | DCA |
102 | C02 | Suraj | PGDCA |
Problem:
ऊपर table में StudentName केवल StudentID, पर और CourseName केवल CourseID पर निर्भर करता है। इसलिए यह टेबल 2NF में नहीं हैऔर इसमें Partial Dependency है।
After 2NF (दो Tables में तोड़ा गया है)
Student Table
StudentID | StudentName |
---|---|
101 | Ajay |
102 | Suraj |
Course Table
CourseID | CourseName |
---|---|
C01 | DCA |
C02 | PGDCA |
अब StudentName केवल StudentID पर तथा CourseName केवल CourseID पर ही पूरी तरह निर्भर है। इसमें Partial Dependency नही है।
Third Normal Form (3NF)
Third Normal Form (3NF) का मतलब है कि टेबल पहले Second Normal Form (2NF) में हो और उसमें कोई transitive dependency न हो।transitive dependency उस समय होता है जब एक non-key attribute (column) सीधे Primary key पर निर्भर होने के बजाय अन्य non-key attribute (column) पर निर्भर करता है।
प्रत्येक column को केवल primary key पर निर्भर करना चाहिए यदि कोई column अन्य key पर निर्भर करें तो उसे नए टेबल में ले जाए
संक्षिप्त में कहे तो एक टेबल के पास केवल Primary key के साथ ही सीधे relationship होना चाहिए।
Example:
Transitive Dependency को हटाएं Rule:
Table को 2NF मे होना चाहिए और non-key attributes (column) को Transitively primary key पर निर्भर होना चाहिए।
Before 3NF (Transitive Dependency उपस्थित)
EmployeeID | DepartmentID | DepartmentName |
---|---|---|
E01 | D01 | HR |
E02 | D02 | Finance |
E03 | D03 | IT |
Problem:
DepartmentName
DepartmentID, पर निर्भर करता है तथा DepartmentID, EmployeeID पर निर्भर करता है। यह Transitive Dependency है।
DepartmentID, पर निर्भर करता है तथा DepartmentID, EmployeeID पर निर्भर करता है। यह Transitive Dependency है।
After 3NF (दो Tables में तोड़ना)
Employees Table:
EmployeeID | DepartmentID |
---|---|
E01 | D01 |
E02 | D02 |
E03 | D03 |
Departments Table:
DepartmentID | DepartmentName |
---|---|
D01 | HR |
D02 | FINANCE |
D03 | IT |
EmployeeID पर और DepartmentName केवल DepartmentID पर निर्भर है।
Boyce-Codd Normal Form (BCNF)
Boyce-Codd Normal Form (BCNF), Third Normal Form (3NF) का मजबूत संस्करण है। एक table BCNF में है अगर यह 3NF में हो और हर determinant एक candidate key हो।इसका मतलब है कि कोई भी column को एक non-key column पर निर्भर नहीं होना चाहिए।
Example:
Multi-Candidate Keys, anomalies को हटाएं।
Example:
Multi-Candidate Keys, anomalies को हटाएं।Rule:
Table को 3NF में होना चाहिए और प्रत्येक functional dependency (X → Y), X एक super key होना चाहिए
Before BCNF (Anomaly उपस्थित है)
TeacherName | Subject | Class |
---|---|---|
Rajesh | Math | 10th |
Rajesh | Science | 9th |
Anish | English | 8th |
Anish | History | 7th |
Problem: एक Teacher कई Subjects को विभिन्न classes में पढ़ा सकता है, जिससे Anomalies उत्पन्न होता है।
After BCNF (दो Tables में तोड़ना)
Table 1: Teacher_Subject(प्रत्येक teacher एक subject को पढ़ाता है)
TeacherName | Subject |
---|---|
Rajesh | Math |
Rajesh | Science |
Anish | English |
Anish | History |
Table 2: Subject_Class (प्रत्येक Subject को एक Class में पढ़ाया जाता है)
Subject | Class |
---|---|
Math | 10th |
Science | 9th |
English | 8th |
History | 7th |
अब TeacherName → Subject और Subject → Class dependencies अलग किए गए हैं जो BCNF compliance को सुनिश्चित करता है
Fourth Normal Form (4NF)
Multi-valued dependencies के कारण होने वाली समस्याओं को Fourth Normal Form (4NF) हटाता है।एक table, 4NF में है यदि एक column (X) अन्य column (Y) को पूरी तरह से नियंत्रित करता है। यहां X column एक superkey है ।
इसका मतलब एक column में कई असंबंधित मान (values) नहीं होने चाहिए। Fourth Normal Form (4NF), असंबंधित multi-valued data को अलग टेबल में रखकर duplicate data को हटाता है।
यदि एक टेबल में असंबंधित multi-valued columns है तो इस टेबल को छोटे टेबलो में बांटा जाना चाहिए।
4NF, BCNF पर आधारित है और data को clean बनाए रखने में और आसानी से update होने में मदद करता है।
Example:
Multi-Valued Dependency को हटाएं Rule:
Table को BCNF मे होना चाहिए और उनमें multivalued dependencies नहीं होना चाहिए।
Before 4NF (Multi-Valued Dependency उपस्थित है)
EmployeeID | Skill | Project |
---|---|---|
101 | Java | Project A |
101 | Python | Project A |
101 | Java | Project B |
101 | Python | Project B |
Problem:
EmployeeID के लिए कई Skill हो सकते हैं और कई Project हो सकते हैं, लेकिन Skill और Project का आपस में कोई संबंध नहीं है। यही Multivalued Dependency है जो ऊपर के Table में है।
After 4NF (दो Tables में तोड़ने के बाद)
Employee Skills Table
Employee_ID | Skill |
---|---|
101 | Java |
101 | Python |
Employee Projects Table
Employee_ID | Project |
---|---|
101 | Project A |
101 | Project B |
ऊपर दिए गए टेबल में Employee 101 के अलग-अलग Skills और Projects को अलग-अलग टेबल में रखा गया है। इससे Multi-Valued Dependency हट जाती है, जो 4NF के अनुसार सही है।
एक table जो 5NF मे है यह तभी तोड़ा जा सकता है जब जरुरत हो और बिना data को खोए इसे पुन: जोड़ा जा सकता है।
5NF उस समय मदद करता है जब एक table में columns के बीच जटिल संबंध होते हैं। हालांकि कई मामलों में 5NF की जरूरत नहीं होती क्योंकि 4NF पहले से सामान्य डेटाबेस समस्याओं का समाधान कर देता है।
Fifth Normal Form (5NF)
Fifth Normal Form (5NF), को Projection-Join Normal Form (PJ/NF) के नाम से भी जाना जाता है। यह join dependencies का उपयोग करके अतिरिक्त data को हटाता है।एक table जो 5NF मे है यह तभी तोड़ा जा सकता है जब जरुरत हो और बिना data को खोए इसे पुन: जोड़ा जा सकता है।
5NF उस समय मदद करता है जब एक table में columns के बीच जटिल संबंध होते हैं। हालांकि कई मामलों में 5NF की जरूरत नहीं होती क्योंकि 4NF पहले से सामान्य डेटाबेस समस्याओं का समाधान कर देता है।
Example:
Join Dependency को हटाएं Rule:
Table को 4NF में होना चाहिए, प्रत्येक join dependency को candidate key से आना चाहिए अर्थात candidate key यह तय करेगा की टेबल को कैसे तोड़ा और सही तरीके से जोड़ा जाना है।
Before 5NF (Join Dependency उपस्थित)
StudentID | CourseID | Instructor |
---|---|---|
101 | C01 | Mr. Sudhir |
101 | C02 | Mr. Ravi |
102 | C01 | Mr. Sudhir |
Problem:
StudentID अलग से CourseID और Instructor को निर्धारित करता है। CourseID और Instructor एक-दूसरे से स्वतंत्र हैं। यही join dependency है।
After 5NF (तीन Tables में तोड़ना)
Student-Course Table
StudentID | CourseID |
---|---|
101 | C01 |
101 | C02 |
102 | C01 |
Course-Instructor Table
CourseID | Instructor |
---|---|
C01 | Mr. Sudhir |
C02 | Ms. Ravi |
Student-Instructor Table
StudentID | Instructor |
---|---|
101 | Mr. Sudhir |
101 | Mr. Ravi |
102 | Mr. Sudhir |
तीन टेबल्स में तोड़ने के बाद join dependency हट जाती है।
Sixth Normal Form (6NF)
Sixth Normal Form (6NF), database normalization का उच्चतम स्तर है। यह सभी अतिरिक्त data को हटा देता है और table को छोटे भागों में तोड़ देता है।6NF का उपयोग मुख्यतः time-based (temporal) databases, में होता है जहां समय के साथ data बदलता है। यह data को साफ और सही बनाए रखने में मदद करता है।
हालांकि यहां बहुत सारे छोटे टेबल का निर्माण करता है जिसके कारण queries कठिन हो जाता है।
6NF, historical records या data warehouses के लिए उपयोगी है। अधिकांश databases को 6NF की जरूरत नहीं है। इसका प्रयोग केवल विशेष मामलों में ही किया जाता है।
Example:
Temporal Data को संभालता है।Rule:
Table 5NF में होनी चाहिए और इसे समय के आधार पर डेटा ट्रैक करने में सक्षम होना चाहिए।
Before 6NF (Time Tracking नही है)
Employee | Salary |
---|---|
Yash | 50,000 |
Problem:
ऊपर Salary में जो बदलाव हुआ है उसका कोई भी time tracking नहीं है।
After 6NF (Time Tracking को जोड़ा गया है)
Employee | Salary | Since |
---|---|---|
Yash | 50,000 | 2024-01-01 |
Yash | 55,000 | 2025-01-01 |
Salary में समय के साथ क्या बदलाव हुआ है उसे ऊपर का टेबल स्पष्ट रूप से दिखाता है क्योंकि उसमें Time Tracking को जोड़ा गया है
1NF: इसमें duplicate columns को हटाया जाता है।
निष्कर्ष
Normalization के प्रत्येक level में विभिन्न प्रकार की समस्याओं को हटाया जाता है।1NF: इसमें duplicate columns को हटाया जाता है।
2NF: इसमें partial dependency को हटाया जाता है।
3NF: इसमें transitive dependency को हटाया जाता है।
BCNF: candidate keys में anomalies को ठीक किया जाता है।
4NF: इसमें multi-valued dependency को हटाया जाता है।
5NF: इसमें join dependency को हटाया जाता है।
6NF: इसमें Time-based data को track किया जाता है।
0 टिप्पणियाँ