denormalize मत करो।
सरल और ध्वनि डिजाइन सिद्धांतों के अनुसार अपनी तालिकाओं को डिज़ाइन करें जो आपके शेष सिस्टम को कार्यान्वित करना आसान बना देगा। डेटाबेस बनाने, पॉप्युलेट करने, उपयोग करने और प्रशासित करने में आसान है। आसान और तेजी से चलाने के लिए प्रश्न और अद्यतन। स्थिति के लिए कॉल करते समय टेबल डिज़ाइन को संशोधित और विस्तारित करना आसान है, और प्रकाश और क्षणिक कारणों से ऐसा करने के लिए अनावश्यक है। डिजाइन सिद्धांतों का
एक सेट सामान्य है। सामान्यीकरण उन तालिकाओं की ओर जाता है जो अद्यतन करने के लिए आसान और तेज़ होते हैं (आवेषण और हटाना सहित)। सामान्यीकरण अद्यतन विसंगतियों को रोकता है, और डेटाबेस की संभावना को रोकता है जो स्वयं विरोधाभास करता है। यह उन्हें असंभव बनाकर पूरी तरह से कीड़े को रोकता है। यह उन्हें अनावश्यक बनाकर अद्यतन की कई बाधाओं को भी रोकता है। यह अच्छा है।
डिजाइन सिद्धांतों के अन्य सेट हैं। वे टेबल डिज़ाइन का नेतृत्व करते हैं जो पूरी तरह सामान्यीकृत से कम होते हैं। लेकिन यह "denormalization" नहीं है। यह सिर्फ एक अलग डिजाइन है, सामान्यीकरण के साथ कुछ हद तक असंगत है।
डिज़ाइन सिद्धांतों का एक सेट जो सामान्यीकरण से मूल रूप से अलग डिज़ाइन की ओर जाता है वह स्टार स्कीमा डिज़ाइन है। प्रश्नों के लिए स्टार स्कीमा बहुत तेज है। यहां तक कि बड़े पैमाने पर जुड़ने और एकत्रीकरण उचित समय में किया जा सकता है, एक अच्छा डीबीएमएस, अच्छा भौतिक डिजाइन, और काम पूरा करने के लिए पर्याप्त हार्डवेयर दिया जा सकता है। जैसा कि आप उम्मीद कर सकते हैं, एक स्टार स्कीमा अद्यतन विसंगतियों को पीड़ित है। जब आप डेटाबेस को अद्यतित रखते हैं तो आपको इन विसंगतियों के आसपास प्रोग्राम करना होगा। आपको आम तौर पर कड़े नियंत्रित और ध्यान से निर्मित ईटीएल प्रक्रिया की आवश्यकता होगी जो स्टार स्कीमा को अन्य (शायद सामान्यीकृत) डेटा स्रोतों से अपडेट करेगी।
का उपयोग करते हुए एक स्टार स्कीमा में संग्रहीत डेटा नाटकीय रूप से आसान है। यह इतना आसान है कि किसी प्रकार का ओलाप और रिपोर्टिंग इंजन का उपयोग करके, आप किसी भी कोड को लिखने के बिना आवश्यक सभी जानकारी प्राप्त कर सकते हैं, और प्रदर्शन को बलि किए बिना।
यह एक अच्छा सामान्यीकृत स्कीमा डिजाइन करने के लिए अच्छा है और कुछ हद तक गहरी डेटा विश्लेषण लेता है। डेटा विश्लेषण में त्रुटियों और चूक के परिणामस्वरूप अनदेखा कार्यात्मक निर्भरताएं हो सकती हैं। इन अनदेखा एफडी के परिणामस्वरूप सामान्यकरण से अवांछित प्रस्थान होंगे।
यह एक अच्छा सितारा स्कीमा बनाने और बनाने के लिए अच्छा और कुछ गहरा डेटा विश्लेषण भी लेता है। डेटा विश्लेषण में त्रुटियों और omissions के परिणामस्वरूप आयाम और granularity में दुर्भाग्यपूर्ण विकल्प हो सकता है। यह ईटीएल को उभरती जरूरतों के लिए स्टार अपर्याप्त बनाने की क्षमता को ले जाने के लिए लगभग असंभव बना देगा, और/या जानकारी को बनाएगा।
अच्छा और कुछ हद तक गहरी डेटा विश्लेषण विश्लेषण पक्षाघात के लिए एक बहाना नहीं होना चाहिए। विश्लेषण को थोड़े समय में सही और उचित रूप से पूरा होना चाहिए। छोटी परियोजनाओं के लिए छोटा। डिजाइन और कार्यान्वयन डेटा विश्लेषण और आवश्यकताओं के लिए कुछ देर के अतिरिक्त और सुधारों में जीवित रहने में सक्षम होना चाहिए, लेकिन आवश्यकताओं के संशोधन की स्थिर धार नहीं है।
यह प्रतिक्रिया आपके मूल प्रश्न पर फैली हुई है, लेकिन मुझे लगता है कि यह डेटाबेस डिजाइनर के लिए प्रासंगिक है।
मैंने एसक्यूएल को स्वरूपित करने की कोशिश की लेकिन स्टैक ओवरफ्लो संपादक इसे एक पंक्ति पर रखता रहता है। – Element
उन पंक्तियों को चार रिक्त स्थान के साथ इंडेंट करें जो इसे "कोड ब्लॉक" के रूप में दिखाई देते हैं। –
आपको बेहतर डीबीए की आवश्यकता है, डेटाबेस में शामिल होने की उम्मीद है और उन्हें उपयोग करने के लिए अनुकूलित किया गया है। यदि आपके डीबीए ने इंडेक्स इंडेक्स नहीं किया है (एफकेएस इंडेक्स की आवश्यकता है) या डेटा बहुत बड़ा है तो वे केवल बहुत महंगे हैं। यहां तक कि, मैं उन डेटाबेस वाले लोगों को जानता हूं जो आकार में डरावने हैं और वे अभी भी जुड़ने का उपयोग करते हैं। – HLGEM