फलनात्मक निर्भरताएँ, सामान्य रूप व अखंडता प्रतिबंध

यह वह खंड है जो अंतर्दृष्टि से अधिक यांत्रिक आदत का पुरस्कार देता है, क्योंकि प्रत्येक प्रश्न उसी तीन-चरणीय प्रक्रिया पर सिमटता है: संवर्त निकालें, अभ्यर्थी कुंजियाँ पढ़ें, फिर प्रत्येक निर्भरता को कुंजी-संरचना के सामने जाँचें। फलनात्मक निर्भरता X → Y कहती है कि X नियत करना Y नियत करता है, और संवर्त X⁺ वह सब है जो X निर्धारित करता है — X से आरंभ करके बारंबार किसी भी ऐसी निर्भरता का दक्षिण पक्ष जोड़ते हुए निकाला जाता जिसका वाम पक्ष आप पहले से रखते हैं, जब तक कुछ न बदले। कोई समुच्चय अधिकुंजी है जब उसका संवर्त सम्पूर्ण संबंध हो, और अभ्यर्थी कुंजी जब वह ऐसी अधिकुंजी हो जिसका कोई उचित उपसमुच्चय अधिकुंजी न हो। उसके पश्चात् सब सावधानी से लगाई परिभाषाएँ हैं। कोई गुण प्रमुख है यदि वह किसी अभ्यर्थी कुंजी में आए, और सामान्य-रूप सीढ़ी उन निर्भरताओं पर प्रतिबंधों का क्रम है जिन्हें आप रख सकते हैं: 2NF किसी अप्रमुख गुण को कुंजी के भाग पर निर्भर होने से मना करता है, 3NF उसे ऐसी किसी वस्तु पर निर्भर होने से मना करता है जो अधिकुंजी न हो, और BCNF छूट का उपवाक्य हटाकर माँगता है कि प्रत्येक अतुच्छ निर्भरता का वाम पक्ष अधिकुंजी हो, बस। सर्वाधिक उपयोगी परिणाम: यदि किसी संबंध का प्रत्येक गुण प्रमुख हो, तो संबंध स्वतः 3NF में है, उसकी निर्भरताएँ कितनी भी उलझी दिखें — और अध्याय का केंद्रीय उदाहरण वही है जहाँ तीनों निर्भरताएँ BCNF का उल्लंघन करती हैं जबकि 3NF ठीक उसी कारण टिकता है। तत्पश्चात् विघटन, जहाँ दो गुणधर्म एक-दूसरे के विरुद्ध खींचते हैं और सौदा ही परीक्षणीय विषय है: अलोप्य 3NF विघटन जो प्रत्येक निर्भरता संरक्षित करे सदा विद्यमान है, जबकि BCNF आपसे निर्भरता-संरक्षण की लागत ले सकता है।

पहले संवर्त, फिर कुंजियाँ, तत्पश्चात् शेष सब

लें R(A, B, C, D, E) सहित F = {A → B, BC → E, ED → A}। हाथ से संवर्त निकालें और कुंजी-संरचना निकल आती है। A⁺ = AB और रुक जाता है, अतः केवल A कुंजी से बहुत दूर है। CD⁺ = CD — कोई निर्भरता नहीं चलती, क्योंकि आपके पास C के साथ जोड़ने हेतु न A है न B। किंतु ACD⁺: A से B मिलता है, अतः आप ABCD रखते हैं; अब BC से E मिलता है, अतः ABCDE। वह सम्पूर्ण संबंध है, अतः ACD अधिकुंजी है, और चूँकि CD⁺ = CD तथा AC⁺ = ABCE तथा AD⁺ = ABD, उसका कोई उचित उपसमुच्चय अधिकुंजी नहीं — ACD अभ्यर्थी कुंजी है। वही चाल BCD⁺ = ABCDE (BC से E, ED से A) तथा CDE⁺ = ABCDE (ED से A, A से B) देती है, अतः BCD व CDE भी अभ्यर्थी कुंजियाँ हैं। तीन अभ्यर्थी कुंजियाँ, और वे मिलकर संबंध का प्रत्येक गुण प्रयोग करती हैं — और वह परिणामों वाला तथ्य है।

