Normalization क्या है और इसके प्रकार

DBMS में, Normalization एक प्रक्रिया है जिसका उपयोग Database को Organize और Structured करने के लिए किया जाता है। यह प्रक्रिया Redundancy को कम करती है और Data Integrity सुनिश्चित करती है।

दूसरे शब्दों में कहें तो, “Normalization एक प्रक्रिया है जिसमें हम database के tables और columns को इस तरह structure करते हैं कि: –

  1. Data redundancy कम हो (एक ही डेटा बार-बार store न हो)।
  2. Data integrity maintain रहे (डेटा accurate और consistent रहे)।
  3. Database की performance बेहतर हो।

Normalization का मुख्य उद्देश्य data को database में प्रभावी ढंग से स्टोर और मैनेज करना होता है।

सामान्यतया, Normalization दो step की process है जो निम्न है:-

पहला Step:- पहले step में, यह रिलेशनल टेबल में से redundant data (वह डेटा जो एक से अधिक बार स्टोर हुआ हो) को हटाता है।

दूसरा Step:- दूसरे step में, यह सुनिश्चित करता है कि table में केवल उससे सम्बंधित डेटा ही store हो।

Types of Normal Forms in DBMS in Hindi (नॉर्मल फॉर्म्स के प्रकार)

DBMS में Normal Forms पाँच प्रकार के होते हैं, जिन्हें E.F. Codd ने विकसित किया था।

1NF (First Normal Form)

1NF का उद्देश्य है कि data एक structured और टेबल के form में हो। इसमें:-

  1. सभी values atomic (indivisible) होनी चाहिए।
  2. एक attribute (column) में multiple values नहीं होनी चाहिए।

उदाहरण:

Roll_NoNameSubjects
1RajMath, Science
2PriyaEnglish

ऊपर दी गई table 1NF में नहीं है क्योंकि “Subjects” column में multiple values हैं। इसे fix करने के लिए:

Roll_NoNameSubject
1RajMath
1RajScience
2PriyaEnglish

2NF (Second Normal Form)

2NF तभी प्राप्त होता है जब:-

  1. जब वह 1st normal form की सभी requirements (जरूरतों) को पूरी करता हों
  2. सभी non key attributes पूरी तरह से primary key पर निर्भर हों।

उदाहरण:

Roll_NoSubjectTeacher
1MathMr. A
1ScienceMr. B

यह table 2NF में है क्योंकि इसमें कोई partial dependency नहीं है।

3NF (Third Normal Form)

3NF का उद्देश्य transitive dependency को हटाना है। कोई टेबल या रिलेशन तब 3rd normal form में होता है जब-

  1. जब वह 2nd normal form की सभी जरूरतों को पूरी करता हो। 
  2. उनमें transitive functional dependency नही होनी चाहिए।

उदाहरण:

Roll_NoSubjectTeacherDepartment
1MathMr. AScience

यह टेबल transitive dependency का example है:

  • “Subject” से “Department” indirect तरीके से “Teacher” के द्वारा dependent है।

इसे 3NF में लाने के लिए:

  1. Subject-Teacher mapping अलग table में हो।
  2. Subject-Department mapping अलग table में हो।

4NF (Fourth Normal Form)

4NF तब होता है जब:

  1. टेबल 3NF में हो।
  2. टेबल में multivalued dependency न हो।

उदाहरण:

StudentCourseHobby
RajMathCricket
RajScienceFootball

यहाँ multi-valued dependency है। इसे अलग tables में divide करें:


Course Table:

StudentCourse
RajMath
RajScience

Hobby Table:

StudentHobby
RajCricket
RajFootball

5NF (Fifth Normal Form)

Fifth Normal Form (5NF), जिसे Project-Join Normal Form (PJNF) भी कहा जाता है, database normalization का सबसे highest level है। यह complex relationships को handle करता है और tables को और भी efficient बनाता है।

5NF तब satisfy (संतुष्ट) होता है जब:

  1. टेबल 4NF (Fourth Normal Form) में हो।
  2. Table को छोटे-छोटे tables में तब तक decompose (विभाजित) न किया जा सके जब तक कि lossless join की condition satisfy न हो जाए।
  3. Join Dependency का पालन करता हो।

Join Dependency क्या है?

Join Dependency का मतलब है कि अगर एक table को multiple sub-tables में decompose किया गया है, तो उन sub-tables को फिर से join करके original table प्राप्त किया जा सकता है।

5NF का Example (उदाहरण)

मान लीजिए हमारे पास एक company का database है, जिसमें हम तीन चीज़ों को track कर रहे हैं:

  1. Employees
  2. Projects
  3. Skills

और हमारे पास एक table है:

EmployeeProjectSkill
RajProject AJava
RajProject APython
RajProject BJava
RajProject BPython

इस table का मतलब क्या है?

  • Raj नाम का employee दो projects पर काम कर रहा है: Project A और Project B
  • उसके पास दो skills हैं: Java और Python

और यह मानते हैं कि:

  • Raj दोनों projects पर दोनों skills का use कर रहा है।
  • सभी skills का इस्तेमाल सभी projects में होता है।

Problem क्या है?

ऊपर दिए गए table में same data बार-बार repeat हो रहा है।
यह टेबल redundant है और अगर मान लो future में skill या project में बदलाव होता है, तो हमें बहुत सारीं rows को edit करना पड़ेगा — जिससे inconsistency हो सकती है।

5NF में इसे कैसे Break करें?

अब हम इस table को तीन अलग-अलग tables में तोड़ते हैं:

1. Employee – Project Table

EmployeeProject
RajProject A
RajProject B

2. Employee – Skill Table

EmployeeSkill
RajJava
RajPython

3. Project – Skill Table

ProjectSkill
Project AJava
Project APython
Project BJava
Project BPython

अब अगर हम इन तीनों tables को join करें, तो हमें फिर से वही original table मिल जाएगा — लेकिन अब कोई डेटा repeat नहीं है, और tables ज़्यादा organized (व्यवस्थित) हैं।

इसे भी पढ़ें:-

निवेदन:- आपको Normalization in DBMS in Hindi पोस्ट कैसी लगी आप हमें कमेंट के माध्यम से अवश्य बतायें। हमें आपके कमेंट्स का बेसब्री से इन्तजार रहता है। अगर आपके कोई सवाल या कोई topics है तो हमें बतायें हम उसको एक या दो दिन के अंदर यहाँ प्रकाशित करेंगे और हाँ पोस्ट शेयर जरूर करें।

Leave a Comment