आपके डेटाबेस में गणना करने के बारे में विचार के दो स्कूल हैं:वे लोग जो सोचते हैं कि यह बहुत अच्छा है, और जो लोग गलत हैं। यह कहना नहीं है कि कार्यों की दुनिया, संग्रहीत कार्यविधियाँ, उत्पन्न या गणना किए गए कॉलम, और ट्रिगर सभी धूप और गुलाब हैं! ये उपकरण फुलप्रूफ से बहुत दूर हैं, और गलत तरीके से लागू किए गए कार्यान्वयन खराब प्रदर्शन कर सकते हैं, उनके अनुरक्षकों को आघात पहुंचा सकते हैं, और बहुत कुछ, जो विवाद के अस्तित्व को समझाने की दिशा में जाता है।
लेकिन डेटाबेस, परिभाषा के अनुसार, सूचना को संसाधित करने और हेरफेर करने में बहुत अच्छे हैं, और उनमें से अधिकांश अपने उपयोगकर्ताओं के लिए समान नियंत्रण और शक्ति उपलब्ध कराते हैं (SQLite और MS Access कुछ हद तक)। बाहरी डेटा प्रोसेसिंग प्रोग्राम बैकफुट पर शुरू होते हैं, इससे पहले कि वे कुछ भी कर सकें, डेटाबेस से जानकारी को अक्सर एक नेटवर्क से बाहर निकालना पड़ता है। और जहां डेटाबेस प्रोग्राम मूल सेट संचालन, अनुक्रमण, अस्थायी तालिकाओं और डेटाबेस विकास की आधी सदी के अन्य फलों का पूरा लाभ उठा सकते हैं, किसी भी जटिलता के बाहरी कार्यक्रमों में पहिया-पुनर्निर्माण के कुछ स्तर शामिल होते हैं। तो क्यों न डेटाबेस को काम पर रखा जाए?
यहां बताया गया है कि आप नहीं क्यों कर सकते हैं अपने डेटाबेस को प्रोग्राम करना चाहते हैं!
डेटाबेस कार्यक्षमता में अदृश्य होने की प्रवृत्ति होती है - विशेष रूप से ट्रिगर। यह कमजोरी लगभग टीमों के आकार और/या डेटाबेस के साथ इंटरैक्ट करने वाले अनुप्रयोगों के साथ मापी जाती है, क्योंकि कम लोग इन-डेटाबेस प्रोग्रामिंग को याद रखते हैं या जानते हैं। दस्तावेज़ीकरण मदद करता है, लेकिन इतना ही।
एसक्यूएल एक भाषा उद्देश्य है जिसे डेटा सेट में हेरफेर करने के लिए बनाया गया है। यह उन चीजों में विशेष रूप से अच्छा नहीं है जो डेटा सेट में हेरफेर नहीं कर रहे हैं, और यह उतना ही कम अच्छा है जितना कि अन्य चीजें अधिक जटिल होती हैं।
RDBMS क्षमताएं और SQL बोलियां भिन्न हैं। सरल जेनरेट किए गए कॉलम व्यापक रूप से समर्थित हैं, लेकिन अधिक जटिल डेटाबेस लॉजिक को अन्य स्टोर में पोर्ट करने में कम से कम समय और प्रयास लगता है।
डेटाबेस स्कीमा अपग्रेड आमतौर पर एप्लिकेशन अपग्रेड की तुलना में अधिक कठिन होते हैं। तेजी से बदलते तर्क को कहीं और बनाए रखा जाता है, हालांकि चीजें स्थिर होने के बाद इसे फिर से देखा जा सकता है।
डेटाबेस प्रोग्राम को प्रबंधित करना उतना आसान नहीं है जितना कोई उम्मीद कर सकता है। कई स्कीमा माइग्रेशन टूल संगठन के लिए बहुत कम या कुछ भी नहीं करते हैं, जिसके कारण व्यापक अंतर और कोड समीक्षाएं होती हैं (स्किच के निर्भरता ग्राफ़ और अलग-अलग वस्तुओं का पुनर्विक्रय इसे एक उल्लेखनीय अपवाद बनाता है, और माइग्रा समस्या को पूरी तरह से दूर करने का प्रयास करता है)। परीक्षण में, pgTAP और utPLSQL जैसे फ्रेमवर्क ब्लैक-बॉक्स एकीकरण परीक्षणों में सुधार करते हैं, लेकिन एक अतिरिक्त समर्थन और रखरखाव प्रतिबद्धता का भी प्रतिनिधित्व करते हैं।
एक स्थापित बाहरी कोडबेस के साथ, कोई भी संरचनात्मक परिवर्तन प्रयास-गहन और जोखिम भरा दोनों होता है।
दूसरी ओर, उन कार्यों के लिए जिनके लिए यह उपयुक्त है, SQL गति, संक्षिप्तीकरण, स्थायित्व और स्वचालित वर्कफ़्लोज़ को "कैननाइज़" करने का अवसर प्रदान करता है। डेटा मॉडलिंग, कीड़ों की तरह कार्डबोर्ड पर संस्थाओं को पिन करने से कहीं अधिक है, और गति में डेटा और आराम से डेटा के बीच का अंतर एक मुश्किल है। आराम वास्तव में बेहतर ग्रेड में धीमी गति है; जानकारी हमेशा यहाँ से वहाँ प्रवाहित होती रहती है, और डेटाबेस प्रोग्रामयोग्यता उन प्रवाहों को प्रबंधित करने और निर्देशित करने के लिए एक शक्तिशाली उपकरण है।
कुछ डेटाबेस इंजन उन अन्य प्रोग्रामिंग भाषाओं को भी समायोजित करके SQL और अन्य प्रोग्रामिंग भाषाओं के बीच अंतर को विभाजित करते हैं। SQL सर्वर किसी भी .NET Framework भाषा में लिखे गए कार्यों का समर्थन करता है; Oracle में जावा संग्रहीत कार्यविधियाँ हैं; PostgreSQL सी के साथ एक्सटेंशन की अनुमति देता है और पाइथन, पर्ल और टीसीएल में उपयोगकर्ता-प्रोग्राम करने योग्य है, जिसमें प्लगइन्स शेल स्क्रिप्ट, आर, जावास्क्रिप्ट और बहुत कुछ जोड़ते हैं। सामान्य संदिग्धों को देखते हुए, यह SQL है या MySQL और MariaDB के लिए कुछ भी नहीं है, MS Access केवल केवल है VBA में प्रोग्राम करने योग्य, और SQLite उपयोगकर्ता-प्रोग्राम करने योग्य बिल्कुल नहीं है।
गैर-एसक्यूएल भाषाओं का उपयोग करना एक विकल्प है यदि SQL किसी कार्य के लिए अपर्याप्त है या यदि आप अन्य कोड का पुन:उपयोग करना चाहते हैं, लेकिन यह आपको अन्य मुद्दों के आसपास नहीं ले जाएगा जो डेटाबेस प्रोग्रामिंग को एक बहु-धार वाली तलवार बनाते हैं। यदि कुछ भी, इनका सहारा लेना परिनियोजन और अंतःक्रियाशीलता को और अधिक जटिल बनाता है। कैविएट स्क्रिप्टर:लेखक को सावधान रहने दें।