Functional dependency in DBMS in Hindi

What is Functional dependency in DBMS in Hindi - फंक्शनल डिपेंडेंसी क्या है?

DBMS में Functional dependency, एक table में attributes(columns) के बीच के relationship को दिखाता है।
यदि एक column की value से दूसरे column की value तय होती है, तो इसे Functional dependency कहते हैं।

Functional Dependency (FD) यह दिखाता है कि attributes कैसे सम्बन्धित है। यह data को सही बनाएं रखने और अनावश्यक दोहराव को हटाने में मदद करता है। यह data को सही तरीके से संगठित करने के लिए महत्वपूर्ण है।
 

Functional dependency यह सुनिश्चित करता है कि एक column बदलने पर दूसरे column में गलत data न आए। 
इसका उपयोग normalization में बड़े tables को छोटे बेहतर संरचना वाले tables में विभाजित करने के लिए किया जाता है।

यह गति में सुधार लाता है और गलतियों को हटाता है। Functional dependency के साथ अच्छे से डिजाइन किया हुआ डेटाबेस, डेटा खोजना, अपडेट करना और संग्रहीत करना आसान और अधिक सही बनाता है।

उदाहरण के लिए जब हम X -> Y लिखते है। तो यहां X determinant (निर्धारक) है और Y "dependent."(निर्भर ) है। X, Y को determine(निर्धारित) करता है।
 

Example:  

नीचे एक STUDENT table दिया गया है इस table के माध्यम से हम फंग्शनल डिपेंडेंसी को और अच्छे से जानने का प्रयास करेंगे हैं।
 
StudentID Name Course 
101     Dolly     DCA 
102     Monil          BCA 
103     Amita      DCA 

Functional Dependency:  
Functional Dependency को → के माध्यम से denote किया जाता है।
 
StudentID → Name  
इसका मतलब है कि यदि हम StudentID को जानते हैं तो हम student के name को विशिष्ट रूप से निर्धारित कर सकते हैं।

StudentID → Course  
इसका मतलब है कि यदि हम StudentID को जानते हैं तो हम student के course को विशिष्ट रूप से निर्धारित कर सकते हैं।

इसे निम्न प्रकार से लिखा जाता है:
StudentID → {Name, Course}  
यह बताता है कि StudentID से Name और Course का पता लगाया जा सकता है।

Types of functional dependency in DBMS in Hindi

DBMS में functional dependency के निम्न प्रकार होते है।

Trivial Functional Dependency  

एक Trivial functional dependency उस समय होता है जब एक attribute, स्वयं पर या उसके भाग पर निर्भर करता है। यह हमेशा सही रहता है और कोई नई जानकारी नहीं देता है।

Example1 

मान लीजिए एक टेबल में दो attributes(column) A और B है तब :  
A → A  
इसका मतलब है कि attribute A, स्वयं को निर्धारित करता है।

B → B  
इसका मतलब है कि attribute B, स्वयं को निर्धारित करता है।

{A, B} → A  
इसका मतलब है कि set {A, B}, A को निर्धारित करता है।

Example 2:

Student Table  से हम निम्न प्रकार से 
Trivial functional dependency को समझेंगे

StudentID Name
101     Ajay
102     Sumit     
103     Rahul 

Explanation  
(StudentID, Name) → StudentID एक trivial functional dependency है क्योंकि StudentID, पहले से है left side का भाग है।

Trivial dependency का मतलब है right side(StudentID) पहले से ही left side (StudentID, Name) में शामिल है।

ये Trivial है क्योंकि वे समान values को दोहराते हैं। Trivial dependencies database design या normalization में मदद नहीं करते।

Non-Trivial Functional Dependency  

एक No trivial functional Dependency का मतलब है एक column अन्य पर निर्भर है लेकिन वह पहले से उसमें शामिल नहीं है।

Example1 

मान लीजिए एक table है जिसमें A और B दो attributes(columns)
यदि A → B, है तब इसका मतलब है कि B, A में शामिल नहीं है।

इसे अच्छे से समझने का प्रयास करते हैं।
अगर 
Trivial Dependency: 
(A, B) → A 
इसका मतलब है कि A पहले से (A, B) मे शामिल अर्थात उसका subset है।
जबकि 
Non-Trivial Dependency: 
A → B में B, A का subset नही है।

Example2:

Student Table में No trivial functional Dependency को निम्न प्रकार से Table के द्वारा समझते हैं।

