functional dependency in dbms in hindi

Srajan
⏰ 3 min read

Functional Dependency in DBMS in Hindi

Functional Dependency (FD) DBMS का एक महत्वपूर्ण concept है जो यह बताता है कि एक attribute की value दूसरे attribute पर किस तरह depend करती है।

सबसे पहले एक बार बेसिक बात साफ़ कर लेते हैं, क्योंकि अगर यह नींव मज़बूत हो गई, तो आगे के सारे 5 प्रकार बच्चों का खेल लगेंगे।

Functional Dependency क्या है?

जब किसी एक कॉलम (या कॉलम्स के समूह) की वैल्यू से हम दूसरे कॉलम की वैल्यू पूरे यकीन के साथ बता सकते हैं — उसे Functional Dependency (FD) कहते हैं।

🎯 असली ज़िंदगी का उदाहरण सोचिए आपके पास किसी स्टूडेंट का Roll Number है। रोल नंबर पता चलते ही आप पूरे यकीन से बता सकते हैं कि उस स्टूडेंट का नाम क्या है (क्योंकि एक रोल नंबर सिर्फ एक ही स्टूडेंट का होता है)। इसका मतलब है:

Roll_No → Name (रोल नंबर, नाम को "तय" कर देता है)
यही एक Functional Dependency है। बस इतनी ही सीधी बात है!
Roll_NoNameCourse
101अमनBCA
102रियाB.Tech
103करणBCA

यहाँ Roll_No → Name भी है और Roll_No → Course भी है। अब इन्हीं छोटी-छोटी dependencies को हम 5 हिस्सों में बाँटेंगे, ताकि परीक्षा में आसानी से फ़र्क़ बता सकें।

functional dependency in dbms in hindi diagram image

सरल शब्दों में कहा जाए तो Functional Dependency यह बताती है कि कौन-सा attribute दूसरे attribute को control या decide कर रहा है। अगर एक attribute की value बदलते ही दूसरा attribute अपने-आप बदल जाए या fix हो जाए, तो उनके बीच Functional Dependency होती है।

Functional Dependency को mathematical form में X → Y के रूप में लिखा जाता है। यहाँ X को Determinant कहा जाता है क्योंकि वही decide करता है, और Y को Dependent Attribute कहा जाता है क्योंकि उसकी value X पर depend करती है।


Types of Functional Dependency (in Hindi)

Functional Dependency के कई प्रकार होते हैं जो database normalization के दौरान काम आते हैं। आइए एक-एक करके समझते हैं।

types of functional dependency in dbms in hindi diagram image

1. Trivial Functional Dependency

परिभाषा: जब दाईं तरफ़ (RHS) का attribute, बाईं तरफ़ (LHS) के समूह में पहले से ही मौजूद हो — यानी कोई नई जानकारी नहीं मिल रही — तो उसे Trivial FD कहते हैं।

आसान उदाहरण: यह बिल्कुल वैसा ही है जैसे कोई कहे "मेरे बैग में किताब और पेन है — उस बैग में किताब है।" अरे भाई, यह तो पहले से ही पता था! किताब तो बैग के अंदर थी ही। कोई नई बात पता नहीं चली।

Roll_No, Name (बाईं तरफ़) Name (पहले से LHS में मौजूद) "Name" पहले से "Roll_No, Name" के अंदर था → Trivial!

उदाहरण: {Roll_No, Name} → Name  |  {Roll_No, Name} → Roll_No

दोनों ही मामलों में, जो दाईं तरफ़ है, वह बाईं तरफ़ के समूह में पहले से ही मौजूद है। इसीलिए इसे "Trivial" (मामूली, बेकार जानकारी) कहा जाता है।

2. Non-Trivial Functional Dependency

परिभाषा: जब दाईं तरफ़ (RHS) का attribute, बाईं तरफ़ (LHS) के समूह में मौजूद नहीं होता — यानी दाईं तरफ़ बिल्कुल नई, काम की जानकारी मिलती है — तो उसे Non-Trivial FD कहते हैं।

