"समय से पहले का अनुकूलन कंप्यूटर प्रोग्रामिंग में सभी बुराई (इसका अधिकांश, वैसे भी) का मूल है" - डोनाल्ड नथ
डेटाबेस बिल्कुल यही है; आपके एप्लिकेशन की डेटा परत। इसका काम आपके आवेदन के लिए दिए गए डेटा के साथ प्रदान करना है, और इसे दिए गए डेटा को संग्रहीत करना है। आपका एप्लिकेशन कोड डालने का स्थान है जो वास्तव में डेटा के साथ काम करता है; इसे प्रदर्शित करना, इसे मान्य करना, आदि।
जबकि शीर्षक पंक्ति में भावना सराहनीय है, और एक बात करने के लिए सटीक है (छानने के बुनियादी तथ्य, पेश, समूहीकरण आदि चाहिए मामलों की भारी संख्या में डीबी लिए छोड़ दिया जाना), में हो सकता है की "अच्छी तरह से" एक परिभाषा गण। SQL सर्वर निष्पादन के उच्च स्तर के साथ कार्य कर सकता है, लेकिन वे कार्य जो आप प्रदर्शित कर सकते हैंSQL सर्वर एक अलग-थलग तरीके से सही ढंग से करता है, दोहराने योग्य तरीके बहुत कम हैं। SQL प्रबंधन स्टूडियो एक महान डेटाबेस आईडीई है (विशेष रूप से अन्य विकल्प जो मैंने TOAD की तरह काम किया है) को देखते हुए, लेकिन इसकी सीमाएँ हैं, उनमें से सबसे पहले यह है कि आप इसे करने के लिए इसका उपयोग करते हैं (या किसी भी प्रक्रियात्मक कोड को आप निष्पादित करते हैं) DB नीचे) एक "साइड इफ़ेक्ट" (आपकी प्रक्रिया की मेमोरी स्पेस के डोमेन के बाहर स्थित अवस्था में परिवर्तन) की परिभाषा के द्वारा है। इसके अलावा, SQL सर्वर के भीतर प्रक्रियात्मक कोड केवल अब है, नवीनतम IDEs और टूल के साथ, जिस तरह से प्रबंधित कोड को कवरेज मैट्रिक्स और पथ विश्लेषण का उपयोग करके मापा जा सकता है (ताकि आप यह प्रदर्शित कर सकें कि यह विशेष रूप से तब होता है जब परीक्षण X द्वारा बयान का सामना किया जाता है। , Y, और Z, और परीक्षण X को स्थिति को सत्य बनाने और उस आधे को निष्पादित करने के लिए डिज़ाइन किया गया है जबकि Y और Z "और" निष्पादित करते हैं । यही कारण है कि बदले में, आपके पास एक ऐसा परीक्षण होता है जो डेटाबेस को एक विशेष प्रारंभिक स्थिति के साथ सेट कर सकता है, कुछ प्रक्रिया के माध्यम से डेटाबेस प्रक्रियात्मक कोड को निष्पादित कर सकता है, और अपेक्षित परिणामों को पूरा कर सकता है।
यह सब बहुत अधिक कठिन है और अधिकांश डेटा एक्सेस परतों द्वारा प्रदान किए गए समाधान से शामिल है; डेटा लेयर मानें (और, उस बात के लिए, DAL) को पता है कि सही इनपुट दिए जाने पर अपना काम कैसे करना है, और फिर परीक्षण करें कि आपका कोड सही इनपुट प्रदान करता है। SPs जैसे प्रक्रियात्मक कोड को रखने और DB से बाहर ट्रिगर करने के बजाय और आवेदन कोड में उन प्रकार की चीजों को करने से, आवेदन कोड व्यायाम करने के लिए बहुत आसान है।