Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
MySQL + SQL · Lesson 25

DBMS में Functional Dependency

Functional dependency क्या है

Functional dependency मतलब एक column की value दूसरे को तय करती है। अगर column A जानना हमेशा आपको column B बताए, तो B functionally A पर निर्भर है। यह सरल विचार keys और पूरी normalization प्रक्रिया के पीछे की theory है।

💡 A -> B मतलब: "अगर आप A जानते हैं, आप हमेशा B जानते हैं" — A, B को तय करता है।

A -> B notation

हम functional dependency को A -> B लिखते हैं:

  • A determinant है (वो column जो आप जानते हैं)।
  • B dependent है (वो column जिसे यह तय करता है)।

यह "A, B को तय करता है" पढ़ा जाता है। A के हर value को, ठीक एक B value है।

एक सरल उदाहरण

rollnamedept
1AmanScience
2DiyaArts

यहाँ roll -> name और roll -> dept: हर roll number ठीक एक नाम और एक department तय करता है। तो roll बाक़ी columns तय करता है — इसीलिए यह अच्छी primary key बनता है।

Full dependency

Full functional dependency मतलब column पूरी key पर निर्भर है, सिर्फ़ हिस्से पर नहीं। अगर primary key (student_id, course_id) है और grade को दोनों जानना ज़रूरी है, तो grade composite key पर पूरी तरह निर्भर है। यह बिल्कुल वही है जो 2NF माँगता है।

Partial dependency

Partial dependency तब है जब column composite key के सिर्फ़ हिस्से पर निर्भर हो।

Key: (student_id, course_id)
student_name सिर्फ़ student_id पर निर्भर  -- partial!

यहाँ student_name को सिर्फ़ student_id चाहिए, पूरी key नहीं। Partial dependencies redundancy कराती हैं और 2NF में table बाँटकर हटाई जाती हैं।

Transitive dependency

Transitive dependency एक अप्रत्यक्ष है, दूसरे non-key column के ज़रिए।

roll -> dept       (roll, dept तय करता है)
dept -> dept_head  (dept, dept_head तय करता है)
तो roll -> dept_head  (अप्रत्यक्ष, transitive)

dept_head dept पर निर्भर है, सीधे roll पर नहीं। Transitive dependencies 3NF में dependent column को अपनी table में ले जाकर हटाई जाती हैं।

आम गलतियाँ

  • Arrow उल्टा करना। A -> B का मतलब B -> A नहीं; दिशा मायने रखती है।
  • Partial और transitive मिलाना। Partial = composite key का हिस्सा; transitive = दूसरे non-key column के ज़रिए।
  • Design करते समय dependencies अनदेखा करना। ये बताती हैं tables सही कैसे बाँटें।
  • यह मानना हर column key पर निर्भर है। कुछ दूसरे columns पर निर्भर होते हैं — वही ठीक करने की समस्या है।

सारांश

  • Functional dependency A -> B मतलब A, B को तय करता है।
  • A determinant है; B dependent।
  • Full dependency: पूरी (composite) key पर निर्भर।
  • Partial dependency: composite key के हिस्से पर निर्भर (2NF में ठीक)।
  • Transitive dependency: दूसरे non-key column के ज़रिए निर्भर (3NF में ठीक)।

आगे, इन्हें लगाइए normalization में, या आगे बढ़िए BCNF से।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

DBMS में functional dependency क्या है?
Functional dependency मतलब एक column की value दूसरे column की value तय करती है। A -> B लिखा, यह कहता है "अगर आप A जानते हैं, आप B जानते हैं"। जैसे, roll -> name मतलब हर roll number ठीक एक student नाम तय करता है।
A -> B का क्या मतलब है?
A -> B मतलब A, B को functionally तय करता है: A के हर value को ठीक एक B value है। A को determinant और B को dependent कहते हैं। यह keys और normalization के पीछे का मूल विचार है।
Partial dependency क्या है?
Partial dependency तब होती है जब non-key column composite primary key के सिर्फ़ हिस्से पर निर्भर हो, पूरी key पर नहीं। Partial dependencies हटाना Second Normal Form (2NF) करता है।
Transitive dependency क्या है?
Transitive dependency तब है जब non-key column दूसरे non-key column पर निर्भर हो, जो बदले में key पर निर्भर हो। जैसे roll -> dept और dept -> dept_head, तो roll -> dept_head अप्रत्यक्ष रूप से। Third Normal Form (3NF) इन्हें हटाता है।
Functional dependencies क्यों महत्वपूर्ण हैं?
ये अच्छे database design की बुनियाद हैं। Dependencies पहचानना बताता है कौन-से columns साथ हैं, कौन keys होने चाहिए, और normalization के दौरान redundancy बचाने को tables कैसे बाँटें।
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

अगला topicDBMS में Normalization आपकी प्रगति: 25 / 151 (17%) · Lesson 26 / 151 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें