Functional Dependency in DBMS in Hindi – Functional Dependency क्या है

Srajan
⏰ 4 min read

सिलेबस के अनुसार DBMS के सभी टॉपिक यहाँ देखें — बिल्कुल फ्री

Table of Contents

Subject Video ▶

Functional Dependency in Hindi – Functional Dependency क्या है?

Endless Horse – Think You Can Find the End? Play The Game Functional Dependency in DBMS in Hindi - Functional Dependency क्या है diagram
  • Functional Dependency एक ऐसा relationship है जो किसी टेबल के दो attributes (columns) के बीच बनता है, जिसमें एक attribute की वैल्यू दूसरे attribute की वैल्यू को uniquely तय करती है।
  • इसे X → Y के रूप में लिखा जाता है, जिसका मतलब है "X, Y को determine करता है" — यानी X की एक ही वैल्यू के लिए Y की भी सिर्फ एक ही वैल्यू होगी।
  • यहां X को Determinant कहा जाता है और Y को Dependent, क्योंकि Y की वैल्यू पूरी तरह X पर निर्भर होती है।
  • आसान शब्दों में समझें तो अगर हमें X की वैल्यू पता हो, तो हम आसानी से बता सकते हैं कि Y की वैल्यू क्या होगी।
  • यह concept मुख्य रूप से Normalization की प्रक्रिया में इस्तेमाल होता है, जो डेटाबेस से redundancy हटाने के लिए किया जाता है।
  • Functional Dependency को database designers और developers दोनों समझते हैं, ताकि टेबल का structure सही तरीके से design किया जा सके।
  • अगर functional dependencies को सही तरीके से पहचाना न जाए, तो डेटाबेस में redundancy और anomalies (जैसे update, insert, delete anomaly) आने का खतरा रहता है।

Example of Functional Dependency (उदाहरण)

मान लीजिए किसी Students टेबल में Roll_No और Name नाम के दो columns हैं। अगर हर Roll_No के लिए सिर्फ एक ही Name जुड़ा है, तो हम कहेंगे Roll_No → Name, यानी Roll_No, Name को functionally determine करता है — यह example exam mein bhi likha ja sakta hai।

इसी तरह किसी Employee टेबल में Emp_ID → Salary भी एक valid functional dependency हो सकती है, क्योंकि हर employee ID के लिए एक ही salary value fix होती है।

Roll_No determines Name Roll_No → Name

Types of Functional Dependency in Hindi – Functional Dependency के प्रकार

Types of Functional Dependency in Hindi - Functional Dependency के प्रकार diagram

Functional Dependency को उसकी nature के आधार पर कुछ मुख्य categories में बांटा जाता है:

1. Trivial Functional Dependency

अगर X → Y में Y, X का ही एक subset हो, तो उसे Trivial Functional Dependency कहा जाता है। जैसे {Roll_No, Name} → Roll_No एक trivial dependency है, क्योंकि Roll_No पहले से ही left side में मौजूद है। यह dependency हमेशा सही होती है, इसलिए इसे कोई खास जानकारी नहीं माना जाता।

{Roll_No, Name} (X) Roll_No (subset of X) Y, X का ही subset होने से यह Trivial है

2. Non-Trivial Functional Dependency

अगर X → Y में Y, X का subset नहीं है, तो उसे Non-Trivial Functional Dependency कहा जाता है। जैसे Roll_No → Name एक non-trivial dependency है, क्योंकि Name, Roll_No का हिस्सा नहीं है। यही dependency असल में database design के लिए उपयोगी जानकारी देती है।

Roll_No (X) Name (Y, X का हिस्सा नहीं) Y, X का subset नहीं — इसलिए Non-Trivial

3. Fully Functional Dependency

जब कोई attribute Y पूरी तरह X पर निर्भर हो, यानी X के किसी भी हिस्से को हटाने पर Y determine न हो सके, तो उसे Fully Functional Dependency कहा जाता है। जैसे {Roll_No, Subject} → Marks एक fully functional dependency हो सकती है, अगर Marks सिर्फ Roll_No या सिर्फ Subject से पता न चल सके।

Roll_No + Subject Marks Roll_No अकेले या Subject अकेले से Marks पता नहीं चलते

4. Partial Dependency

जब कोई non-key attribute, primary key के सिर्फ एक हिस्से पर निर्भर हो (पूरे composite key पर नहीं), तो उसे Partial Dependency कहा जाता है। जैसे अगर {Roll_No, Subject} composite key है और Student_Name सिर्फ Roll_No पर निर्भर है, तो यह एक partial dependency है। यह 2NF (Second Normal Form) achieve करने में एक बड़ी बाधा मानी जाती है।

Roll_No + Subject Composite Primary Key Student_Name Student_Name सिर्फ Roll_No पर निर्भर है (पूरे key पर नहीं)

5. Transitive Dependency

जब कोई attribute किसी दूसरे non-key attribute के through indirectly किसी और attribute पर निर्भर हो, तो उसे Transitive Dependency कहा जाता है। जैसे अगर Roll_No → Dept_ID और Dept_ID → Dept_Name है, तो Roll_No, Dept_Name पर transitively निर्भर होगा। इसी dependency को हटाना 3NF (Third Normal Form) का मुख्य उद्देश्य होता है।

Roll_No Dept_ID Dept_Name indirect (transitive) dependency

Armstrong's Axioms in Hindi – आर्मस्ट्रॉन्ग के नियम

Functional Dependencies से नई dependencies निकालने (derive करने) के लिए कुछ बुनियादी नियम बनाए गए हैं, जिन्हें Armstrong's Axioms कहा जाता है। इन्हें William Armstrong ने प्रस्तावित किया था, इसलिए इनका यही नाम पड़ा।