R(ABCDE), F = {A → B, BC → E, ED → A} — संवर्त, गणना सहित
गुण-समुच्चय XX⁺निर्णय
AABअधिकुंजी नहीं
CDCDकुछ भी नहीं चलता
ACABCED अनुपस्थित — अधिकुंजी नहीं
ACDABCDEअभ्यर्थी कुंजी
BCDABCDEअभ्यर्थी कुंजी
CDEABCDEअभ्यर्थी कुंजी
🧠 अधिकुंजियाँ सूचीबद्ध किए बिना गिनना
अधिकुंजी कोई भी ऐसा समुच्चय है जिसका संवर्त सब कुछ हो, अतः किसी अभ्यर्थी कुंजी का प्रत्येक अधिसमुच्चय अधिकुंजी है — जो गिनती को खोज के बजाय गणना-समस्या बना देता है। पहले स्वच्छ स्थिति: R(A, B, C, D) सहित F = {A → B, B → C, C → D, D → A} में निर्भरताएँ चक्र बनाती हैं, अतः प्रत्येक एकल गुण चारों निर्धारित करता है और चारों एकल गुण अभ्यर्थी कुंजियाँ हैं। तब चार गुणों का प्रत्येक अरिक्त उपसमुच्चय किसी अभ्यर्थी कुंजी को रखता है, अतः अधिकुंजी-गिनती 2⁴ − 1 = 15 है और संबंध BCNF में है — परिभाषा से प्रत्येक वाम पक्ष अधिकुंजी है। जहाँ अभ्यर्थी कुंजियाँ अतिव्यापी हों, समावेश–अपवर्जन चाहिए और बलात् गणना प्रायः तीव्रतर होती है: ACD, BCD व CDE कुंजियों सहित R(ABCDE) हेतु उत्तर 7 है, और उसका आकार ध्यान देने योग्य है — CD तीनों कुंजियों में है, अतः प्रत्येक अधिकुंजी CD रखती है, और गिनती {A, B, E} के उन उपसमुच्चयों की संख्या है जो किसी कुंजी को पूर्ण करते हैं: ACD, BCD, CDE, ABCD, ACDE, BCDE, ABCDE। सात, और CDE स्वयं वह कारण है जिससे केवल {A, B, E} स्वच्छ रूप से गुणित नहीं होता।

सीढ़ी, तथा वह पायदान जहाँ प्रमुख गुण आपको बचाते हैं

