पूर्ण फंक्शनल अवलंबन हे डेटाबेस सामान्यीकरण स्थिती आहे जे सेकंद नॉर्मल फॉर्म (2NF) च्या सामान्यीकरण मानकांशी तुलना करते. थोडक्यात, याचा अर्थ असा की तो प्रथम नॉर्मल फॉर्म (1 एनएफ) च्या गरजा भागवतो, आणि सर्व नॉन-की विशेष गुणधर्म प्राथमिक की वर पूर्णपणे कार्यरत असतात.
हे कदाचित ध्वनीसारखेच जटिल नाही. चला याबद्दल अधिक तपशीलाने पाहू.
प्रथम सामान्य फॉर्मचा सारांश
डेटाबेस पूर्णपणे कार्यशीलतेने अवलंबून असण्याआधी, प्रथम प्रथम सामान्य फॉर्मचे पालन करणे आवश्यक आहे.
या सर्व अर्थ असा की प्रत्येक गुणधर्माने एकल, अणू मूल्य असणे आवश्यक आहे.
उदाहरणार्थ, खालील तक्ता 1NF ची पूर्तता करीत नाही , कारण कर्मचारी टीना दोन ठिकाणी जोडली जाते, त्या दोघांना एका सेलमध्ये जोडली जाते:
| कर्मचारी | स्थान |
|---|---|
| जॉन | लॉस आंजल्स |
| टीना | लॉस एंजेलिस, शिकागो |
या डिझाइनची अनुमती देण्यामुळे डेटा अद्यतने किंवा प्रविष्ट्यांवर नकारात्मक परिणाम होऊ शकतो. 1 एनएफ अनुपालन सुनिश्चित करण्यासाठी, सारणीची पुनर्रचना करा जेणेकरुन सर्व विशेषता (किंवा स्तंभ पेशी) एक मूल्य धरून ठेवतील:
| कर्मचारी | स्थान |
|---|---|
| जॉन | लॉस आंजल्स |
| टीना | लॉस आंजल्स |
| टीना | शिकागो |
पण डेटासह समस्या टाळण्यासाठी अद्याप 1 एनएफ पुरेसे नाही.
2NF कसे पूर्ण अवलंबून खात्री करण्यासाठी कार्य करते
पूर्णतया अवलंबित राहण्यासाठी, सर्व नॉन-अपॉईल्ड की विशेषता प्राथमिक कीवर अवलंबून असणे आवश्यक आहे. (लक्षात ठेवा, एक उमेदवार की विशेष गुणधर्म डाटाबेस रेकॉर्डस अनन्यपणे ओळखण्यासाठी वापरलेली कोणतीही की (उदाहरणार्थ, प्राथमिक किंवा परदेशी की) आहे.
डेटाबेस डिझाइनर ऍट्रिब्यूटसच्या आश्रित नातेसंबंधांचे वर्णन करण्यासाठी नोटेशन वापरतात:
जर गुणधर्म बी ब चे मूल्य निश्चित करते, तर आपण A - B लिहितो - म्हणजे, ब चे कार्यात्मकपणे A वर अवलंबून असते. या संबंधांमध्ये A ने B ची व्हॅल्यू निर्धारित केली आहे, तर B अ वर अवलंबून आहे.
उदाहरणार्थ, खालील कर्मचारी वर्गांच्या तक्त्यामध्ये, कर्मचारी आणि विभागीय ईमेदवार दोघेही उमेदवार असतात: कर्मचारी आयडी म्हणजे टेबलची प्राथमिक की असते, तर विभागिय एक परदेशी किल्ली असते.
कोणतीही अन्य विशेषता - या बाबतीत, कर्मचारीनाव आणि DeptName - त्याचे मूल्य प्राप्त करण्यासाठी प्राथमिक कीवर अवलंबून असणे आवश्यक आहे.
| EmployeeID | कर्मचारी नाव | विभाग | DeptName |
|---|---|---|---|
| Emp1 | जॉन | विभाग | वित्त |
| Emp2 | टीना | Dept003 | विक्री |
| एमपीओ | कार्लोस | विभाग | वित्त |
या प्रकरणात, टेबल पूर्णपणे अवलंबून नाही कारण, कर्मचारी नाव प्राथमिक की एम्प्लॉइआयडीवर अवलंबून असते, DeptName DeptID ऐवजी त्याऐवजी अवलंबून असते. याला आंशिक अवलंबन असे म्हणतात.
हे सारणी 2NF शी जुळण्यासाठी, आपण डेटा दोन टेबलमध्ये विभक्त करणे आवश्यक आहे:
| EmployeeID | कर्मचारी नाव | विभाग |
|---|---|---|
| Emp1 | जॉन | विभाग |
| Emp2 | टीना | Dept003 |
| एमपीओ | कार्लोस | विभाग |
आम्ही कर्मचारी सूचीतून DeptName गुणधर्म काढतो आणि नवीन सारणी विभाग तयार करतो:
| विभाग | DeptName |
|---|---|
| विभाग | वित्त |
| विभाग 002 | मानव संसाधन |
| Dept003 | विक्री |
आता टेबल दरम्यान संबंध पूर्णपणे अवलंबून आहेत, किंवा 2NF मध्ये.
संपूर्ण अवलंबित्व महत्वाचे का आहे
डेटाबेस विशेषतांमध्ये पूर्ण अवलंबन डेटा एकाग्रता मिळविण्यास मदत करते आणि डेटा विसंगती टाळते.
उदाहरणार्थ, उपरोक्त विभागात तक्ता विचारात घ्या की जे केवळ 1 एनएएफ चे पालन करते. हे पुन्हा एकदा आहे:
| कर्मचारी | स्थान |
|---|---|
| जॉन | लॉस आंजल्स |
| टीना | लॉस आंजल्स |
| टीना | शिकागो |
टीनाकडे दोन रेकॉर्ड आहेत. जर आपण नकार दिला की दोन गोष्टी आहेत, तर त्याचे परिणाम म्हणजे विसंगत डेटा.
किंवा, जर आपल्याला या टेबलमध्ये एखादा कर्मचारी जोडायचा असेल, परंतु आम्हाला अद्याप स्थान माहित नसेल? स्थान विशेषता शून्य वर्णनास परवानगी देत नसल्यास आम्ही नवीन कर्मचारी देखील जोडण्यास अनुमती नाकारू शकतो.
सामान्य अवलंबून येतो तेव्हा, संपूर्ण अवलंबित्व संपूर्ण चित्र नाही. थर्ड नॉर्मल फॉर्म (3 एनएफ़) मध्ये आपला डाटाबेस आहे याची खात्री तुम्ही केली पाहिजे.