सामान्यीकरण बिल्कुल वास्तविक दुनिया में उपयोग किया जाता है ... और उम्मीद है कि आप जानते हैं कि 3NF केवल तीसरा है ... अब क्या है, 8? लेकिन 3NF एक आसान लक्ष्य होना चाहिए।
हालांकि ... मैं यह कहने के लिए उद्यम करूंगा कि ऐसा कोई उपकरण नहीं हो सकता है।
सामान्यीकरण, तकनीकी रूप से, प्रत्येक तालिका की एक विशेषता है। किसी दिए गए डेटाबेस के भीतर, विभिन्न तालिकाओं के सामान्यीकरण के विभिन्न स्तर हो सकते हैं।
प्रत्येक तालिका तथ्यों का प्रतिनिधित्व करती है ... एक निश्चित प्रकार की चीज़ (व्यक्ति, खाता, आदेश, शिपमेंट, आइटम, स्थान) के उदाहरणों के बारे में तथ्य, कभी-कभी, विदेशी कुंजियाँ, जो आपको उस चीज़ के बारे में अन्य प्रकार के तथ्यों की ओर ले जाती हैं।
सामान्यीकरण के साथ यह भी करना है कि अस्पष्ट और निरर्थक डेटा पैटर्न को रोकने के लिए टेबल के डिज़ाइन के साथ-साथ टेबल की डिज़ाइन की क्षमता को कैसे सही और कुशलतापूर्वक दर्शाया गया है।
इस प्रकार, वास्तविक तथ्यों की समझ की आवश्यकता है ... जो स्वचालित साधनों के दायरे से बाहर है।
Q: Is a table with { student, subject, instructor } in 3NF?
A: What are students, subjects and instructors?
ऐसी दुनिया में जहां सभी प्रशिक्षक सभी विषयों को पढ़ाते हैं और प्रत्येक छात्र किसी भी संयोजन को ले सकता है लेकिन प्रत्येक प्रशिक्षक के प्रत्येक विषय पर एक से अधिक पाठ्यक्रम नहीं, यह तालिका वास्तव में 3NF में हो सकती है। वास्तविक दुनिया में, इस तालिका के लिए 3NF का दावा करना बेतुका है।
यह समझने के लिए कि यह 3NF में नहीं है, इसके द्वारा प्रस्तुत तथ्यों की प्रकृति की समझ की आवश्यकता है। हमारी वास्तविकता में, यह तालिका 3NF नहीं है क्योंकि (अन्य कारणों के साथ) विषय और प्रशिक्षक उन तरीकों से एक साथ जुड़े हुए हैं जिनका छात्र के साथ कोई लेना-देना नहीं है। यदि हमारे पास ऐसे पाठ्यक्रम हैं जहां प्रशिक्षक हमारे डेटाबेस में कहीं और संग्रहीत विषयों को पढ़ाते हैं, तो हम दूसरी तालिका से एक विदेशी कुंजी के बजाय यहां दोनों मानों की नकल क्यों करेंगे, यह दर्शाता है कि छात्र को पाठ्यक्रम के लिए साइन अप किया गया था? यदि प्रशिक्षक को बदल दिया जाता है, तो हमें कई स्थानों पर कई रिकॉर्ड बदलने होंगे।
एक डेटाबेस जितना अधिक सामान्यीकृत होता है, उतना ही आंतरिक रूप से यह वास्तविक दुनिया के साथ और खुद के साथ संगत होता है, और डेटाबेस के तथ्यों के लिए अनजाने में असत्य होना जितना मुश्किल होता है। डेटाबेस डिजाइन एक कला है, लेकिन यह निश्चित रूप से एक विज्ञान भी है।
भले ही मैं जो कुछ भी लिखता हूं, उसके साथ आंखों से आंखें मिलाकर नहीं देखता, मैं क्रिस डेट की किताब, डेटाबेस डिजाइन और रिलेशनल थ्योरी: नॉर्मल फॉर्म्स और ऑल दैट जैज की सिफारिश करूंगा, जो रिलेशनल मॉडल के अंतर्निहित सिद्धांत के बारे में विस्तार से विस्तार से बताता है।