प्रत्येक सामान्य रूप किसी अतुच्छ X → Y हेतु क्या मना करता है
रूपअपेक्षाछूट का उपवाक्य
1NFप्रत्येक गुण एकल अविभाज्य मान रखता हैकोई नहीं — बहुमानी गुण को अपनी सारणी चाहिए
2NFकोई अप्रमुख गुण किसी अभ्यर्थी कुंजी के उचित भाग पर निर्भर नहींजब प्रत्येक अभ्यर्थी कुंजी एकल गुण हो तब स्वतः
3NFX अधिकुंजी हो या Y − X का प्रत्येक गुण प्रमुख होप्रमुख छूट — यही वह पायदान है जो प्रयुक्त होता है
BCNFX अधिकुंजी है। और कुछ नहीं।कोई नहीं — BCNF ठीक 3NF की छूट हटाता है
🎯 तीनों निर्भरताएँ BCNF का उल्लंघन करती हैं, और संबंध तब भी 3NF में है
R(ABCDE) पर लौटें, F = {A → B, BC → E, ED → A} व अभ्यर्थी कुंजियाँ ACD, BCD, CDE सहित। BCNF जाँचें: A अधिकुंजी है क्या? A⁺ = AB, अतः नहीं। BC? BC⁺ = BCE, नहीं। ED? ED⁺ = ABDE, नहीं। तीनों निर्भरताओं में प्रत्येक BCNF का उल्लंघन करती है। अब 3NF जाँचें, जो उल्लंघन की छूट तब देता है जब निर्धारित गुण प्रमुख हो। अभ्यर्थी कुंजियाँ ACD, BCD व CDE हैं, और वे मिलकर A, B, C, D व E रखती हैं — अतः प्रत्येक गुण प्रमुख है। A → B, B निर्धारित करता है, प्रमुख। BC → E, E निर्धारित करता है, प्रमुख। ED → A, A निर्धारित करता है, प्रमुख। संबंध 3NF में है। यह विषय का सर्वाधिक उपयोगी संक्षिप्त मार्ग है: यदि प्रत्येक गुण प्रमुख हो, तो 3NF स्वतः टिकता है, निर्भरताएँ कैसी भी दिखें, क्योंकि 3NF की छूट कभी विफल नहीं हो सकती। अतः ईमानदार प्रक्रिया है अभ्यर्थी कुंजियाँ खोजें, उनका सम्मिलन लें, और यदि वह संबंध को ढके तो 3NF की चिंता छोड़ें व सीधे BCNF जाँचने जाएँ। यह भी समझाता है कि इतने परीक्षा-संबंध ठीक 3NF-पर-BCNF-नहीं पर क्यों बैठते हैं: अतिव्यापी अभ्यर्थी कुंजियों वाला संबंध प्रायः वही होता है।
तीन निष्पादित संबंध, प्रत्येक भिन्न पायदान पर
संबंध व निर्भरताएँअभ्यर्थी कुंजियाँउच्चतम रूपउसे क्या तय करता है
R(ABCD), A→B, B→C, C→D, D→AA, B, C, DBCNFप्रत्येक वाम पक्ष सम्पूर्ण अभ्यर्थी कुंजी है
R(ABC), AB→C, C→AAB, BC3NFC→A, BCNF तोड़ता है, पर A प्रमुख है, अतः 3NF बचता है
R(ABCDE), AB→C, C→D, D→Eकेवल AB2NFC→D व D→E संक्रमणीय हैं; D व E अप्रमुख
⚠️ 2NF आंशिक निर्भरताओं पर विफल, 3NF संक्रमणीय पर — जाँचें कौन-सी
R(ABCDE) में AB → C, C → D, D → E सहित एकमात्र अभ्यर्थी कुंजी AB है, अतः C, D व E सब अप्रमुख हैं। अब देखें क्या विफल होता है और क्या नहीं। कोई आंशिक निर्भरता है क्या — AB के भाग से निर्धारित अप्रमुख गुण? नहीं: न केवल A न केवल B कुछ निर्धारित करता है। अतः 2NF टिकता है। कोई संक्रमणीय निर्भरता है क्या — गैर-अधिकुंजी से निर्धारित अप्रमुख गुण? हाँ, दो बार: C → D व D → E, जहाँ C व D अधिकुंजी नहीं तथा D व E प्रमुख नहीं। अतः 3NF विफल होता है और संबंध ठीक 2NF में है। बचने योग्य भूल है “बुरी निर्भरताएँ हैं” से “वह केवल 1NF में है” पर कूद जाना। सीढ़ी पायदान-दर-पायदान जाँची जाती है और दोनों विफलताओं के आकार भिन्न हैं: 2NF वाम पक्ष के कुंजी का उचित भाग होने के विषय में है, 3NF वाम पक्ष के अधिकुंजी ही न होने के विषय में। संबंध 2NF पास कर 3NF में विफल हो सकता है, यहाँ की भाँति; विलोम असंभव है, क्योंकि प्रत्येक 3NF संबंध 2NF में है।

अलोप्य संयोजन, निर्भरता-संरक्षण, तथा आप कौन-सा छोड़ते हैं

R का R1 व R2 में विघटन अलोप्य है जब उन्हें पुनः संयोजित करने पर ठीक R मिले — कोई कूट टपल नहीं। द्वि-मार्गी विघटन की कसौटी एक पंक्ति है: X को R1 व R2 के साझा गुण मानें; विघटन अलोप्य है यदि और केवल यदि X, R1 की या R2 की अधिकुंजी हो, तुल्यतः यदि X⁺ किसी एक अर्ध को समाविष्ट करे। R(ABCDE) पर F = {A → B, BC → E, ED → A} सहित: (AB, ACDE) में विघटन A साझा करता है, और A⁺ = AB जो AB को ढकता है, अतः वह अलोप्य है। (ABC, CDE) में विघटन C साझा करता है, और C⁺ = C, जो न ABC न CDE को ढकता है, अतः वह लोप्य है — उन दोनों को पुनः जोड़ना ऐसे टपल बनाता है जो R में कभी नहीं थे। और (AB, CDE) कुछ साझा नहीं करता, जो सदा लोप्य है, क्योंकि संयोजन कार्तीय गुणन में अपभ्रष्ट हो जाता है।

