तीसरा सामान्य रूप: Difference between revisions
(Created page with "{{Short description|Normalizing a database design to reduce the duplication of data and ensure referential integrity}} तीसरा सामान्य फॉर्म (3...") |
No edit summary |
||
(8 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Normalizing a database design to reduce the duplication of data and ensure referential integrity}} | {{Short description|Normalizing a database design to reduce the duplication of data and ensure referential integrity}} | ||
तीसरा सामान्य फॉर्म ( | '''तीसरा सामान्य फॉर्म (3एनएफ)''' रिलेशनल [[डेटाबेस]] के लिए एक [[डेटाबेस स्कीमा]] डिज़ाइन दृष्टिकोण है जो डेटा के दोहराव को कम करने, [[डेटा विसंगति]] से बचने, संदर्भात्मक अखंडता सुनिश्चित करने और डेटा प्रबंधन को सरल बनाने के लिए [[डेटाबेस सामान्यीकरण]] सिद्धांतों का उपयोग करता है। इसे सत्र 1971 में एक अंग्रेजी कंप्यूटर वैज्ञानिक एडगर एफ. कॉड द्वारा परिभाषित किया गया था, जिन्होंने डेटाबेस प्रबंधन के लिए [[ संबंधपरक मॉडल |रिलेशनल मॉडल]] का आविष्कार किया था। | ||
एक [[संबंध (डेटाबेस)]] (उदाहरण के लिए एक [[तालिका (डेटाबेस)]] | एक [[संबंध (डेटाबेस)]] (उदाहरण के लिए एक [[तालिका (डेटाबेस)]] को तीसरे सामान्य फॉर्म मानकों को पूरा करने के लिए कहा जाता है यदि सभी विशेषताएँ (उदाहरण के लिए [[कॉलम (डेटाबेस)]] [[कार्यात्मक निर्भरता|कार्यात्मक]] रूप से केवल [[प्राथमिक कुंजी]] पर निर्भर हैं। कॉड ने इसे दूसरे सामान्य रूप में एक संबंध के रूप में परिभाषित किया जहां सभी गैर-प्रमुख विशेषताएं केवल [[उम्मीदवार कुंजी]] पर निर्भर करती हैं और किसी अन्य कुंजी पर [[सकर्मक निर्भरता]] नहीं रखती हैं।<ref>Codd, E. F. "Further Normalization of the Data Base Relational Model", p. 34.</ref> | ||
कॉड को | तीसरे सामान्य फॉर्म को पूरा करने में विफलता का एक काल्पनिक उदाहरण एक अस्पताल डेटाबेस होगा जिसमें रोगियों की एक तालिका होगी जिसमें उनके डॉक्टर के टेलीफोन नंबर के लिए एक कॉलम सम्मिलित होगा। फ़ोन नंबर रोगी के अतिरिक्त डॉक्टर पर निर्भर होता है, इसलिए इसे डॉक्टरों की तालिका में संग्रहीत करना उत्तम होगा। इस तरह के डिज़ाइन का ऋणात्मक परिणाम यह है कि यदि किसी डॉक्टर के पास अनेक मरीज़ हैं तब उनका नंबर डेटाबेस में डुप्लिकेट हो जाएगा, इस प्रकार इनपुट त्रुटि की संभावना बढ़ जाएगी और उस नंबर को अपडेट करने की निवेश और कठिन परिस्थिति दोनों बढ़ जाएंगे (तीसरे सामान्य की तुलना में) फॉर्म-अनुपालक डेटा मॉडल जो डॉक्टर के नंबर को केवल एक बार डॉक्टर टेबल पर संग्रहीत करता है)। | ||
कॉड को पश्चात् में एहसास हुआ कि 3एनएफ ने सभी अवांछनीय डेटा विसंगतियों को समाप्त नहीं किया है और सत्र 1974 में इसे संबोधित करने के लिए एक शक्तिशाली संस्करण विकसित किया, जिसे बॉयस-कॉड सामान्य रूप के रूप में जाना जाता है। | |||
==तीसरे सामान्य रूप की परिभाषा== | ==तीसरे सामान्य रूप की परिभाषा== | ||
तीसरा सामान्य फॉर्म ( | तीसरा सामान्य फॉर्म (3एनएफ) एक डेटाबेस सामान्यीकरण डेटाबेस सामान्यीकरण में उपयोग किया जाने वाला एक सामान्य फॉर्म है। 3एनएफ को मूल रूप से सत्र 1971 में ई. एफ. कॉड द्वारा परिभाषित किया गया था।<ref name="Codd">Codd, E. F. "Further Normalization of the Data Base Relational Model". (Presented at Courant Computer Science Symposia Series 6, "Data Base Systems", New York City, May 24–25, 1971.) IBM Research Report RJ909 (August 31, 1971). Republished in Randall J. Rustin (ed.), ''Data Base Systems: Courant Computer Science Symposia Series 6''. Prentice-Hall, 1972.</ref> कॉड की परिभाषा बताती है कि एक तालिका 3एनएफ में तभी होती है जब निम्नलिखित दोनों स्थितियाँ पूरी होती हैं: | ||
* रिलेशन (डेटाबेस) आर (तालिका) दूसरे सामान्य रूप ( | * रिलेशन (डेटाबेस) आर (तालिका) दूसरे सामान्य रूप (2एनएफ) में है। | ||
* R का कोई भी गैर-प्रमुख गुण प्राथमिक कुंजी पर सकर्मक रूप से निर्भर नहीं है। | * R का कोई भी गैर-प्रमुख गुण प्राथमिक कुंजी पर सकर्मक रूप से निर्भर नहीं है। | ||
R की एक गैर-प्रमुख विशेषता एक ऐसी विशेषता है जो R की किसी भी उम्मीदवार कुंजी से संबंधित नहीं है।<ref name="Codd2">Codd, p. 43.</ref> एक सकर्मक निर्भरता एक कार्यात्मक निर्भरता है जिसमें X → Z (X, Z को निर्धारित करता है) अप्रत्यक्ष रूप से, X → Y और Y → Z के आधार पर (जहां ऐसा नहीं है कि Y → X)।<ref>Codd, p. 45–46.</ref> | R की एक गैर-प्रमुख विशेषता एक ऐसी विशेषता है जो R की किसी भी उम्मीदवार कुंजी से संबंधित नहीं है।<ref name="Codd2">Codd, p. 43.</ref> एक सकर्मक निर्भरता एक कार्यात्मक निर्भरता है जिसमें X → Z (X, Z को निर्धारित करता है) अप्रत्यक्ष रूप से, X → Y और Y → Z के आधार पर (जहां ऐसा नहीं है कि Y → X)।<ref>Codd, p. 45–46.</ref> | ||
एक | |||
* X में Y | एक 3एनएफ परिभाषा जो कॉड के समतुल्य है, किन्तु भिन्न ढंग से व्यक्त की गई है, सत्र 1982 में कार्लो ज़ानिओलो द्वारा दी गई थी। यह परिभाषा बताती है कि एक तालिका 3एनएफ में है यदि और केवल यदि इसकी प्रत्येक कार्यात्मक निर्भरता X → Y के लिए, निम्न में से कम से कम एक शर्तें रखती हैं:<ref name="Zaniolo">Zaniolo, Carlo. "A New Normal Form for the Design of Relational Database Schemata". ''ACM Transactions on Database Systems'' 7(3), September 1982.</ref><ref>[[Abraham Silberschatz]], [[Henry F. Korth]], S. Sudarshan, ''[http://www.db-book.com/ Database System Concepts]'' (5th edition), p. 276–277.</ref> | ||
* X में Y सम्मिलित है (अर्थात, Y, X का एक उपसमुच्चय है, जिसका अर्थ है | |||
*X एक [[सुपरकी]] है, | *X एक [[सुपरकी]] है, | ||
* Y\X का प्रत्येक तत्व, Y और X के | * Y\X का प्रत्येक तत्व, Y और X के मध्य पूरक (समूह सिद्धांत) सापेक्ष पूरक, एक प्रमुख विशेषता है (अर्थात, Y\X में प्रत्येक विशेषता कुछ उम्मीदवार कुंजी में निहित है)। | ||
ज़ानिओलो की परिभाषा को और अधिक सरलता से दोहराने के लिए, संबंध 3एनएफ में है यदि और केवल यदि प्रत्येक गैर-तुच्छ कार्यात्मक निर्भरता X → Y के लिए, X एक सुपरकी है या Y एक प्रमुख विशेषता है। ज़ैनियोलो की परिभाषा 3एनएफ और अधिक कठोर बॉयस-कॉड सामान्य रूप (BCएनएफ) के मध्य अंतर की स्पष्ट समझ देती है। बीसीएनएफ बस तीसरे विकल्प को हटा देता है ('''"Y \ X का प्रत्येक तत्व, Y और X के मध्य समूह अंतर, एक प्रमुख विशेषता है।"''')। | |||
== '''"कुंजी के अतिरिक्त कुछ नहीं"''' == | |||
कॉड की 3एनएफ की परिभाषा का एक अनुमान, नियम की अदालत में सच्चा प्रमाण देने के लिए पारंपरिक [[शपथयुक्त गवाही]] के समानांतर, बिल केंट द्वारा दिया गया था: "[प्रत्येक] गैर-कुंजी [विशेषता] को कुंजी, संपूर्ण कुंजी के बारे में एक तथ्य प्रदान करना होगा, और कुंजी के अतिरिक्त कुछ नहीं"।<ref name="Kent">Kent, William. [http://www.bkent.net/Doc/simple5.htm "A Simple Guide to Five Normal Forms in Relational Database Theory"], ''Communications of the ACM'' 26 (2), Feb. 1983, pp. 120–125.</ref> एक सामान्य भिन्नता इस परिभाषा को "तो मेरी मदद करो कॉड" शपथ के साथ पूरक करती है।<ref name="Diehr">The author of a 1989 book on database management credits one of his students with coming up with the "so help me Codd" addendum. Diehr, George. ''Database Management'' (Scott, Foresman, 1989), p. 331.</ref> | |||
'''"कुंजी"''' के अस्तित्व की आवश्यकता यह सुनिश्चित करती है कि तालिका 1एनएफ में है; गैर-कुंजी विशेषताओं को '''"संपूर्ण कुंजी"''' पर निर्भर करने की आवश्यकता 2एनएफ सुनिश्चित करती है; इसके अतिरिक्त यह आवश्यक है कि गैर-कुंजी विशेषताएँ '''"कुंजी के अतिरिक्त कुछ भी नहीं"''' पर निर्भर हों, 3एनएफ सुनिश्चित करता है। चूँकि यह वाक्यांश एक उपयोगी स्मरणीय है, तथ्य यह है कि यह केवल एक ही कुंजी का उल्लेख करता है इसका कारण है कि यह दूसरे और तीसरे सामान्य रूपों को संतुष्ट करने के लिए कुछ आवश्यक किन्तु पर्याप्त शर्तों को परिभाषित नहीं करता है। 2एनएफ और 3एनएफ दोनों ही तालिका की सभी उम्मीदवार कुंजियों से समान रूप से संबंधित हैं, न कि केवल किसी एक कुंजी से। | |||
क्रिस डेट केंट के सारांश को 3एनएफ "एक सहज रूप से आकर्षक लक्षण वर्णन" के रूप में संदर्भित करते हैं और ध्यान देते हैं कि थोड़े से अनुकूलन के साथ यह थोड़े शक्तिशाली बॉयस-कॉड सामान्य रूप की परिभाषा के रूप में काम कर सकता है: "प्रत्येक विशेषता को कुंजी, संपूर्ण कुंजी के बारे में एक तथ्य का प्रतिनिधित्व करना चाहिए , संपूर्ण कुंजी और कुंजी के अतिरिक्त कुछ भी नहीं।"<ref name="DateIntro">Date, C. J. ''An Introduction to Database Systems'' (7th ed.) (Addison Wesley, 2000), p. 379.</ref> परिभाषा का 3एनएफ संस्करण डेट के बीसीएनएफ संस्करण से अशक्त है, क्योंकि पूर्व का संबंध केवल यह सुनिश्चित करने से है कि गैर-कुंजी विशेषताएँ कुंजियों पर निर्भर हैं। प्राइम विशेषताएँ (जो कुंजियाँ या कुंजियों के भाग हैं) कार्यात्मक रूप से बिल्कुल भी निर्भर नहीं होनी चाहिए; उनमें से प्रत्येक कुंजी का एक भाग या पूरी कुंजी प्रदान करने के अर्थ में कुंजी के बारे में एक तथ्य का प्रतिनिधित्व करता है। (यह नियम केवल कार्यात्मक रूप से निर्भर विशेषताओं पर प्रयुक्त होता है, क्योंकि इसे सभी विशेषताओं पर प्रयुक्त करने से समग्र उम्मीदवार कुंजियाँ प्रतिबंधित हो जाएंगी, क्योंकि ऐसी किसी भी कुंजी का प्रत्येक भाग '''"संपूर्ण कुंजी"''' खंड का उल्लंघन करेगा।) | |||
3एनएफ की आवश्यकताओं को पूरा करने में विफल रहने वाली तालिका का एक उदाहरण है: | |||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ टूर्नामेंट विजेता | ||
! <u> | ! <u>टूर्नामेंट</u> !! <u>वर्ष</u> !! विजेता !! विजेता की जन्मतिथि | ||
|- | |- | ||
| | |इंडियाना आमंत्रण||1998||अल फ्रेड्रिकसन||21 जुलाई 1975 | ||
|- | |- | ||
| | |क्लीवलैंड ओपन||1999||बॉब अल्बर्टसन||28 सितंबर 1968 | ||
|- | |- | ||
| | |डेस मोइनेस मास्टर्स||1999||अल फ्रेड्रिकसन||21 जुलाई 1975 | ||
|- | |- | ||
| | |इंडियाना आमंत्रण||1999||चिप मास्टर्सन||14 मार्च 1977 | ||
|} | |} | ||
क्योंकि तालिका में प्रत्येक पंक्ति को हमें यह बताने की आवश्यकता है कि किसी विशेष वर्ष में एक विशेष टूर्नामेंट किसने जीता, [[समग्र कुंजी]] {टूर्नामेंट, वर्ष} एक पंक्ति को विशिष्ट रूप से पहचानने की गारंटी देने वाली विशेषताओं का एक न्यूनतम | क्योंकि तालिका में प्रत्येक पंक्ति को हमें यह बताने की आवश्यकता है कि किसी विशेष वर्ष में एक विशेष टूर्नामेंट किसने जीता, [[समग्र कुंजी]] {टूर्नामेंट, वर्ष} एक पंक्ति को विशिष्ट रूप से पहचानने की गारंटी देने वाली विशेषताओं का एक न्यूनतम समूह है। अर्थात्, {टूर्नामेंट, वर्ष} तालिका के लिए एक उम्मीदवार कुंजी है। | ||
3एनएफ का उल्लंघन इसलिए होता है क्योंकि गैर-प्रमुख विशेषता (विजेता की जन्म तिथि) गैर-प्रमुख विशेषता विजेता के माध्यम से उम्मीदवार कुंजी {टूर्नामेंट, वर्ष} पर निर्भर होती है। तथ्य यह है कि विजेता की जन्मतिथि कार्यात्मक रूप से विजेता पर निर्भर है, जिससे तालिका तार्किक विसंगतियों के प्रति संवेदनशील हो जाती है, क्योंकि एक ही व्यक्ति को भिन्न-भिन्न रिकॉर्ड पर भिन्न-भिन्न जन्म तिथियों के साथ दिखाए जाने से कोई नहीं रोक सकता है। | |||
3एनएफ का उल्लंघन किए बिना समान तथ्यों को व्यक्त करने के लिए, तालिका को दो भागों में विभाजित करना आवश्यक है: | |||
{| style="border-spacing:2em 0; margin-left:-2em" | {| style="border-spacing:2em 0; margin-left:-2em" | ||
| valign="top" | | | valign="top" | | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ टूर्नामेंट विजेता | ||
! <u> | ! <u>टूर्नामेंट</u> !! <u>वर्ष</u> !! विजेता | ||
|- | |- | ||
| | |इंडियाना आमंत्रण||1998||अल फ्रेड्रिकसन | ||
|- | |- | ||
| | |क्लीवलैंड ओपन||1999||बॉब अल्बर्टसन | ||
|- | |- | ||
| | |डेस मोइनेस मास्टर्स||1999||अल फ्रेड्रिकसन | ||
|- | |- | ||
| | |इंडियाना आमंत्रण||1999||चिप मास्टर्सन | ||
|} | |} | ||
| वैलिग्न = शीर्ष | | | वैलिग्न = शीर्ष | | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ विजेता की जन्मतिथि | ||
! <u> | ! <u>विजेता</u> !! जन्म की तारीख | ||
|- | |- | ||
| | |चिप मास्टर्सन||14 मार्च 1977 | ||
|- | |- | ||
| | |अल फ्रेड्रिकसन||21 जुलाई 1975 | ||
|- | |- | ||
| | |बॉब अल्बर्टसन||28 सितंबर 1968 | ||
|} | |} | ||
|} | |} | ||
इन तालिकाओं में अद्यतन विसंगतियाँ नहीं हो सकतीं, क्योंकि पहले के विपरीत, विजेता | इन तालिकाओं में अद्यतन विसंगतियाँ नहीं हो सकतीं, क्योंकि पहले के विपरीत, विजेता वर्तमान दूसरी तालिका में एक उम्मीदवार कुंजी है, इस प्रकार प्रत्येक विजेता के लिए जन्म तिथि के लिए केवल एक मान की अनुमति होती है। | ||
== '''गणना''' == | |||
एक संबंध को सदैव तीसरे सामान्य रूप में विघटित किया जा सकता है, अर्थात संबंध आर को [[संबंधपरक प्रक्षेपण]] R<sub>1</sub> में फिर से लिखा जाता है, ..., R<sub>n</sub> जिसका [[प्राकृतिक जुड़ाव]] मूल संबंध के सामान्तर है। इसके अतिरिक्त, यह अपघटन किसी भी कार्यात्मक निर्भरता को नहीं खोता है, इस अर्थ में कि आर पर प्रत्येक कार्यात्मक निर्भरता उन कार्यात्मक निर्भरताओं से प्राप्त की जा सकती है जो अनुमानों पर आधारित हैं। R<sub>1</sub>, ..., R<sub>n</sub>. इससे भी अधिक, इस तरह के अपघटन की गणना बहुपद समय में की जा सकती है।<ref>[[Serge Abiteboul]], Richard B. Hull, [[Victor Vianu]]: Foundations of Databases. Addison-Wesley, 1995. http://webdam.inria.fr/Alice/ {{ISBN|0201537710}}. Theorem 11.2.14.</ref> | |||
किसी संबंध को 2एनएफ से 3एनएफ में विघटित करने के लिए, तालिका को विहित कवर कार्यात्मक निर्भरता में तोड़ें, फिर मूल संबंध की प्रत्येक उम्मीदवार कुंजी के लिए एक संबंध बनाएं जो पहले से ही अपघटन में किसी संबंध का सबसमूह नहीं था।<ref>{{Cite web |last=Hammo |first=Bassam |title=Decomposition, 3NF, BCNF |url=https://faculty.ksu.edu.sa/sites/default/files/E-%20Decomposition.pdf |archive-url=https://web.archive.org/web/20230315013047/https://faculty.ksu.edu.sa/sites/default/files/E-%20Decomposition.pdf |archive-date=2023-03-15 |url-status=live }}</ref> | |||
==ज़ानिओलो शर्तों की व्युत्पत्ति== | ==ज़ानिओलो शर्तों की व्युत्पत्ति== | ||
1982 में कार्लो ज़ानिओलो द्वारा प्रस्तुत | सत्र 1982 में कार्लो ज़ानिओलो द्वारा प्रस्तुत 3एनएफ की परिभाषा, और ऊपर दी गई, निम्नलिखित तरीके से सिद्ध की गई है: मान लीजिए कि X → A एक गैर-तुच्छ गैर-तुच्छ FD है (अर्थात् जहाँ . यह भी मान लें कि Y, R की कुंजी है। फिर Y → X। | ||
==3एनएफ से परे सामान्यीकरण== | ==3एनएफ से परे सामान्यीकरण== | ||
अधिकांश | अधिकांश 3एनएफ तालिकाएँ अद्यतन, सम्मिलन और विलोपन विसंगतियों से मुक्त हैं। कुछ प्रकार की 3एनएफ तालिकाएँ, जो व्यवहार में संभवतः ही कभी पाई जाती हैं, ऐसी विसंगतियों से प्रभावित होती हैं; यह ऐसी तालिकाएँ हैं जो या तब बॉयस-कॉड सामान्य फॉर्म (बीसीएनएफ) से कम हैं या, यदि वह बीसीएनएफ से मिलती हैं, तब उच्च सामान्य फॉर्म 4एनएफ या 5एनएफ से कम हैं। | ||
==रिपोर्टिंग परिवेश में उपयोग के लिए विचार== | =='''रिपोर्टिंग परिवेश में उपयोग के लिए विचार'''== | ||
जबकि | जबकि 3एनएफ मशीन प्रसंस्करण के लिए आदर्श था, डेटा मॉडल की खंडित प्रकृति मानव उपयोगकर्ता द्वारा उपभोग करने में कठिनाई हो सकती है। क्वेरी, रिपोर्टिंग और डैशबोर्ड के माध्यम से विश्लेषण को अधिकांशतः एक भिन्न प्रकार के डेटा मॉडल द्वारा सुविधा प्रदान की जाती थी जो प्रवृत्ति रेखाओं, अवधि-दर-तारीख गणना (माह-दर-तारीख, तिमाही-दर-तारीख, वर्ष-) जैसे पूर्व-गणना विश्लेषण प्रदान करता था। आज तक), संचयी गणना, मूलभूतआँकड़े (औसत, मानक विचलन, चलती औसत) और पिछली अवधि की तुलना (वर्ष पहले, महीने पहले, सप्ताह पहले) जैसे। [[आयामी मॉडलिंग]] और आयामी मॉडलिंग से परे, [[Hadoop]] और [[डेटा विज्ञान]] के माध्यम से तारों का चपटा होना।<ref>{{cite web |title=Comparisons between Data Warehouse modelling techniques – Roelant Vos |website=roelantvos.com |url=http://roelantvos.com/blog/?p=740 |access-date=5 March 2018}}</ref><ref>{{cite web |date=23 September 2014 |title=Hadoop Data Modeling Lessons {{!}} EMC |website=InFocus Blog {{!}} Dell EMC Services |url=https://infocus.dellemc.com/william_schmarzo/hadoop-data-modeling-lessons-vin-diesel/|access-date=5 March 2018}}</ref> | ||
=='''यह भी देखें'''== | |||
==यह भी देखें== | |||
*विशेषता-मूल्य प्रणाली | *विशेषता-मूल्य प्रणाली | ||
==संदर्भ== | ==संदर्भ== | ||
{{Reflist}} | {{Reflist}} | ||
=='''अग्रिम पठन'''== | |||
{{Refbegin}}. | |||
*दिनांक, सी.जे. (1999), ''[https://web.archive.org/web/20050404010227/http://www.aw-bc.com/catalog/academic/product/0,1144,0321197844,00 .html डेटाबेस सिस्टम का एक परिचय]'' (8वां संस्करण)। एडिसन-वेस्ले लॉन्गमैन।{{ISBN|0-321-19784-4}}. | |||
*केंट, डब्ल्यू. (1983) ''[http://www.bkent.net/Doc/simple5.htm ए सिंपल गाइड टू फाइव नॉर्मल फॉर्म्स इन रिलेशनल डेटाबेस थ्योरी]'', कम्युनिकेशंस ऑफ द एसीएम, वॉल्यूम। 26, पृ. 120-126{{Refend}} | |||
=='''बाहरी संबंध'''== | |||
*[http://www.troubleshooters.com/littstip/ltnorm.html लिट की युक्तियाँ: सामान्यीकरण] | |||
*[http://databases.about.com/od/specificproducts/a/normalization.htm डेटाबेस सामान्यीकरण मूल बातें] माइक चैपल द्वारा (About.com) | |||
*[http://mikehillyer.com/articles/an-introduction-to-database-normalization/ डेटाबेस सामान्यीकरण का एक परिचय] माइक हिलियर द्वारा. | |||
*[http://phlonx.com/resources/nf3/ पहले 3 सामान्य रूपों पर एक ट्यूटोरियल] फ्रेड कॉल्सन द्वारा | |||
*[http://support.microsoft.com/kb/283878 डेटाबेस सामान्यीकरण मूल बातें का विवरण] माइक्रोसॉफ्ट द्वारा | |||
*[http://exploredatabase.com/2014/02/third-normal-form-3nf-with-example.html सरल उदाहरणों के साथ तीसरा सामान्य रूप] एक्स्प्लोरडेटाबेस द्वारा | |||
{{DEFAULTSORT:Third Normal Form}} | |||
{{DEFAULTSORT:Third Normal Form}} | |||
[[de:Normalisierung (Datenbank)#Dritte Normalform (3NF)]] | [[de:Normalisierung (Datenbank)#Dritte Normalform (3NF)]] | ||
[[Category:Created On 09/08/2023|Third Normal Form]] | |||
[[Category:Lua-based templates|Third Normal Form]] | |||
[[Category: Machine Translated Page]] | [[Category:Machine Translated Page|Third Normal Form]] | ||
[[Category: | [[Category:Pages with script errors|Third Normal Form]] | ||
[[Category:Short description with empty Wikidata description|Third Normal Form]] | |||
[[Category:Templates Vigyan Ready|Third Normal Form]] | |||
[[Category:Templates that add a tracking category|Third Normal Form]] | |||
[[Category:Templates that generate short descriptions|Third Normal Form]] | |||
[[Category:Templates using TemplateData|Third Normal Form]] | |||
[[Category:डेटाबेस सामान्यीकरण|3NF]] |
Latest revision as of 17:11, 21 August 2023
तीसरा सामान्य फॉर्म (3एनएफ) रिलेशनल डेटाबेस के लिए एक डेटाबेस स्कीमा डिज़ाइन दृष्टिकोण है जो डेटा के दोहराव को कम करने, डेटा विसंगति से बचने, संदर्भात्मक अखंडता सुनिश्चित करने और डेटा प्रबंधन को सरल बनाने के लिए डेटाबेस सामान्यीकरण सिद्धांतों का उपयोग करता है। इसे सत्र 1971 में एक अंग्रेजी कंप्यूटर वैज्ञानिक एडगर एफ. कॉड द्वारा परिभाषित किया गया था, जिन्होंने डेटाबेस प्रबंधन के लिए रिलेशनल मॉडल का आविष्कार किया था।
एक संबंध (डेटाबेस) (उदाहरण के लिए एक तालिका (डेटाबेस) को तीसरे सामान्य फॉर्म मानकों को पूरा करने के लिए कहा जाता है यदि सभी विशेषताएँ (उदाहरण के लिए कॉलम (डेटाबेस) कार्यात्मक रूप से केवल प्राथमिक कुंजी पर निर्भर हैं। कॉड ने इसे दूसरे सामान्य रूप में एक संबंध के रूप में परिभाषित किया जहां सभी गैर-प्रमुख विशेषताएं केवल उम्मीदवार कुंजी पर निर्भर करती हैं और किसी अन्य कुंजी पर सकर्मक निर्भरता नहीं रखती हैं।[1]
तीसरे सामान्य फॉर्म को पूरा करने में विफलता का एक काल्पनिक उदाहरण एक अस्पताल डेटाबेस होगा जिसमें रोगियों की एक तालिका होगी जिसमें उनके डॉक्टर के टेलीफोन नंबर के लिए एक कॉलम सम्मिलित होगा। फ़ोन नंबर रोगी के अतिरिक्त डॉक्टर पर निर्भर होता है, इसलिए इसे डॉक्टरों की तालिका में संग्रहीत करना उत्तम होगा। इस तरह के डिज़ाइन का ऋणात्मक परिणाम यह है कि यदि किसी डॉक्टर के पास अनेक मरीज़ हैं तब उनका नंबर डेटाबेस में डुप्लिकेट हो जाएगा, इस प्रकार इनपुट त्रुटि की संभावना बढ़ जाएगी और उस नंबर को अपडेट करने की निवेश और कठिन परिस्थिति दोनों बढ़ जाएंगे (तीसरे सामान्य की तुलना में) फॉर्म-अनुपालक डेटा मॉडल जो डॉक्टर के नंबर को केवल एक बार डॉक्टर टेबल पर संग्रहीत करता है)।
कॉड को पश्चात् में एहसास हुआ कि 3एनएफ ने सभी अवांछनीय डेटा विसंगतियों को समाप्त नहीं किया है और सत्र 1974 में इसे संबोधित करने के लिए एक शक्तिशाली संस्करण विकसित किया, जिसे बॉयस-कॉड सामान्य रूप के रूप में जाना जाता है।
तीसरे सामान्य रूप की परिभाषा
तीसरा सामान्य फॉर्म (3एनएफ) एक डेटाबेस सामान्यीकरण डेटाबेस सामान्यीकरण में उपयोग किया जाने वाला एक सामान्य फॉर्म है। 3एनएफ को मूल रूप से सत्र 1971 में ई. एफ. कॉड द्वारा परिभाषित किया गया था।[2] कॉड की परिभाषा बताती है कि एक तालिका 3एनएफ में तभी होती है जब निम्नलिखित दोनों स्थितियाँ पूरी होती हैं:
- रिलेशन (डेटाबेस) आर (तालिका) दूसरे सामान्य रूप (2एनएफ) में है।
- R का कोई भी गैर-प्रमुख गुण प्राथमिक कुंजी पर सकर्मक रूप से निर्भर नहीं है।
R की एक गैर-प्रमुख विशेषता एक ऐसी विशेषता है जो R की किसी भी उम्मीदवार कुंजी से संबंधित नहीं है।[3] एक सकर्मक निर्भरता एक कार्यात्मक निर्भरता है जिसमें X → Z (X, Z को निर्धारित करता है) अप्रत्यक्ष रूप से, X → Y और Y → Z के आधार पर (जहां ऐसा नहीं है कि Y → X)।[4]
एक 3एनएफ परिभाषा जो कॉड के समतुल्य है, किन्तु भिन्न ढंग से व्यक्त की गई है, सत्र 1982 में कार्लो ज़ानिओलो द्वारा दी गई थी। यह परिभाषा बताती है कि एक तालिका 3एनएफ में है यदि और केवल यदि इसकी प्रत्येक कार्यात्मक निर्भरता X → Y के लिए, निम्न में से कम से कम एक शर्तें रखती हैं:[5][6]
- X में Y सम्मिलित है (अर्थात, Y, X का एक उपसमुच्चय है, जिसका अर्थ है
- X एक सुपरकी है,
- Y\X का प्रत्येक तत्व, Y और X के मध्य पूरक (समूह सिद्धांत) सापेक्ष पूरक, एक प्रमुख विशेषता है (अर्थात, Y\X में प्रत्येक विशेषता कुछ उम्मीदवार कुंजी में निहित है)।
ज़ानिओलो की परिभाषा को और अधिक सरलता से दोहराने के लिए, संबंध 3एनएफ में है यदि और केवल यदि प्रत्येक गैर-तुच्छ कार्यात्मक निर्भरता X → Y के लिए, X एक सुपरकी है या Y एक प्रमुख विशेषता है। ज़ैनियोलो की परिभाषा 3एनएफ और अधिक कठोर बॉयस-कॉड सामान्य रूप (BCएनएफ) के मध्य अंतर की स्पष्ट समझ देती है। बीसीएनएफ बस तीसरे विकल्प को हटा देता है ("Y \ X का प्रत्येक तत्व, Y और X के मध्य समूह अंतर, एक प्रमुख विशेषता है।")।
"कुंजी के अतिरिक्त कुछ नहीं"
कॉड की 3एनएफ की परिभाषा का एक अनुमान, नियम की अदालत में सच्चा प्रमाण देने के लिए पारंपरिक शपथयुक्त गवाही के समानांतर, बिल केंट द्वारा दिया गया था: "[प्रत्येक] गैर-कुंजी [विशेषता] को कुंजी, संपूर्ण कुंजी के बारे में एक तथ्य प्रदान करना होगा, और कुंजी के अतिरिक्त कुछ नहीं"।[7] एक सामान्य भिन्नता इस परिभाषा को "तो मेरी मदद करो कॉड" शपथ के साथ पूरक करती है।[8]
"कुंजी" के अस्तित्व की आवश्यकता यह सुनिश्चित करती है कि तालिका 1एनएफ में है; गैर-कुंजी विशेषताओं को "संपूर्ण कुंजी" पर निर्भर करने की आवश्यकता 2एनएफ सुनिश्चित करती है; इसके अतिरिक्त यह आवश्यक है कि गैर-कुंजी विशेषताएँ "कुंजी के अतिरिक्त कुछ भी नहीं" पर निर्भर हों, 3एनएफ सुनिश्चित करता है। चूँकि यह वाक्यांश एक उपयोगी स्मरणीय है, तथ्य यह है कि यह केवल एक ही कुंजी का उल्लेख करता है इसका कारण है कि यह दूसरे और तीसरे सामान्य रूपों को संतुष्ट करने के लिए कुछ आवश्यक किन्तु पर्याप्त शर्तों को परिभाषित नहीं करता है। 2एनएफ और 3एनएफ दोनों ही तालिका की सभी उम्मीदवार कुंजियों से समान रूप से संबंधित हैं, न कि केवल किसी एक कुंजी से।
क्रिस डेट केंट के सारांश को 3एनएफ "एक सहज रूप से आकर्षक लक्षण वर्णन" के रूप में संदर्भित करते हैं और ध्यान देते हैं कि थोड़े से अनुकूलन के साथ यह थोड़े शक्तिशाली बॉयस-कॉड सामान्य रूप की परिभाषा के रूप में काम कर सकता है: "प्रत्येक विशेषता को कुंजी, संपूर्ण कुंजी के बारे में एक तथ्य का प्रतिनिधित्व करना चाहिए , संपूर्ण कुंजी और कुंजी के अतिरिक्त कुछ भी नहीं।"[9] परिभाषा का 3एनएफ संस्करण डेट के बीसीएनएफ संस्करण से अशक्त है, क्योंकि पूर्व का संबंध केवल यह सुनिश्चित करने से है कि गैर-कुंजी विशेषताएँ कुंजियों पर निर्भर हैं। प्राइम विशेषताएँ (जो कुंजियाँ या कुंजियों के भाग हैं) कार्यात्मक रूप से बिल्कुल भी निर्भर नहीं होनी चाहिए; उनमें से प्रत्येक कुंजी का एक भाग या पूरी कुंजी प्रदान करने के अर्थ में कुंजी के बारे में एक तथ्य का प्रतिनिधित्व करता है। (यह नियम केवल कार्यात्मक रूप से निर्भर विशेषताओं पर प्रयुक्त होता है, क्योंकि इसे सभी विशेषताओं पर प्रयुक्त करने से समग्र उम्मीदवार कुंजियाँ प्रतिबंधित हो जाएंगी, क्योंकि ऐसी किसी भी कुंजी का प्रत्येक भाग "संपूर्ण कुंजी" खंड का उल्लंघन करेगा।)
3एनएफ की आवश्यकताओं को पूरा करने में विफल रहने वाली तालिका का एक उदाहरण है:
टूर्नामेंट | वर्ष | विजेता | विजेता की जन्मतिथि |
---|---|---|---|
इंडियाना आमंत्रण | 1998 | अल फ्रेड्रिकसन | 21 जुलाई 1975 |
क्लीवलैंड ओपन | 1999 | बॉब अल्बर्टसन | 28 सितंबर 1968 |
डेस मोइनेस मास्टर्स | 1999 | अल फ्रेड्रिकसन | 21 जुलाई 1975 |
इंडियाना आमंत्रण | 1999 | चिप मास्टर्सन | 14 मार्च 1977 |
क्योंकि तालिका में प्रत्येक पंक्ति को हमें यह बताने की आवश्यकता है कि किसी विशेष वर्ष में एक विशेष टूर्नामेंट किसने जीता, समग्र कुंजी {टूर्नामेंट, वर्ष} एक पंक्ति को विशिष्ट रूप से पहचानने की गारंटी देने वाली विशेषताओं का एक न्यूनतम समूह है। अर्थात्, {टूर्नामेंट, वर्ष} तालिका के लिए एक उम्मीदवार कुंजी है।
3एनएफ का उल्लंघन इसलिए होता है क्योंकि गैर-प्रमुख विशेषता (विजेता की जन्म तिथि) गैर-प्रमुख विशेषता विजेता के माध्यम से उम्मीदवार कुंजी {टूर्नामेंट, वर्ष} पर निर्भर होती है। तथ्य यह है कि विजेता की जन्मतिथि कार्यात्मक रूप से विजेता पर निर्भर है, जिससे तालिका तार्किक विसंगतियों के प्रति संवेदनशील हो जाती है, क्योंकि एक ही व्यक्ति को भिन्न-भिन्न रिकॉर्ड पर भिन्न-भिन्न जन्म तिथियों के साथ दिखाए जाने से कोई नहीं रोक सकता है।
3एनएफ का उल्लंघन किए बिना समान तथ्यों को व्यक्त करने के लिए, तालिका को दो भागों में विभाजित करना आवश्यक है:
|
|
इन तालिकाओं में अद्यतन विसंगतियाँ नहीं हो सकतीं, क्योंकि पहले के विपरीत, विजेता वर्तमान दूसरी तालिका में एक उम्मीदवार कुंजी है, इस प्रकार प्रत्येक विजेता के लिए जन्म तिथि के लिए केवल एक मान की अनुमति होती है।
गणना
एक संबंध को सदैव तीसरे सामान्य रूप में विघटित किया जा सकता है, अर्थात संबंध आर को संबंधपरक प्रक्षेपण R1 में फिर से लिखा जाता है, ..., Rn जिसका प्राकृतिक जुड़ाव मूल संबंध के सामान्तर है। इसके अतिरिक्त, यह अपघटन किसी भी कार्यात्मक निर्भरता को नहीं खोता है, इस अर्थ में कि आर पर प्रत्येक कार्यात्मक निर्भरता उन कार्यात्मक निर्भरताओं से प्राप्त की जा सकती है जो अनुमानों पर आधारित हैं। R1, ..., Rn. इससे भी अधिक, इस तरह के अपघटन की गणना बहुपद समय में की जा सकती है।[10]
किसी संबंध को 2एनएफ से 3एनएफ में विघटित करने के लिए, तालिका को विहित कवर कार्यात्मक निर्भरता में तोड़ें, फिर मूल संबंध की प्रत्येक उम्मीदवार कुंजी के लिए एक संबंध बनाएं जो पहले से ही अपघटन में किसी संबंध का सबसमूह नहीं था।[11]
ज़ानिओलो शर्तों की व्युत्पत्ति
सत्र 1982 में कार्लो ज़ानिओलो द्वारा प्रस्तुत 3एनएफ की परिभाषा, और ऊपर दी गई, निम्नलिखित तरीके से सिद्ध की गई है: मान लीजिए कि X → A एक गैर-तुच्छ गैर-तुच्छ FD है (अर्थात् जहाँ . यह भी मान लें कि Y, R की कुंजी है। फिर Y → X।
3एनएफ से परे सामान्यीकरण
अधिकांश 3एनएफ तालिकाएँ अद्यतन, सम्मिलन और विलोपन विसंगतियों से मुक्त हैं। कुछ प्रकार की 3एनएफ तालिकाएँ, जो व्यवहार में संभवतः ही कभी पाई जाती हैं, ऐसी विसंगतियों से प्रभावित होती हैं; यह ऐसी तालिकाएँ हैं जो या तब बॉयस-कॉड सामान्य फॉर्म (बीसीएनएफ) से कम हैं या, यदि वह बीसीएनएफ से मिलती हैं, तब उच्च सामान्य फॉर्म 4एनएफ या 5एनएफ से कम हैं।
रिपोर्टिंग परिवेश में उपयोग के लिए विचार
जबकि 3एनएफ मशीन प्रसंस्करण के लिए आदर्श था, डेटा मॉडल की खंडित प्रकृति मानव उपयोगकर्ता द्वारा उपभोग करने में कठिनाई हो सकती है। क्वेरी, रिपोर्टिंग और डैशबोर्ड के माध्यम से विश्लेषण को अधिकांशतः एक भिन्न प्रकार के डेटा मॉडल द्वारा सुविधा प्रदान की जाती थी जो प्रवृत्ति रेखाओं, अवधि-दर-तारीख गणना (माह-दर-तारीख, तिमाही-दर-तारीख, वर्ष-) जैसे पूर्व-गणना विश्लेषण प्रदान करता था। आज तक), संचयी गणना, मूलभूतआँकड़े (औसत, मानक विचलन, चलती औसत) और पिछली अवधि की तुलना (वर्ष पहले, महीने पहले, सप्ताह पहले) जैसे। आयामी मॉडलिंग और आयामी मॉडलिंग से परे, Hadoop और डेटा विज्ञान के माध्यम से तारों का चपटा होना।[12][13]
यह भी देखें
- विशेषता-मूल्य प्रणाली
संदर्भ
- ↑ Codd, E. F. "Further Normalization of the Data Base Relational Model", p. 34.
- ↑ Codd, E. F. "Further Normalization of the Data Base Relational Model". (Presented at Courant Computer Science Symposia Series 6, "Data Base Systems", New York City, May 24–25, 1971.) IBM Research Report RJ909 (August 31, 1971). Republished in Randall J. Rustin (ed.), Data Base Systems: Courant Computer Science Symposia Series 6. Prentice-Hall, 1972.
- ↑ Codd, p. 43.
- ↑ Codd, p. 45–46.
- ↑ Zaniolo, Carlo. "A New Normal Form for the Design of Relational Database Schemata". ACM Transactions on Database Systems 7(3), September 1982.
- ↑ Abraham Silberschatz, Henry F. Korth, S. Sudarshan, Database System Concepts (5th edition), p. 276–277.
- ↑ Kent, William. "A Simple Guide to Five Normal Forms in Relational Database Theory", Communications of the ACM 26 (2), Feb. 1983, pp. 120–125.
- ↑ The author of a 1989 book on database management credits one of his students with coming up with the "so help me Codd" addendum. Diehr, George. Database Management (Scott, Foresman, 1989), p. 331.
- ↑ Date, C. J. An Introduction to Database Systems (7th ed.) (Addison Wesley, 2000), p. 379.
- ↑ Serge Abiteboul, Richard B. Hull, Victor Vianu: Foundations of Databases. Addison-Wesley, 1995. http://webdam.inria.fr/Alice/ ISBN 0201537710. Theorem 11.2.14.
- ↑ Hammo, Bassam. "Decomposition, 3NF, BCNF" (PDF). Archived (PDF) from the original on 2023-03-15.
- ↑ "Comparisons between Data Warehouse modelling techniques – Roelant Vos". roelantvos.com. Retrieved 5 March 2018.
- ↑ "Hadoop Data Modeling Lessons | EMC". InFocus Blog | Dell EMC Services. 23 September 2014. Retrieved 5 March 2018.
अग्रिम पठन
- दिनांक, सी.जे. (1999), .html डेटाबेस सिस्टम का एक परिचय (8वां संस्करण)। एडिसन-वेस्ले लॉन्गमैन।ISBN 0-321-19784-4.
- केंट, डब्ल्यू. (1983) ए सिंपल गाइड टू फाइव नॉर्मल फॉर्म्स इन रिलेशनल डेटाबेस थ्योरी, कम्युनिकेशंस ऑफ द एसीएम, वॉल्यूम। 26, पृ. 120-126
बाहरी संबंध
- लिट की युक्तियाँ: सामान्यीकरण
- डेटाबेस सामान्यीकरण मूल बातें माइक चैपल द्वारा (About.com)
- डेटाबेस सामान्यीकरण का एक परिचय माइक हिलियर द्वारा.
- पहले 3 सामान्य रूपों पर एक ट्यूटोरियल फ्रेड कॉल्सन द्वारा
- डेटाबेस सामान्यीकरण मूल बातें का विवरण माइक्रोसॉफ्ट द्वारा
- सरल उदाहरणों के साथ तीसरा सामान्य रूप एक्स्प्लोरडेटाबेस द्वारा