Functional Dependencies in DBMS in Hindi
▶
Table of Contents - Functional Dependency in Hindi
Functional Dependency in DBMS in Hindi
Functional Dependency (FD) DBMS का एक महत्वपूर्ण concept है जो यह बताता है कि एक attribute की value दूसरे attribute पर किस तरह depend करती है।
सबसे पहले एक बार बेसिक बात साफ़ कर लेते हैं, क्योंकि अगर यह नींव मज़बूत हो गई, तो आगे के सारे 5 प्रकार बच्चों का खेल लगेंगे।
जब किसी एक कॉलम (या कॉलम्स के समूह) की वैल्यू से हम दूसरे कॉलम की वैल्यू पूरे यकीन के साथ बता सकते हैं — उसे Functional Dependency (FD) कहते हैं।
Roll_No → Name (रोल नंबर, नाम को "तय" कर देता है)
यही एक Functional Dependency है। बस इतनी ही सीधी बात है!
| Roll_No | Name | Course |
|---|---|---|
| 101 | अमन | BCA |
| 102 | रिया | B.Tech |
| 103 | करण | BCA |
यहाँ Roll_No → Name भी है और Roll_No → Course भी है। अब इन्हीं छोटी-छोटी dependencies को हम 5 हिस्सों में बाँटेंगे, ताकि परीक्षा में आसानी से फ़र्क़ बता सकें।
सरल शब्दों में कहा जाए तो 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 के दौरान काम आते हैं। आइए एक-एक करके समझते हैं।
1. Trivial Functional Dependency
परिभाषा: जब दाईं तरफ़ (RHS) का attribute, बाईं तरफ़ (LHS) के समूह में पहले से ही मौजूद हो — यानी कोई नई जानकारी नहीं मिल रही — तो उसे Trivial FD कहते हैं।
आसान उदाहरण: यह बिल्कुल वैसा ही है जैसे कोई कहे "मेरे बैग में किताब और पेन है — उस बैग में किताब है।" अरे भाई, यह तो पहले से ही पता था! किताब तो बैग के अंदर थी ही। कोई नई बात पता नहीं चली।
उदाहरण: {Roll_No, Name} → Name | {Roll_No, Name} → Roll_No
दोनों ही मामलों में, जो दाईं तरफ़ है, वह बाईं तरफ़ के समूह में पहले से ही मौजूद है। इसीलिए इसे "Trivial" (मामूली, बेकार जानकारी) कहा जाता है।
2. Non-Trivial Functional Dependency
परिभाषा: जब दाईं तरफ़ (RHS) का attribute, बाईं तरफ़ (LHS) के समूह में मौजूद नहीं होता — यानी दाईं तरफ़ बिल्कुल नई, काम की जानकारी मिलती है — तो उसे Non-Trivial FD कहते हैं।
आसान उदाहरण: यह वैसा ही है जैसे आप कहें "मेरा रोल नंबर बता दो, मैं तुम्हें बता दूँगा मेरा कोर्स क्या है।" यहाँ Course एक बिल्कुल नई, काम की जानकारी है जो रोल नंबर के अंदर नहीं थी। यही असली, काम की dependency होती है।
याद रखने की तरकीब: 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 | Course_Name |
|---|---|---|
| S1 | C101 | DBMS |
| S2 | C101 | DBMS |
| S3 | C102 | OS |
यहाँ 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 पता चलेंगे। दोनों हिस्से ज़रूरी हैं, एक भी छोड़ नहीं सकते!
फ़र्क़ याद रखो: 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 है!
ज़रूरी बात: 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
- Trivial Functional Dependency
- Non-Trivial Functional Dependency
- Partial Functional Dependency
- Full Functional Dependency
- Transitive Functional Dependency