"रिपॉजिटरी पैटर्न" डेटाबेस डिज़ाइन के लिए आपको कौन सी सैद्धांतिक नींव मिली है? मैं कोई नहीं अनुमान लगा रहा हूँ। यह एक फर्जी आधार पर आराम देने वाली जटिलता की एक परत है: "दृढ़ता की परत" जो आप से अलग होने की आवश्यकता है। मैं जो बता सकता हूं, वह संबंधपरक डिजाइन सिद्धांतों की व्यापक प्रोग्रामिंग अज्ञानता और एप्लिकेशन के ओओ डिजाइन के एक निर्धारित केंद्रीयता के लिए पैंडर्स की भूमिका निभाता है। लेकिन यह तर्कसंगत पर अपने अस्तित्व का औचित्य नहीं है, अकेले सैद्धांतिक, आधार।
30 वर्षों में डेटाबेस डिज़ाइन में वन ट्रू पाथ नहीं बदला है: डेटा का विश्लेषण करें। कुंजी और बाधाओं और कई-से-एक रिश्तों का पता लगाएं। बॉयस-कोड्ड सामान्य रूप के अनुसार अपनी टेबल डिज़ाइन करें। डेटा एक्सेस की सुविधा के लिए विचारों और संग्रहीत प्रक्रियाओं का उपयोग करें।
हालांकि यह हो सकता है, लेकिन SQL DBMS प्रोग्रामर द्वारा प्रदान की जाने वाली किसी भी चीज़ से बेहतर अलगाव परत प्रदान करता है। यह सच है कि डेटाबेस में परिवर्तन के लिए उपयोग किए जाने वाले SQL को बदलने के लिए इसका उपयोग करना पड़ सकता है। लेकिन ध्यान दें कि एक मध्यस्थता परत है या नहीं, इसकी परवाह किए बिना सच है । जब तक एप्लिकेशन DBMS का उपयोग करने के लिए विचारों और संग्रहीत प्रक्रियाओं का उपयोग करता है, तब तक सामान्य SQL इंजीनियरिंग उपकरण इंगित करेगा जब अंतर्निहित डेटाबेस में परिवर्तन उन विचारों और संग्रहीत प्रक्रियाओं को अमान्य करते हैं।
उसमें चुनौती जरूर है। एक मध्यस्थता परत अलगाव के भ्रम और लिखने वाले कोड के प्रोग्रामर को आराम प्रदान करती है, जिसे वह जानता है कि कैसे करना है। डेटाबेस डिजाइन और SQL सीखने के लिए कुछ नया सीखने की आवश्यकता होती है। ज्यादातर लोग सोचने के बजाय मरेंगे, और कई सफल होंगे।
आपकी टीम पर कोई भी व्यक्ति इस बात पर संदेह करेगा कि आपकी 200 कक्षाओं का समर्थन करने के लिए एसक्यूएल लिखना बहुत काम है। इसमें कोई शक नहीं। लेकिन कम से कम यह उपयोगी काम है। यदि आप अपने ओओ डिज़ाइन की नकल करके एक डेटाबेस डिज़ाइन करते हैं, तो आप बहुत सारे काम करेंगे, इसमें से बहुत कुछ बेकार हो जाएगा, और डीबीएमएस आपको जो भी ऑफर करता है, उसमें से अधिकांश को हरा देगा।
उदाहरण के लिए, आप डेटाबेस में कार्य की इकाई को प्रतिबिंबित करने पर विचार करते हैं (तालिका या तालिकाओं के रूप में, मुझे लगता है)। काम की यूनिट : एक अंतर्निहित डीबीएमएस की सेवा है begin transaction
... अद्यतन डेटाबेस ... commit transaction
। मॉडल के लिए कुछ भी नहीं, SQL में डेटाबेस टेबल के लिए अपनी कक्षाओं के मानचित्रण के अलावा।
आपका प्रश्न 4 साल पहले पोस्ट किया गया था। मैं जवाब दे रहा हूं क्योंकि यह हाल ही में किसी तरह "अपडेटेड" था, यह दर्शाता है कि यह अभी भी किसी के लिए कुछ रुचि रखता है। मुझे उम्मीद है कि मेरा जवाब पाठक को एक व्यर्थ वर्कअराउंड अपनाने के बजाय समस्या से बुनियादी संबंधपरक सिद्धांत को लागू करने के लिए प्रोत्साहित करता है।