🎯 एक सौदा: 3NF दोनों गुणधर्म रखता है, BCNF नहीं भी
विघटन में दो गुणधर्म महत्व रखते हैं और वे समान रूप से उपलब्ध नहीं हैं। अलोप्य संयोजन का अर्थ है आप R पुनर्रचित कर सकते हैं। निर्भरता-संरक्षण का अर्थ है F की प्रत्येक निर्भरता अभी भी किसी एकल खंड के भीतर, बिना संयोजन, जाँची जा सकती है — जो महत्व रखता है क्योंकि जो प्रतिबंध आप केवल संयोजन से सत्यापित कर सकें वह ऐसा प्रतिबंध है जिसे आँकड़ाकोश सस्ते में लागू नहीं करेगा। ले जाने योग्य प्रमेय: किसी भी संबंध हेतु 3NF में अलोप्य, निर्भरता-संरक्षी विघटन सदा विद्यमान है, और BCNF में अलोप्य विघटन सदा विद्यमान है, किंतु निर्भरता-संरक्षी नहीं भी हो सकता। मानक साक्षी है R(A, B, C) सहित AB → C व C → B। अभ्यर्थी कुंजियाँ AB व AC हैं, अतः B व C प्रमुख हैं और संबंध 3NF में है; C → B, BCNF का उल्लंघन करता है क्योंकि C⁺ = CB सब कुछ नहीं। किसी भी BCNF विघटन को B को C से या A से अलग करना पड़ता है, और आप जैसे भी काटें, AB → C दो खंडों में फैल जाता है और स्थानीय रूप से जाँचा नहीं जा सकता। अतः BCNF सरलतः “3NF से श्रेष्ठ” नहीं: वह अतिरेक अधिक पूर्णता से हटाता है और आपसे लागू करने योग्य प्रतिबंधों की लागत ले सकता है, और इसीलिए वास्तविक स्कीमा प्रायः जानबूझकर 3NF पर रुक जाते हैं।

अखंडता प्रतिबंध: आँकड़ाकोश क्या संचित करने से मना करता है

नामित प्रतिबंध, तथा प्रत्येक क्या मना करता है
प्रतिबंधवह क्या मना करता है
प्रांत अखंडतास्तंभ के घोषित प्रकार या CHECK शर्त के बाहर का मान
सत्ता अखंडताप्राथमिक कुंजी के किसी भी भाग में शून्य, तथा द्विरुक्त कुंजी-मान
संदर्भात्मक अखंडतासंदर्भित सारणी में मेल खाती पंक्ति के बिना गैर-शून्य विदेशी कुंजी
कुंजी (UNIQUE)द्विरुक्त मान — किंतु प्राथमिक कुंजी के विपरीत शून्य मान अनुमत हैं
ℹ️ विदेशी कुंजी शून्य हो सकती है, और वह उल्लंघन नहीं
संदर्भात्मक अखंडता कहती है कि विदेशी कुंजी का मान किसी विद्यमान प्राथमिक कुंजी से मेल खाना चाहिए, और शून्य के पास मेल कराने योग्य मान ही नहीं — अतः शून्य विदेशी कुंजी प्रतिबंध संतुष्ट करती है। ER मानचित्रण के पश्चात् आंशिक संबंध ठीक उसी प्रकार निरूपित होता है: प्रबंधक-रहित कर्मचारी mgr में शून्य रखता है, और आँकड़ाकोश संतुष्ट है। और यह भी, संयोगवश नहीं, वही मार्ग है जिससे पिछले अध्याय का NOT IN जाल वास्तविक स्कीमा में आता है। दो और भेद परीक्षित होते हैं। प्राथमिक कुंजी किसी घटक में शून्य नहीं हो सकती और प्रति सारणी अधिकतम एक होती है; UNIQUE प्रतिबंध द्विरुक्तियाँ मना करता है पर शून्य अनुमत करता है और कई बार घोषित हो सकता है। और जब संदर्भित पंक्ति विलोपित हो, तो क्रिया घोषित होती है, अनुमानित नहीं: ON DELETE CASCADE आश्रित पंक्तियाँ हटाता है, ON DELETE SET NULL विदेशी कुंजी रिक्त करता है, और मूलभूत NO ACTION (या RESTRICT) विलोपन से मना कर देता है — अतः जनक पंक्ति विलोपित करने का परिणाम स्कीमा का निर्णय है जिसे प्रश्न को उत्तर पाने से पूर्व बताना चाहिए।