StudentID Name Address
101     Sohit     Balod 
102     Yash          Durg 
103     Raghaw      Raipur 

Explanation:
एक Student database में ,
(StudentID, Name) → Address 
एक non-trivial functional dependency क्योंकि Address, StudentID और Name पर निर्भर है, परंतु वह उसका भाग नहीं है।

इसका मतलब है कि StudentID और Name का combination, Address को विशिष्ट रूप से निर्धारित करता है।

Non-trivial functional dependencies डेटाबेस को बेहतर बनाती हैं, duplicate data हटाती हैं, गलतियाँ रोकती हैं, और डेटाबेस को सही तरीके से रखती हैं।

Partial functional dependency

Database management में, partial functional dependency तब होता है जब कोई non-key attribute केवल composite primary key के एक भाग पर निर्भर करता है, न कि पूरी key पर।

Example 


StudentID CourseID Lecturer
101     001     Mr. Rahul 
102     001          Mr. Rahul  
103     002      Mr. Sumit  
104     002      Mr. Sumit 

Explanation:  

Primary Key: 
(StudentID, CourseID) → Composite Primary Key  

Partial Dependency:
Lecturer केवल CourseID, पर निर्भर करता है न की पूरी Primary key अर्थात (StudentID, CourseID) पर 
अतः इसमें Partial dependency है।

Full functional dependency

Full functional dependency उस समय होता है जब एक non-key attribute, पूरे primary key पर निर्भर होता है न कि केवल उसके एक भाग पर। इसका मतलब है कि key में कोई attribute हटा दिया जाए तो key निर्भरता (dependency)को तोड़ देगा।

Example:
StudentID CourseID    Marks 
101     001       80
102     001            90
103     002        79 
104     002        88

Explanation:  

Primary Key: 
(StudentID, CourseID) → Composite Key  

Marks, StudentID और CourseID दोनों पर एक साथ निर्भर करता है।
यदि हम इसमें से एक को अर्थात StudentID या CourseID को हटा देते है तो हम Marks को निर्धारित नहीं कर सकते।

चुकि Marks को पूरे key की जरूरत है अतः यह एक Full functional dependency है।
@@@@@@@@

Transitive Functional Dependency  

Database management में एक, Transitive dependency उस समय होता है जब एक non-key attribute  अन्य non-key attribute पर एक primary key के माध्यम से निर्भर होता है, जिससे एक indirect relationship का निर्माण होता है।

उदाहरण के लिए यदि attribute A, B को determines करता है, और B,  C को determines करता है, तब A C को transitively determines करता है।

Example:

EmployeeID ProjectID ProjectName 
101     P01     BotDetect 
102     P02          WebMonitor 
103     P03      DataGuard 

Explanation:
EmployeeID → ProjectID EmployeeID, ProjectID को निर्धारित करता है।
ProjectID → ProjectName 
ProjectID, ProjectName को निर्धारित करता है।
इसलिए EmployeeID→ProjectName 
अतः ProjectID के माध्यम से EmployeeID, ProjectName को निर्धारित करता है।

यह एक Transitive functional dependency है क्योंकि EmployeeID, ProjectName को ProjectID के द्वारा अप्रत्यक्ष रूप से निर्धारित करता है।

Multivalued Functional Dependency  

Database management, में एक Multivalued dependency तब होता है जब table में एक attribute अन्य attribute के स्वतंत्र मानो को निर्धारित करता है।

उदाहरण के लिए यदि A स्वतंत्र रूप से B और C की values तय करता है, तो A की B और C पर multivalued dependency होती है।

Example

Table में EmployeeID, Skills, और Project तीन attributes है, यदि EmployeeID, कई Skills और Projects को निर्धारित करता है तब EmployeeID की दोनो Skill और Project पर multivalued dependency होती है।  

EmployeeID Skills Project 
101     C++     ProjectA
101     Pythan          ProjectA 
101     C++      ProjectB 
101     Pythan     ProjectB 
102     SQL          ProjectC 
102     PHP     ProjectC
102     SQL          ProjectD 
102     PHP      ProjectD 



Explanation:  
EmployeeID, कई Skills को निर्धारित करता है।
EmployeeID कई Projects को निर्धारित करता है। 
Skills और Projects एक दूसरे से स्वतंत्र है। 

यह एक Multivalued Functional Dependency है जहां 
EmployeeID →→ Skill and EmployeeID →→ Project.