डेटाबेस डिज़ाइन के लिए एक वैचारिक आधार है।
शास्त्रीय डेटाबेस डिज़ाइन में, तीन मॉडल हैं: वैचारिक, तार्किक और भौतिक।
वैचारिक मॉडल आवश्यकताओं के विश्लेषण से उभरता है, और अंतर्निहित विषय वस्तु विकसित होती है या विषय वस्तु की समझ विकसित होती है। वैचारिक मॉडल प्राथमिक डेटा को फॉर्म और अर्थशास्त्र के रूप में पिन करता है, लेकिन तालिका संरचना के रूप में ऐसे मुद्दों से निपटता नहीं है।
तार्किक मॉडल डेटा के संबंधपरक मॉडल का उपयोग करता है। इसे वैचारिक मॉडल से लिया जा सकता है, लेकिन यह संबंधों की संरचना से भी संबंधित है। सामान्यीकरण और अन्य रचना मुद्दे यहां खेलते हैं। लॉजिकल मॉडल टेबल डिज़ाइन की अपेक्षा करता है, और एप्लिकेशन द्वारा किए गए प्रश्नों और अपडेटों की भी उम्मीद करता है।
भौतिक मॉडल तालिकाओं के रूप में संबंध लागू करता है, और अन्य सभी विशेषताओं जैसे इंडेक्स, टेबलस्पेस इत्यादि भी जोड़ता है।वास्तव में डेटाबेस बनाने के लिए आवश्यक है। यह तार्किक मॉडल से लिया गया है, लेकिन डेटा वॉल्यूम, लोड, प्रदर्शन, और डिस्क स्पेस सभी खेल में आते हैं।
यह लंबा और थकाऊ लगता है, लेकिन यह वास्तव में तेज़ है, अगर आपको पता है कि यह कैसे करना है। पूरी बात सप्ताहों के मामले में की जा सकती है, जबकि बाकी टीम अभी भी कार्यात्मक चश्मे पर बहस कर रही है। वास्तव में एक छोटी परियोजना (6 टेबल, 50 कॉलम) के लिए यह केवल पेंसिल और पेपर के साथ दिनों में किया जा सकता है। बड़ी परियोजनाओं के लिए, ऐसे उपकरण हैं जो डिज़ाइन को अधिक स्वचालित, कम त्रुटि प्रवण, और आसानी से चित्रित करते हैं।
लेकिन जब आप पाते हैं कि वैचारिक मॉडल गलत या अधूरा था, और अन्य दो मॉडल और डेटाबेस को स्वयं बदलने की आवश्यकता है तो क्या होता है? यही वह जगह है जहां Data Independence बचाव के लिए आता है। डेटा आजादी डेटाबेस डिजाइन के लिए करता है जो ऑब्जेक्ट डिज़ाइन के लिए encapsulation करता है। अर्थात्, यह सभी जगह वस्तुओं पर प्रचार करने से एक स्थान पर एक मामूली समायोजन को रोकता है। ऑब्जेक्ट केवल उस डेटा पर निर्भर होते हैं जिसका उपयोग वे करते हैं।
यदि किसी नई तालिका को स्कीमा में जोड़ा जाना है, तो संभावना है कि कोई भी एप्लिकेशन टूटा जाएगा संभावना कमजोर है। यहां तक कि यदि किसी मौजूदा तालिका को बदलना है, तो केवल पुराने कॉलम का उपयोग करने वाले प्रश्नों में कोई अंतर नहीं दिखाई देगा। यहां तक कि जब वस्तुएं परिवर्तन पर निर्भर होती हैं, तब भी आप बदली गई तालिका को एक नया नाम दे सकते हैं, और फिर पुराने नाम के साथ एक दृश्य बना सकते हैं जो इसे पुरानी तालिका की तरह दिखता है।
और भौतिक डेटा आजादी एक अच्छा डीबीएमएस में लगभग पूरी हो गई है। आप डेटा पुनर्गठित कर सकते हैं, इंडेक्स जोड़ और ड्रॉप कर सकते हैं, और आपको किसी भी एप्लिकेशन को बदलने की ज़रूरत नहीं है।
संक्षेप में, परिवर्तन प्रबंधन को वास्तव में अच्छे डीबीएमएस उत्पादों का उपयोग करके शानदार ढंग से किया जा सकता है। दुर्भाग्यवश, बहुत सारे डीबीए और प्रोग्रामर नहीं जानते कि इन डीबीएमएस सुविधाओं का पर्याप्त उपयोग कैसे किया जाए, भले ही वे वर्षों से आसपास रहे हों।
क्या होगा यदि आप इसे चारों ओर फ़्लिप करते हैं: कहें कि क्लाइंट के विनिर्देश वर्तमान में प्रति कलाकार एक कलाकार के लिए हैं, लेकिन भविष्य में उनके दो बैंड एक साथ दौरे पर जा सकते हैं, इस प्रकार एक ही शो में खेलते हैं। क्या आप अभी भी टूर्नामेंट टेबल में artist_id जोड़ते हैं, सिस्टम को 1 कलाकार प्रति टूरडेट तक सीमित करते हैं? या क्या आप आगे सोचते हैं, इसे एक हाबेट रिश्ते बनाते हैं? – Calvin