मुख्य बिंदु

  • पहले संवर्त निकालें, उनसे अभ्यर्थी कुंजियाँ पढ़ें, और निर्भरताएँ केवल उसके पश्चात् जाँचें।
  • A→B, BC→E, ED→A सहित R(ABCDE) पर अभ्यर्थी कुंजियाँ ACD, BCD व CDE हैं — तीन।
  • यदि प्रत्येक गुण प्रमुख हो, तो 3NF स्वतः टिकता है, निर्भरताएँ कैसी भी दिखें।
  • 2NF आंशिक निर्भरता पर विफल; 3NF संक्रमणीय पर। पायदान पृथक्-पृथक् जाँचें।
  • BCNF माँगता है प्रत्येक वाम पक्ष अधिकुंजी हो और उसमें कोई छूट नहीं।
  • द्वि-मार्गी विघटन अलोप्य है यदि और केवल यदि साझा गुण किसी एक अर्ध की अधिकुंजी हों।
  • अलोप्य निर्भरता-संरक्षी 3NF विघटन सदा विद्यमान है; BCNF हेतु नहीं भी।
  • अभ्यर्थी कुंजी का प्रत्येक अधिसमुच्चय अधिकुंजी है — गिनें, खोजें नहीं।
  • शून्य विदेशी कुंजी संदर्भात्मक अखंडता संतुष्ट करती है; प्राथमिक कुंजी में शून्य कभी नहीं।

अभ्यास प्रश्न (8)

