शानल डिपेन्डेन्सीज़ के एक सेट का क्लोज़र iclosure of A Set of Functional Dependencies) फिंक्शनल डिपेन्डेन्सीज़ (Functional Dependencies) के किसी दिए गए सेट (Set) पर विचार करना पर्याप्त
. बल्कि हमें उन सभी फंक्शनल डिपेन्डेन्सीज़ (Functional Dependencies) पर विचार करना चाहिए, जो
ना
होल्ड (Hold) करते हैं।
फंक्शनल डिपेन्डेन्सीज़ (Functional Dependencies) के दिए गए एक सेट (Set), F के लिए हम साबित कर मते हैं कि कुछ अन्य फंक्शनल डिपेन्डेन्सीज़ (Functional Dependencies), F के द्वारा एम्प्लॉई (Imply) अर्थात् प्रकट की जाती हैं।
मान लीजिए कि हमें एक रिलेशन स्कीमा (Relation Schema), R = (A, B, C, G, H, I) एवं इसकी फंक्शनल डिपेन्डेन्सीज (Functional Dependencies) का एक सेट (Set) इस प्रकार दिया जाता है
A→B ADC CG →H CGI
B→H
यहाँ फंक्शनल डिपेन्डेन्सी (Functional Dependency)-A→ H लॉजिकली (Logically) एम्प्लॉई (Imply) करती है अर्थात् प्रकट होती है।
हम यह दर्शा सकते हैं कि जब दी गई फंक्शनल डिपेन्डेन्सीज़ (Functional Dependencies) का सेट (Set) होल्ड (Hold) करता है तो A → H को भी निश्चित रूप से होल्ड (Hold) करना चाहिए। मान लीजिए कि t, और t, ऐसे ट्यूपल्स (Tuples) हैं जहाँ, t1[A] = t2[A] है।
चूंकि हमें A → B दिया गया है; अतः फंक्शनल डिपेन्डेन्सी (functional dependency) की परिभाषा के आधार पर हम कह सकते हैं कि, ti[B] = t2[B] है।
इसके पश्चात् चूँकि हमें B→ H दिया गया है; अतः फंक्शनल डिपेन्डेन्सी (Functional Dependency) की परिभाषा के आधार पर हम कह सकते हैं कि, t1[H] = t2[H] है।
अतः यह सत्यापित होता है कि जब t, और t, ऐसे ट्यूपल्स (Tuples) हैं, जिनके लिए ti[A] = t, [A] हो ता 1[H] = th[H] होगा।
मान लीजिए कि द फंक्शनल डिपेन्डेन्सीज़ (Functional Dependencies) का एक सेट (Set) है। F का पर (Closure of F), उन सभी फंक्शनल डिपेन्डेन्सीज़ (Functional Dependencies) का एक सेट (Set) होता है,
द्वारा इम्प्लाई (Imply) किया जाता है अर्थात् प्रकट किया जाता है। F के क्लोज़र (Closure of F) को F+ से < (Denote) किया जाता है। फंक्शनल डिपेन्डेन्सी (Functional Dependency) की परिभाषा के आधार पर हम ए गए F के लिए F+ को ज्ञात कर सकते हैं। यदि F बहुत बड़ी होती है, तो F+ को कम्प्यूट (Compute) करने की प्रक्रिया बड़ी एवं जटिल हो जाती है।
दी गयीं फंक्शनल डिपेन्डेन्सीज़ (Functional Dependencies) के सेट (Set) F, के लिए F+ (Closure of
72
- F) को ज्ञात करने की अनेक विधियाँ हैं, जिसमें एक विधि फंक्शनल डिपेन्डेन्सीज़ के लिए इन्फेरेन्स की तीन एग्जिोर या रूल्स (Three Axioms or Rules of Inference for Functional Dependencies) पर आधारित है। इन रूम (Rules) में एट्रीब्यूट्स (Attributes) के सेट्स (Sets) के ग्रीक लेटर्स (Greek letters)-, B, Y, … अर्थात् अल्फा (a), बीटा (B), गामा (/), … का प्रयोग करते हैं।
- रिफ्लेग्ज़िविटी रूल (Reflexivity Rule)-यदि एट्रीब्यूट्स (Attributes) का एक सेट (Set) है और र co है अर्थात् अल्फा (a.), बीटा (B) का एक सबसेट (Subset) है तो, a →B होल्ड (Hold) करती है अर्थात बीटा (B). अल्फा (u) पर फंक्शनली डिपेन्डेन्ट (Functionallv Dependent) होती है।
- ऑगमेन्टेशन रूल (Augmentation Rule)-यदि →B होल्ड (Hold) करती है और , एट्रीब्यटस
(Attributes) का एक सेट-(Set) होता है, तो ya →B भी होल्ड (Hold) करती है। • ट्रान्जिविटी रूल (Transivity Rule)-यदि →B होल्ड (Hold) करती हो, तो ८ →Y भी होल्ड (Hold)करती है।
ये रूल्स (Rules) पूर्ण हैं, क्योंकि फंक्शनल डिपेन्डेन्सीज़ (Functional Dependencies) के दिए गए सेट (Set), F के लिए ये हमें F+ (Closure of F) को जेनरेट करने की अनुमति देते हैं। इन तीनों रूल्स (Rules) अर्थात नियमों को सामूहिक रूप से आर्मस्ट्रांग का एग्जियोम्स (Armstrong’s Axioms) कहते हैं; आर्मस्ट्रांग (Armstrong) ही पहले व्यक्ति थे जिन्होंने इन नियमों को प्रस्तावित किया था।
यद्यपि आर्मस्ट्रांग के एग्ज़ियोम्स (Armstrong’s Axioms) पूर्ण (Complete) हैं, परन्तु इन्हें F+ के कम्प्यूटेशन (Computation) के लिए सीधे-सीधे (Directly) प्रयोग करना उबाऊ एवं कठिन होता है। अतः F+ के कम्प्यूटेशन (Computation) को सरलीकृत करने के लिए हम कुछ अतिरिक्त रूल्स (Additional Rules) का प्रयोग करते हैं। ये रूल्स (Rules) सही हैं, इसे साबित करने के लिए हम आर्मस्ट्रांग एग्जियोम्स (Armstrong Axioms) का प्रयोग कर सकते हैं।
- यूनियन रूल (Union Rule)—यदि 4 → B होल्ड (Hold) करती है और 4 →। होल्ड (Hold) करती है
तो → By होल्ड (Hold) करती है।
- डिकम्पोज़िशन रूल (Decomposition Rule) यदि ८ → By होल्ड (Hold) करती है तो 4 →B होल्ड
(Hold) करती है और 4 →Y होल्ड (Hold) करती है।
- स्यूडोट्रान्जिविटी रूल (Pseudotransivity Rule)-यदि → B होल्ड (hold) करती है और B = 6 होल्ड करती है तो Oly → होल्ड (Hold) करती है।
आइए, अब इन नियमों (Rules) को पिछले दिए उदाहरण पर लागू (Apply) करते हैं। पिछले उदाहरण की रिलेशन स्कीमा (Relation Schema) R निम्नवत् है—
R = (A, B, C,G, H, I)
दी गयी फंक्शनल डिपेन्डेन्सीज़ (Functional Dependencies) का सेट (Set) F इस तरह है
A →B
A → C
CG →H
CG →I
B →H
इसे निम्न प्रकार भी लिखा जा सकता हैF = {A-B, A-C, CGDH, CG-I, B-DH}
दी गई फंक्शनल डिपेन्डेन्सीज़ (Functional Dependencies) पर उपरोक्त नियमों (Rules) को लागू (Apply) करने पर हम F+ (Closure of F) के अनेक मेम्बर्स (Members) को ज्ञात कर सकते हैं।
73
चुकी A->B एवं B → H है; अतः ट्रान्ज़िटिविटी रूल (Transivity Rule) को एप्लाई (Apply) करने पर हम फंक्शनल डिपेन्डेन्सी (Functional Dependency) A → H पाते हैं।
चुकी CG→I है अत: union को apply करने पर हम CG→HI पाते है
अतः यूनियन (Union) को एप्लाई (Apply) करने पर हम CG → HI पाते हैं।
चुकी A→C एवं CG→I अतः स्यूडोट्रान्जिटिविटी रूल (pseuodotransitivity rule) को एप्लाई (apply) करने पर हम CG → HI पाते हैं।