आसान उदाहरण: यह वैसा ही है जैसे आप कहें "मेरा रोल नंबर बता दो, मैं तुम्हें बता दूँगा मेरा कोर्स क्या है।" यहाँ Course एक बिल्कुल नई, काम की जानकारी है जो रोल नंबर के अंदर नहीं थी। यही असली, काम की dependency होती है।

Roll_No तय करता है Course Course, Roll_No के समूह का हिस्सा नहीं था → नई जानकारी → Non-Trivial!

याद रखने की तरकीब: Trivial यानी "अरे यह तो पहले से पता था" वाली बात। Non-Trivial यानी "अरे वाह, यह तो नई बात पता चली" वाली बात।

3. Partial Functional Dependency

परिभाषा: यह सिर्फ़ composite key (जब primary key 2 या ज़्यादा कॉलम मिलकर बनती है) वाले मामलों में होती है। जब कोई non-key attribute पूरे composite key पर depend नहीं करता, बल्कि सिर्फ़ एक हिस्से पर ही depend करता है — तो उसे Partial FD कहते हैं।

आसान उदाहरण: सोचिए आपके घर का पता है: (शहर + घर का नंबर) — दोनों मिलकर पूरा पता बनता है। लेकिन अगर कोई कहे "सिर्फ़ शहर का नाम पता हो तो मैं राज्य बता सकता हूँ" — तो देखिए, राज्य बताने के लिए घर के नंबर की ज़रूरत ही नहीं पड़ी! सिर्फ़ पते का एक हिस्सा (शहर) ही काफ़ी था। यही Partial Dependency है।

Student_ID + Course_ID ⬆ दोनों मिलकर बनी Composite Primary Key सिर्फ़ यह हिस्सा काफ़ी है Course_Name
Student_IDCourse_IDCourse_Name
S1C101DBMS
S2C101DBMS
S3C102OS

यहाँ Primary Key है {Student_ID, Course_ID}। लेकिन Course_Name सिर्फ़ Course_ID पर depend करता है, Student_ID की कोई ज़रूरत नहीं। इसीलिए यह Partial Dependency है — और यही 2NF (Second Normal Form) टूटने की मुख्य वजह बनती है।

4. Full Functional Dependency

परिभाषा: जब कोई non-key attribute, composite key के पूरे समूह पर depend करे — यानी key का कोई एक हिस्सा हटा दो तो वह dependency काम ही नहीं करेगी — तब उसे Full Functional Dependency कहते हैं। यह Partial FD के बिल्कुल उल्टा है।

आसान उदाहरण: अब सोचिए आपको यह पता करना है कि "स्टूडेंट S1 ने Course C101 में कितने Marks लिए?" सिर्फ़ Student_ID से नहीं पता चलेगा (क्योंकि एक स्टूडेंट कई कोर्स करता है), और सिर्फ़ Course_ID से भी नहीं पता चलेगा (क्योंकि एक कोर्स में कई स्टूडेंट होते हैं)। आपको दोनों चाहिए — Student_ID + Course_ID — तभी Marks पता चलेंगे। दोनों हिस्से ज़रूरी हैं, एक भी छोड़ नहीं सकते!

Student_ID + Course_ID ⬆ दोनों मिलकर ही काम करते हैं (पूरा समूह) Marks

फ़र्क़ याद रखो: Partial FD में key के सिर्फ़ एक हिस्से (Course_ID) से काम चल जाता है। Full FD में पूरे key समूह (Student_ID + Course_ID) की ज़रूरत पड़ती है, एक हिस्सा भी हटा दो तो dependency फेल हो जाएगी।

5. Transitive Functional Dependency

परिभाषा: जब A → B हो, और B → C हो, तो घुमावदार तरीके से A → C भी बन जाता है — लेकिन यह सीधा संबंध नहीं है, बल्कि B के "बीच में आने" से बना है। इसीलिए इसका नाम है Transitive FD।

आसान उदाहरण: सोचिए एक कड़ी है: "आपका Roll_No पता चले तो आपका शहर पता चल जाता है, और शहर पता चले तो उस शहर का पिनकोड पता चल जाता है।" तो घुमावदार तरीके से, सिर्फ़ Roll_No से ही पिनकोड भी पता चल गया — लेकिन Roll_No सीधे पिनकोड से जुड़ा नहीं था, बीच में शहर एक "पुल" का काम कर रहा था। एक दोस्त के ज़रिए दूसरे दोस्त से जुड़ना — यही Transitive है!