1. Reflexivity Rule

अगर Y, X का subset है, तो X → Y हमेशा सही होगा। यह rule सिर्फ trivial dependencies बनाने के काम आता है।

2. Augmentation Rule

अगर X → Y सही है, तो XZ → YZ भी सही होगा, यानी दोनों तरफ एक ही extra attribute Z जोड़ने पर dependency valid बनी रहती है।

3. Transitivity Rule

अगर X → Y सही है और Y → Z भी सही है, तो X → Z भी सही होगा। यही rule transitive dependency को पहचानने का आधार बनता है।

Importance of Functional Dependency in Hindi – Functional Dependency का महत्व

Functional Dependency सिर्फ एक theory concept नहीं है, बल्कि यह database design की quality पर सीधा असर डालती है:

  1. Normalization की Foundation: डेटाबेस को 1NF, 2NF, 3NF और BCNF जैसे normal forms तक पहुंचाने का पूरा process functional dependencies पर ही आधारित होता है।
  2. Redundancy Identification: इसकी मदद से यह पहचानना आसान होता है कि टेबल में कौन-सा डाटा बार-बार repeat हो रहा है।
  3. Data Integrity: सही dependencies define करने से डेटाबेस में inconsistent डाटा आने की संभावना कम हो जाती है।
  4. Better Schema Design: इससे यह तय करने में मदद मिलती है कि कौन-सा attribute किस टेबल में होना चाहिए।

Advantages of Functional Dependency in Hindi – Functional Dependency के फायदे

  1. Reduces Redundancy: सही dependencies पहचानने से डेटाबेस में डाटा का दोहराव कम हो जाता है।
  2. Improves Data Consistency: एक बार dependency define हो जाने पर डाटा में विरोधाभास (contradiction) आने की संभावना घट जाती है।
  3. Simplifies Normalization: यह टेबल को अलग-अलग normal forms में तोड़ने की प्रक्रिया को व्यवस्थित बनाती है।
  4. Helps in Query Optimization: स्पष्ट dependencies होने से database engine queries को बेहतर तरीके से optimize कर पाता है।

Disadvantages of Functional Dependency in Hindi – Functional Dependency की सीमाएं

  1. Complex to Identify: बड़े और जटिल डेटाबेस में सभी functional dependencies को सही तरीके से पहचानना मुश्किल हो सकता है।
  2. Over-Normalization Risk: dependencies के आधार पर बहुत ज्यादा normalization करने से टेबल्स की संख्या बढ़ जाती है, जिससे joins ज्यादा लगते हैं।
  3. Requires Expertise: सही dependencies define करने के लिए database design का अच्छा अनुभव होना जरूरी है।
  4. Maintenance Overhead: जैसे-जैसे business requirements बदलती हैं, पुरानी dependencies को दोबारा verify करना पड़ता है।

Difference Between Functional Dependency and Multivalued Dependency in Hindi – दोनों में अंतर

Students अक्सर इन दोनों concepts को एक जैसा समझ लेते हैं, जबकि इनमें साफ अंतर है — नीचे दी गई table से यह अंतर समझा जा सकता है:

Basis Functional Dependency Multivalued Dependency
Notation X → Y के रूप में लिखी जाती है X →→ Y के रूप में लिखी जाती है
Values X की एक वैल्यू के लिए Y की सिर्फ एक वैल्यू होती है X की एक वैल्यू के लिए Y की कई वैल्यू हो सकती हैं
Normal Form 3NF और BCNF से जुड़ी होती है 4NF (Fourth Normal Form) से जुड़ी होती है
Complexity अपेक्षाकृत समझने में आसान थोड़ी ज्यादा जटिल मानी जाती है

Conclusion – निष्कर्ष

Functional Dependency यह समझने का आधार है कि किसी टेबल के attributes आपस में कैसे जुड़े होते हैं और एक attribute की वैल्यू दूसरे को कैसे तय करती है। Trivial से लेकर Transitive Dependency तक इसके अलग-अलग types, और Armstrong's Axioms जैसे नियम, मिलकर एक अच्छी तरह normalized डेटाबेस design करने में मदद करते हैं। यही वजह है कि Normalization की पूरी प्रक्रिया — 1NF से लेकर BCNF तक — functional dependencies को समझे बिना संभव नहीं है।

FAQs

Functional Dependency एक ऐसा relationship है जिसमें किसी attribute X की वैल्यू, दूसरे attribute Y की वैल्यू को uniquely determine करती है, जिसे X → Y लिखा जाता है।
मुख्य types में Trivial, Non-Trivial, Fully Functional, Partial और Transitive Dependency शामिल हैं।
Armstrong's Axioms में तीन मुख्य नियम शामिल हैं — Reflexivity, Augmentation और Transitivity, जो नई functional dependencies derive करने में मदद करते हैं।
यह Normalization की foundation है, redundancy पहचानने में मदद करती है और डेटाबेस की data integrity व schema design को बेहतर बनाती है।
इसके फायदों में redundancy कम होना, data consistency बेहतर होना, normalization आसान होना और query optimization में मदद मिलना शामिल है।
बड़े डेटाबेस में dependencies पहचानना मुश्किल हो सकता है, over-normalization का खतरा रहता है और इसे सही तरीके से लागू करने के लिए expertise चाहिए होती है।
Functional Dependency (X → Y) में एक वैल्यू के लिए सिर्फ एक ही dependent वैल्यू होती है, जबकि Multivalued Dependency (X →→ Y) में एक वैल्यू के लिए कई dependent वैल्यू हो सकती हैं।
Srajan

✍️ Srajan

Diploma | Content Writer

•