उत्तर खोलने से पहले प्रत्येक प्रश्न हल करें। हर व्याख्या सही विकल्प के साथ लुभावना गलत विकल्प भी बताती है, क्योंकि अंक वहीं जाते हैं।

  1. फलनात्मक निर्भरताओं F = {A → B, BC → E, ED → A} सहित संबंध R(A, B, C, D, E) हेतु अभ्यर्थी कुंजियों की संख्या ______ है

    संख्यात्मक उत्तर — मान टाइप करें।

    उत्तर देखें

    उत्तर: 3

    3 — ACD, BCD व CDE। उससे आरंभ करें जो प्रत्येक कुंजी में होना ही चाहिए: C व D किसी दक्षिण पक्ष पर नहीं आते, अतः उन्हें कुछ निर्धारित नहीं करता और प्रत्येक अभ्यर्थी कुंजी में दोनों होने चाहिए। और CD⁺ = CD, अतः केवल CD पर्याप्त नहीं। अब CD तथा एक और गुण जाँचें। ACD⁺: A से B, फिर BC से E, ABCDE तक ✓। BCD⁺: BC से E, फिर ED से A, ABCDE तक ✓। CDE⁺: ED से A, फिर A से B, ABCDE तक ✓। तीनों चलते हैं, किसी का कोई उचित उपसमुच्चय नहीं चलता (चूँकि केवल CD विफल है), अतः तीनों अभ्यर्थी कुंजियाँ हैं और अन्य कोई नहीं — चौथी हेतु CD में जोड़ने योग्य चौथा गुण चाहिए होता, और केवल A, B, E विद्यमान हैं। दो उपयोगी उपोत्पाद: तीनों कुंजियाँ मिलकर प्रत्येक गुण रखती हैं, अतः प्रत्येक गुण प्रमुख है और संबंध 3NF में है; और अधिकुंजी-गिनती 7 है, वे तीन तथा ABCD, ACDE, BCDE व ABCDE।
  2. R(A, B, C, D, E) में F = {A → B, BC → E, ED → A} है तथा अभ्यर्थी कुंजियाँ ACD, BCD व CDE। R जो उच्चतम सामान्य रूप संतुष्ट करता है वह है:

    1. 2NF
    2. 3NF
    3. BCNF
    4. केवल 1NF
    उत्तर देखें

    उत्तर: B — 3NF

    3NF, और BCNF नहीं। पहले BCNF जाँचें, क्योंकि वह कठोरतर शर्त है: उसे प्रत्येक वाम पक्ष अधिकुंजी चाहिए। A⁺ = AB, BC⁺ = BCE, ED⁺ = ABDE — तीनों में कोई अधिकुंजी नहीं, अतः तीनों निर्भरताएँ BCNF का उल्लंघन करती हैं और विकल्प C बाहर है। अब 3NF, जो गैर-अधिकुंजी वाम पक्ष की छूट इस शर्त पर देता है कि वह जो गुण निर्धारित करे वे प्रमुख हों। तीनों अभ्यर्थी कुंजियाँ ACD, BCD व CDE मिलकर A, B, C, D व E रखती हैं, अतः R का प्रत्येक गुण प्रमुख है। A → B प्रमुख गुण निर्धारित करता है, BC → E वैसे ही, ED → A वैसे ही, अतः 3NF टिकता है — और वह ऐसे कारण से टिकता है जो विफल नहीं हो सकता, और वही ले जाने योग्य संक्षिप्त मार्ग है: जैसे ही अभ्यर्थी कुंजियों का सम्मिलन संबंध को ढके, 3NF स्वतः है। विकल्प A कम आँकता है: 2NF हेतु आंशिक निर्भरता सर्वाधिक बुरी समस्या होनी चाहिए, और यहाँ ऐसी कोई निर्भरता नहीं जिसका वाम पक्ष किसी अभ्यर्थी कुंजी का उचित उपसमुच्चय हो। विकल्प D यह मान लेने की प्रतिवर्त क्रिया है कि तीन BCNF उल्लंघनों का अर्थ निम्न रूप होना चाहिए।
  3. R(A, B, C, D, E) में F = {AB → C, C → D, D → E} है तथा AB उसकी एकमात्र अभ्यर्थी कुंजी। R जो उच्चतम सामान्य रूप संतुष्ट करता है वह है:

    1. 1NF
    2. 2NF
    3. 3NF
    4. BCNF
    उत्तर देखें

    उत्तर: B — 2NF

    ठीक 2NF। AB एकमात्र अभ्यर्थी कुंजी होने से प्रमुख गुण A व B हैं, अतः C, D व E सब अप्रमुख हैं। 2NF आंशिक निर्भरताओं के विषय में पूछता है — किसी अभ्यर्थी कुंजी के उचित भाग से निर्धारित अप्रमुख गुण। यहाँ न केवल A न केवल B कुछ निर्धारित करता है, अतः कोई आंशिक निर्भरता नहीं और 2NF टिकता है। 3NF संक्रमणीय निर्भरताओं के विषय में पूछता है — ऐसी वस्तु से निर्धारित अप्रमुख गुण जो अधिकुंजी न हो। दो हैं: C → D व D → E, जहाँ C⁺ = CDE तथा D⁺ = DE, कोई अधिकुंजी नहीं, और D व E अप्रमुख। अतः 3NF विफल होता है, और उसके साथ BCNF भी। विकल्प A जिस भूल का प्रतिनिधित्व करता है वह “उल्लंघन हैं” से सीधे निम्नतम पायदान पर कूदना है; सीढ़ी एक-एक चरण चढ़नी पड़ती है, और संबंध 2NF संतुष्ट करते हुए 3NF में विफल हो सकता है, ठीक यहाँ की भाँति। पिछले प्रश्न से उपयोगी वैषम्य ध्यान दें: वहाँ गैर-अधिकुंजी वाम पक्ष हानिरहित थे क्योंकि प्रत्येक गुण प्रमुख था; यहाँ उल्लंघन का वही आकार 3NF हेतु घातक है क्योंकि D व E प्रमुख नहीं।
  4. R(A, B, C, D, E) में F = {A → B, BC → E, ED → A} है। कौन-सा विघटन अलोप्य है?

    1. (ABC, CDE)
    2. (AB, ACDE)
    3. (AB, CDE)
    4. (ABE, CDE)
    उत्तर देखें

    उत्तर: B — (AB, ACDE)

    (AB, ACDE)। द्वि-मार्गी कसौटी लगाएँ: विघटन अलोप्य है यदि और केवल यदि साझा गुण किसी एक अर्ध की अधिकुंजी बनाएँ। यहाँ अर्ध A साझा करते हैं, और A⁺ = AB, जो सम्पूर्ण AB रखता है — अतः A खंड AB की कुंजी है और संयोजन R को ठीक पुनर्रचित करता है। विकल्प A केवल C साझा करता है, और C⁺ = C: C कुछ निर्धारित नहीं करता, अतः वह न ABC की न CDE की कुंजी है, और पुनःसंयोजन ऐसे टपल गढ़ता है जो R में कभी नहीं थे। विकल्प C कुछ भी साझा नहीं करता, जो सदा लोप्य है — साझा गुण के बिना प्राकृतिक संयोजन कार्तीय गुणन में अपभ्रष्ट हो जाता है। विकल्प D E साझा करता है, और E⁺ = E, अतः वह उसी कारण से विफल है जिससे A। बनाने योग्य आदत: साझा गुण पहचानें, उनका संवर्त लें, और उसे प्रत्येक अर्ध के सामने जाँचें। दो साझा गुण एक से श्रेष्ठ नहीं; महत्व इसका है कि संवर्त किसी खंड को निगलता है क्या।
  5. सामान्य रूपों में विघटन के विषय में निम्नलिखित में से कौन-से सत्य हैं?

    1. 3NF में अलोप्य, निर्भरता-संरक्षी विघटन सदा विद्यमान है
    2. BCNF में अलोप्य विघटन सदा विद्यमान है
    3. BCNF में निर्भरता-संरक्षी विघटन सदा विद्यमान है
    4. BCNF में प्रत्येक संबंध 3NF में है
    उत्तर देखें

    उत्तर: A — 3NF में अलोप्य, निर्भरता-संरक्षी विघटन सदा विद्यमान है; B — BCNF में अलोप्य विघटन सदा विद्यमान है; D — BCNF में प्रत्येक संबंध 3NF में है

    A, B व D। A व B दो अस्तित्व-प्रमेय हैं, और उनके बीच की असममिति ही परीक्षणीय विषय है। C असत्य है, और मानक साक्षी है R(A, B, C) सहित AB → C व C → B: उसकी अभ्यर्थी कुंजियाँ AB व AC हैं, अतः B व C प्रमुख हैं और संबंध पहले से 3NF में है, जबकि C → B, BCNF का उल्लंघन करता है क्योंकि C⁺ = CB सम्पूर्ण संबंध नहीं। किसी भी BCNF विघटन को B को A से पृथक् करना पड़ता है, और तब AB → C दो खंडों में फैलता है और बिना संयोजन जाँचा नहीं जा सकता — अतः आप जैसे भी काटें निर्भरता-संरक्षण खो जाता है। D परिभाषाओं से तत्काल है: BCNF माँगता है प्रत्येक वाम पक्ष अधिकुंजी हो, जो 3NF का प्रथम विकल्प है, अतः BCNF कठोरतः बलवत्तर शर्त है और 3NF का निगमन करती है। A को C के सामने पढ़ने का व्यावहारिक अर्थ यही है कि वास्तविक स्कीमा प्रायः जानबूझकर 3NF पर रुकते हैं: BCNF अधिक अतिरेक हटाता है पर आपसे ऐसे प्रतिबंध की लागत ले सकता है जिसे आँकड़ाकोश अन्यथा सस्ते में लागू कर पाता।
  6. R(A, B, C, D) में F = {A → B, B → C, C → D, D → A} है। R की अधिकुंजियों की संख्या ______ है

    संख्यात्मक उत्तर — मान टाइप करें।

    उत्तर देखें

    उत्तर: 15

    15। निर्भरताएँ चक्र बनाती हैं, अतः प्रत्येक एकल गुण शेष सब तक पहुँचता है: A⁺ = ABCD (A से B, B से C, C से D), और सममिति से B⁺ = C⁺ = D⁺ = ABCD। अतः चारों एकल गुण अभ्यर्थी कुंजियाँ हैं। अधिकुंजी कोई भी ऐसा समुच्चय है जिसका संवर्त सब कुछ हो, और चूँकि {A, B, C, D} का प्रत्येक अरिक्त उपसमुच्चय कम से कम एक एकल गुण रखता है, प्रत्येक अरिक्त उपसमुच्चय अधिकुंजी है: 2⁴ − 1 = 15। −1 रिक्त समुच्चय है, जिसका संवर्त रिक्त है। इससे दो बातें लेने योग्य हैं। प्रथम, संबंध BCNF में है: प्रत्येक वाम पक्ष सम्पूर्ण अभ्यर्थी कुंजी है, अतः उल्लंघन करने योग्य कुछ नहीं। द्वितीय, गिनती की विधि केवल तब सामान्यीकृत होती है जब अभ्यर्थी कुंजियाँ असंयुक्त या एकल हों — अतिव्यापी बहु-गुण कुंजियों सहित समावेश–अपवर्जन चाहिए, और ACD, BCD, CDE कुंजियों सहित R(ABCDE) हेतु उत्तर 7 है, दो की कोई स्वच्छ घात नहीं।
  7. R(A, B, C) में F = {AB → C, C → A} है। कौन-सा कथन सही है?

    1. R, BCNF में है
    2. R, 3NF में है किंतु BCNF में नहीं
    3. R, 2NF में है किंतु 3NF में नहीं
    4. R केवल 1NF में है
    उत्तर देखें

    उत्तर: B — R, 3NF में है किंतु BCNF में नहीं

    3NF में किंतु BCNF में नहीं — उस अंतराल का प्रामाणिक उदाहरण। पहले कुंजियाँ: AB⁺ = ABC ✓ तथा BC⁺ = ABC (C से A) ✓, जबकि A⁺ = A, B⁺ = B, C⁺ = CA, अतः अभ्यर्थी कुंजियाँ AB व BC हैं, और प्रत्येक गुण उनमें किसी एक में आता है — A, B, C सब प्रमुख हैं। अब BCNF: C → A में C⁺ = CA है, सम्पूर्ण संबंध नहीं, अतः C अधिकुंजी नहीं और BCNF विफल है। अब 3NF: C जो गुण निर्धारित करता है वह A है, जो प्रमुख है, अतः छूट लागू होती है और 3NF टिकता है। विकल्प C हेतु कुंजी के भाग से निर्धारित अप्रमुख गुण चाहिए; यहाँ अप्रमुख गुण ही कोई नहीं, अतः 2NF या 3NF का उल्लंघन कुछ नहीं कर सकता। यह संबंध वह मानक साक्षी भी है कि निर्भरता-संरक्षी BCNF विघटन विद्यमान होना आवश्यक नहीं: BCNF संतुष्ट करने हेतु विभाजन A को B से पृथक् करता है, और तब AB → C दो खंडों में फैलता है और स्थानीय रूप से लागू नहीं हो सकता।
  8. सारणी emp(eid, mgr) में mgr को emp(eid) का संदर्भ देती विदेशी कुंजी घोषित किया गया है। mgr को NULL रखकर एक पंक्ति डाली जाती है। क्या होता है?

    1. डालना अस्वीकृत होता है — विदेशी कुंजी को विद्यमान पंक्ति से मेल खाना चाहिए
    2. डालना सफल होता है — शून्य विदेशी कुंजी संदर्भात्मक अखंडता संतुष्ट करती है
    3. डालना केवल तब सफल होता है यदि सारणी रिक्त हो
    4. शून्य चुपचाप विद्यमान लघुतम eid से बदल दिया जाता है
    उत्तर देखें

    उत्तर: B — डालना सफल होता है — शून्य विदेशी कुंजी संदर्भात्मक अखंडता संतुष्ट करती है

    डालना सफल होता है। संदर्भात्मक अखंडता अपेक्षा करती है कि विदेशी कुंजी का मान किसी विद्यमान प्राथमिक कुंजी से मेल खाए, और शून्य के पास मेल कराने योग्य मान नहीं — प्रतिबंध गैर-शून्य मानों पर कहा गया है और रिक्ततः संतुष्ट है। ER मानचित्रण आंशिक सहभागिता का निरूपण ठीक उसी प्रकार करता है: प्रबंधक-रहित कर्मचारी शून्य रखता है, और यह छिद्र के बजाय अभिप्रेत अभिकल्प है। प्राथमिक कुंजी से वैषम्य करें, जो किसी घटक में शून्य नहीं हो सकती — वह सत्ता अखंडता है, भिन्न प्रतिबंध, और दोनों को मिला देना ही विकल्प A को आकर्षक बनाता है। विकल्प D ऐसा कुछ वर्णित करता है जो कोई SQL आँकड़ाकोश नहीं करता; प्रतिबंध अस्वीकार या स्वीकार करते हैं, वे चुपचाप मान प्रतिस्थापित नहीं करते। पिछले अध्याय से जोड़ने योग्य: यही वैध शून्य वह मार्ग है जिससे वास्तविक स्कीमा NOT IN संकट प्राप्त करता है, क्योंकि तब eid NOT IN (SELECT mgr FROM emp) कोई पंक्ति नहीं लौटाएगी।