Roll_No City Pincode घुमावदार (transitive) संबंध Roll_No → City → Pincode ⇒ Roll_No → Pincode (घुमावदार तरीके से)

ज़रूरी बात: Transitive FD तभी संभव है जब बीच वाला attribute (यहाँ "शहर") खुद Key न हो। यह dependency 3NF (Third Normal Form) हासिल करते समय हटाई जाती है।

एक-लाइन में पूरा रीकैप

Trivial — RHS पहले से LHS के अंदर था, कुछ नया नहीं मिला
Non-Trivial — RHS एक नई, काम की जानकारी है
Partial — composite key का सिर्फ़ एक हिस्सा ही काफ़ी है
Full — composite key का पूरा समूह चाहिए, एक हिस्सा भी नहीं छोड़ सकते
Transitive — A → B → C के ज़रिए घुमावदार तरीके से A → C बन गया


Advantages of Functional Dependency in Hindi

  • Database को optimize करने में मदद करता है।
  • Data duplication कम करता है।
  • Normalization प्रक्रिया को आसान बनाता है।
  • Data consistency और accuracy सुनिश्चित करता है।

Disadvantages of Functional Dependency in Hindi

  • Complex database structure में dependencies को identify करना कठिन होता है।
  • गलत dependency से redundancy बढ़ सकती है।
  • Normalization process समय लेने वाला हो सकता है।

Closure of Functional Dependency in Hindi

किसी attribute set का closure निकालना database normalization में बहुत जरूरी होता है। Closure यह बताता है कि किसी attribute से हम कौन-कौन से अन्य attributes को uniquely identify कर सकते हैं।

  • Notation: A⁺ (A closure)
  • Example: यदि F = {A → B, B → C} तो A⁺ = {A, B, C}

Attribute Closure in Hindi

Attribute Closure किसी एक या एक से अधिक attributes के set का वह group होता है, जो उन attributes के माध्यम से uniquely determine किया जा सकता है।

  • यह primary key को verify करने में मदद करता है।
  • Normalization process में इसका बहुत उपयोग होता है।

Canonical Cover in Hindi

Canonical Cover या Minimal Cover का अर्थ है – किसी functional dependency set का simplified form। यह dependencies को इस प्रकार reduce करता है कि कोई dependency redundant न रहे।

  • इससे database optimization में मदद मिलती है।
  • यह सुनिश्चित करता है कि कोई dependency बार-बार repeat न हो।

FAQs

Functional Dependency in Hindi का मतलब है कि जब किसी database में एक attribute का value दूसरे attribute के value को uniquely determine करता है। उदाहरण के लिए, यदि Roll_No से Student का Name, Course और Fees uniquely पता चल जाए तो Roll_No → Name, Course, Fees एक Functional Dependency कहलाती है।
Functional Dependency के मुख्यतः पाँच प्रकार होते हैं —
  • Trivial Functional Dependency
  • Non-Trivial Functional Dependency
  • Partial Functional Dependency
  • Full Functional Dependency
  • Transitive Functional Dependency
ये सभी types normalization process में अलग-अलग situations को दर्शाते हैं।
Attribute Closure in Hindi का अर्थ है किसी attribute या attribute set से determine किए जा सकने वाले सभी attributes का group। इसे A⁺ से दर्शाया जाता है और यह primary key identify करने में मदद करता है। उदाहरण: यदि F = {A → B, B → C} तो A⁺ = {A, B, C}।
Canonical Cover in Hindi या Minimal Cover का मतलब है Functional Dependencies के ऐसे simplified set से है, जिसमें कोई dependency redundant नहीं होती। यह database design को efficient बनाता है और normalization के दौरान dependencies को सरल रूप में प्रस्तुत करता है।
Functional Dependency normalization की foundation है। यह बताती है कि attributes एक-दूसरे से कैसे depend करते हैं। Normalization process में Functional Dependencies का use करके redundancy कम की जाती है और data consistency बनाए रखी जाती है।
Srajan

✍️ Srajan

Diploma | Content Writer