Hello Everyone, Welcome to Rajasthan Polytechnic Blogs.
Subject - Introduction to DBMS CS 4002(Same as CI/IT 4002)
Branch - Computer Science Engineering
Semester - 4th Semester
UNIT 5: रिलेशनल डेटाबेस के लिए फंक्शनल डिपेंडेंसी और नॉर्मलाइजेशन
इस यूनिट में फंक्शनल डिपेंडेंसी और नॉर्मलाइजेशन के बारे में चर्चा की जाएगी, जो रिलेशनल डेटाबेस डिज़ाइन के महत्वपूर्ण अवधारणाएँ हैं। हम विभिन्न नॉर्मल फॉर्म्स (1NF, 2NF, 3NF, BCNF) और उन्नत डिपेंडेंसीज़ जैसे मल्टी-वैल्यू डिपेंडेंसी, जॉइन डिपेंडेंसी, और आगे के नॉर्मल फॉर्म्स (4NF और 5NF) पर भी विचार करेंगे। ये अवधारणाएँ डेटाबेस को कुशल, विश्वसनीय और अच्छी संरचित बनाने में मदद करती हैं।
5.1 फंक्शनल डिपेंडेंसी और रिलेशनल डेटाबेस के लिए नॉर्मलाइजेशन 🧠
5.1.1 नॉर्मलाइजेशन की अवधारणा 🔍
नॉर्मलाइजेशन एक प्रक्रिया है जिसमें रिलेशनल डेटाबेस के गुणसूत्र और तालिकाओं को इस प्रकार व्यवस्थित किया जाता है ताकि रिडंडेंसी और डिपेंडेंसी को कम किया जा सके। इसका उद्देश्य डेटा एनोमलीज़ (INSERT, UPDATE और DELETE ऑपरेशंस के दौरान होने वाली समस्याएँ) को समाप्त करना है।
नॉर्मलाइजेशन डेटाबेस की दक्षता में सुधार करता है और यह सुनिश्चित करता है कि डेटाबेस में अनावश्यक डिपेंडेंसीज़ नहीं हैं।
फंक्शनल डिपेंडेंसी (FD): जब एक विशेष एट्रिब्यूट (या एट्रिब्यूट्स का समूह) दूसरे एट्रिब्यूट को अनूठे रूप से निर्धारित करता है, तो इसे फंक्शनल डिपेंडेंसी कहा जाता है।
उदाहरण के लिए, अगर A → B है, तो इसका मतलब है कि B पूरी तरह से A पर डिपेंड है, अर्थात एट्रिब्यूट A के मूल्य से एट्रिब्यूट B का मूल्य निर्धारित होता है।
- उदाहरण:
यदि हमारे पास एक तालिकाEmployee(EmpID, Name, Department)
है, और EmpID अनूठे रूप से Name और Department को निर्धारित करता है, तो हम कह सकते हैं EmpID → Name और EmpID → Department।
5.1.2 नॉर्मल फॉर्म्स (1NF, 2NF, 3NF, BCNF) 🏗️
नॉर्मलाइजेशन में डेटाबेस स्कीमा को विभिन्न नॉर्मल फॉर्म्स (NF) में रूपांतरित किया जाता है ताकि डेटा को संरचित किया जा सके, रिडंडेंसी और डिपेंडेंसी को न्यूनतम किया जा सके।
पहली नॉर्मल फॉर्म (1NF) ✅
- एक तालिका 1NF में होती है यदि उसमें कोई रिपीटिंग ग्रुप्स नहीं होते और सभी एट्रिब्यूट्स में परमाणु (अणुगत) मान होते हैं।
- उदाहरण:
यदि किसी एट्रिब्यूट में एक सूची या सेट के रूप में मान होते हैं (जैसे, "फोन नंबर" एट्रिब्यूट में कई नंबर होते हैं), तो तालिका 1NF में नहीं है। इसे प्रत्येक पंक्ति में अलग-अलग फोन नंबर में विभाजित किया जाना चाहिए।
1NF की आवश्यकता:
- प्रत्येक कॉलम में परमाणु मान होना चाहिए।
- प्रत्येक रिकॉर्ड (पंक्ति) अद्वितीय होना चाहिए।
1NF का उदाहरण:
EmpID Name Phone Numbers 101 John 123-456, 789-012 102 Alice 234-567 इसे 1NF में बदलने के लिए हमें फोन नंबर को अलग-अलग पंक्तियों में विभाजित करना होगा:
EmpID Name Phone Number 101 John 123-456 101 John 789-012 102 Alice 234-567 दूसरी नॉर्मल फॉर्म (2NF) ✅
एक तालिका 2NF में होती है यदि वह 1NF में है और सभी नॉन-की एट्रिब्यूट्स पूरी तरह से प्राथमिक कुंजी पर निर्भर होते हैं।
- उदाहरण:
एक तालिका में यदि कोई संयुक्त प्राथमिक कुंजी है (जो दो या दो से अधिक कॉलमों से मिलकर बनती है), तो कोई भी नॉन-की एट्रिब्यूट पूरी संयुक्त कुंजी पर निर्भर होना चाहिए।
2NF की आवश्यकता:
- तालिका को 1NF में होना चाहिए।
- हर नॉन-प्राइम एट्रिब्यूट पूरी प्राथमिक कुंजी पर निर्भर होना चाहिए (आंशिक निर्भरता को समाप्त करें)।
2NF का उदाहरण:
EmpID DeptID Name Department Name 101 D01 John HR 102 D02 Alice IT यहां, Department Name केवल DeptID पर निर्भर है, न कि पूरे संयुक्त कुंजी (EmpID, DeptID) पर। इसे 2NF में लाने के लिए हम इसे दो तालिकाओं में विभाजित करते हैं:
EmpID DeptID Name 101 D01 John 102 D02 Alice DeptID Department Name D01 HR D02 IT - उदाहरण:
तीसरी नॉर्मल फॉर्म (3NF) ✅
एक तालिका 3NF में होती है यदि वह 2NF में हो और उसमें कोई ट्रांजिटिव डिपेंडेंसी न हो।
- उदाहरण:
एक ट्रांजिटिव डिपेंडेंसी तब होती है जब एक नॉन-की एट्रिब्यूट दूसरे नॉन-की एट्रिब्यूट पर निर्भर होता है।
3NF की आवश्यकता:
- तालिका 2NF में होनी चाहिए।
- कोई ट्रांजिटिव डिपेंडेंसी नहीं होनी चाहिए (नॉन-की एट्रिब्यूट्स अन्य नॉन-की एट्रिब्यूट्स पर निर्भर नहीं होने चाहिए)।
3NF का उदाहरण:
EmpID Name DeptID DeptHead 101 John D01 Smith 102 Alice D02 Brown यहां, DeptHead DeptID पर निर्भर है, जो EmpID पर निर्भर है, यह एक ट्रांजिटिव डिपेंडेंसी है। इसे 3NF में लाने के लिए हम DeptHead को अलग तालिका में डालते हैं:
EmpID Name DeptID 101 John D01 102 Alice D02 DeptID DeptHead D01 Smith D02 Brown - उदाहरण:
बॉयस-कोड नॉर्मल फॉर्म (BCNF) ✅
एक तालिका BCNF में होती है यदि वह 3NF में हो और प्रत्येक फंक्शनल डिपेंडेंसी में बाईं ओर वाला हिस्सा सुपरकी हो (वह एट्रिब्यूट्स का समूह जो प्रत्येक रिकॉर्ड को अनूठे रूप से पहचानता है)।
BCNF की आवश्यकता:
- तालिका 3NF में होनी चाहिए।
- हर फंक्शनल डिपेंडेंसी में बाईं ओर वाला हिस्सा सुपरकी होना चाहिए।
BCNF का उदाहरण:
EmpID DeptID DeptHead 101 D01 Smith 102 D02 Brown यहां, DeptID → DeptHead एक फंक्शनल डिपेंडेंसी है, लेकिन DeptID सुपरकी नहीं है। इसे BCNF में लाने के लिए हम DeptHead को नई तालिका में डालते हैं:
EmpID DeptID 101 D01 102 D02 DeptID DeptHead D01 Smith D02 Brown
5.2 रिलेशनल डेटाबेस डिज़ाइन एल्गोरिदम और आगे की डिपेंडेंसीज़ ⚙️
5.2.1 मल्टी-वैल्यू डिपेंडेंसी और 4NF 🔀
मल्टी-वैल्यू डिपेंडेंसी तब होती है जब एक एट्रिब्यूट एक साथ कई स्वतंत्र मानों को निर्धारित करता है। इसे समाप्त करने के लिए तालिका को 4NF में होना चाहिए।
- 4NF: एक तालिका 4NF में होती है यदि वह BCNF में हो और उसमें कोई मल्टी-वैल्यू डिपेंडेंसी न हो।
4NF का उदाहरण:
EmpID | Skill | Language |
---|---|---|
101 | Programming | English |
101 | Design | Spanish |
यहां, EmpID दोनों Skill और Language को निर्धारित करता है, और ये एक दूसरे से स्वतंत्र हैं। इसे 4NF में लाने के लिए हम इसे दो तालिकाओं में विभाजित करते हैं:
EmpID | Skill |
---|---|
101 | Programming |
101 | Design |
EmpID | Language |
---|---|
101 | English |
101 | Spanish |
5.2.2 जॉइन डिपेंडेंसी और 5NF ➗
जॉइन डिपेंडेंसी तब होती है जब एक तालिका को कई तालिकाओं में विभाजित किया जा सकता है, लेकिन मूल तालिका को फिर से जोड़ने पर उसे पुनः बनाया जा सकता है।
- 5NF: एक तालिका 5NF में होती है यदि वह 4NF में हो और उसमें कोई जॉइन डिपेंडेंसी न हो, जिससे जानकारी खोने का खतरा हो।
निष्कर्ष 🎯
- नॉर्मलाइजेशन डेटाबेस डिज़ाइन में एक महत्वपूर्ण प्रक्रिया है जो रिडंडेंसी और डिपेंडेंसी को कम करती है।
- नॉर्मल फॉर्म्स (1NF, 2NF, 3NF, BCNF) डेटाबेस को संरचित करने और एनोमलीज़ को समाप्त करने के मार्गदर्शन प्रदान करते हैं।
- उन्नत डिपेंडेंसीज़ जैसे मल्टी-वैल्यू डिपेंडेंसी और जॉइन डिपेंडेंसी 4NF और 5NF को सुनिश्चित करती हैं, जो डेटाबेस डिज़ाइन को कुशल और प्रभावी बनाती हैं।
0 Comments