यहाँ वह जगह है जहाँ मन की बैठक, यानी डेवलपर्स (DVs) और DBA के दिमाग अनिवार्य रूप से होने चाहिए। बिजनेस लॉजिक (बीएल) के साथ काम करना और इस तरह के डेटाबेस में संग्रहीत करने से एक प्रभाव हो सकता है जो इसके कार्यान्वयन को महिमा या भयावह बना सकता है।
RDBMS के कुछ उत्पादों के लिए, बिजनेस लॉजिक और ऑब्जेक्ट इंफ्रास्ट्रक्चर के लिए बेहतर लाइब्रेरी / टूल / API मौजूद हैं, जो कोई व्यक्ति अपने अनुप्रयोगों में जल्दी सीख और नियोजित कर सकता है। अन्य RDBMS के लिए, कोई पुस्तकालय / उपकरण / एपीआई मौजूद नहीं है।
अतीत में, क्लाइंट सर्वर एप्लिकेशन ने बीएल में संग्रहीत कार्यविधियों (एसपी) के माध्यम से पुल बनाया था। ओरेकल और एसक्यूएल सर्वर जैसे उत्पादों के लिए, यह जल्दी किया गया था। जैसे ही पोस्टग्रेसीक्यूएल और MySQL जैसे ओपन सोर्स डेटाबेस अस्तित्व में आए, उनका इस्तेमाल करने वालों को बीएल में संग्रहीत प्रक्रियाओं के साथ नई जमीन तोड़ने का खतरा था। PostgreSQL इस में बहुत जल्दी परिपक्व हो गया, क्योंकि न केवल संग्रहीत प्रक्रियाएं लागू की गईं, बल्कि ग्राहक भाषाओं को शिल्प करने की क्षमता भी आई। MySQL मूल रूप से संग्रहीत प्रक्रियाओं की दुनिया में विकसित होना बंद कर दिया है और कई प्रतिबंधों के साथ एक भाषा का एक छीन-डाउन रूप में आया है। इस प्रकार, जब यह बीएल की बात आती है, तो आप पूरी तरह से MySQL और इसकी संग्रहीत प्रक्रिया की दया पर हैं।
वास्तव में केवल एक ही प्रश्न है: RDBMS के बावजूद, BL को डेटाबेस में संपूर्ण या आंशिक रूप से रहना चाहिए?
डेवलपर के बारे में सोचो। जब किसी एप्लिकेशन में चीजें गड़बड़ा जाती हैं, तो डिबग प्रक्रिया में डेटा चेंजेस का पालन करने के लिए डेटाबेस से डेवलपर हॉप बाहर और भीतर होगा जो रुक-रुक कर सही नहीं हो सकता है। यह एक C ++ एप्लिकेशन को कोड करने और बीच में असेंबलर कोड को कॉल करने जैसा है। आपको सोर्स कोड, क्लासेस और स्ट्रक्चर्स से लेकर इंटरप्ट, रजिस्टर और ऑफसेट और बैक पर स्विच करना होगा !!! यह डिबगिंग को उसी स्तर पर ले जा रहा है।
डेवलपर्स भाषा के विन्यास (सी + + के लिए संकलक झंडे, PHP / पायथन, आदि के लिए अलग-अलग सेटिंग्स) के साथ संयोजन के रूप में बीएल को निष्पादित करने की एक उच्च गति विधि को डेटाबेस में रखने के बजाय स्मृति में बैठे व्यावसायिक वस्तुओं के माध्यम से तैयार करने में सक्षम हो सकते हैं। कुछ ने इस विचारधारा को डेटाबेस में तेजी से रन कोड के लिए लाइब्रेरी में लिखने की कोशिश की है, जहां लाइब्रेरीज़ को संग्रहीत प्रक्रियाएँ और ट्रिगर डीबग करना अच्छी तरह से डेटाबेस में एकीकृत है और प्रतीत होता है कि बेकार है।
इस प्रकार, डेवलपर को दो लैंगुगेस में स्रोत कोड और बीएल को विकसित करने, डिबग करने और बनाए रखने के लिए चुनौती दी जाती है।
अब डीबीए के बारे में सोचें। डीबीए डेटाबेस को दुबला रखना चाहता है और संग्रहीत प्रक्रियाओं के दायरे में जितना संभव हो सके। डीबीए बीएल को डेटाबेस के लिए कुछ बाहरी के रूप में देख सकता है। फिर भी, जब बीएल के लिए आवश्यक डेटा के लिए एसक्यूएल कॉल करता है, तो एसक्यूएल को दुबला और क्षुद्र होना चाहिए।
अब, मन की बैठक के लिए !!!
डेवलपर SP को कोड करता है और पुनरावृत्त तरीकों का उपयोग करता है। डीबीए एसपी को देखता है। डीबीए निर्धारित करता है कि एक एकल एसक्यूएल बयान डेवलपर द्वारा लिखे गए पुनरावृत्त तरीकों को बदल सकता है। डेवलपर देखता है कि DBA द्वारा सुझाए गए SQL कथन को अन्य BL- संबंधित कोड या SQL कॉल करने की आवश्यकता है जो SQL कथन के सामान्य निष्पादन योजनाओं का पालन नहीं करता है।
इसके प्रकाश में, कॉन्फ़िगरेशन, प्रदर्शन ट्यूनिंग, और एसपी कोडिंग डेटा पुनर्प्राप्ति के लिए बीएल की गहराई और डेटा-तीव्रता का एक कार्य बन जाता है। जितना अधिक गहराई और डेटा-तीव्रता बीएल, उतना अधिक डेवलपर्स और डीबीए डेटाबेस को दिए गए डेटा और प्रसंस्करण शक्ति की मात्रा के लिए एक ही पृष्ठ पर होना चाहिए।
निष्कर्ष
डेटा पुनर्प्राप्ति का तरीका हमेशा डेवलपर और डीबीए दोनों शिविरों में शामिल होना चाहिए। गति और दक्षता दोनों के लिए, कोडिंग विधियों और डेटा पुनर्प्राप्ति प्रतिमानों को एक साथ काम करने के लिए हमेशा रियायतें दी जानी चाहिए। यदि स्रोत कोड को संभालने के लिए डेटा तैयार करने से पहले कोड डेटा प्राप्त करने से केवल एक बार किया जाता है, तो डीबीए को दुबला और मतलब SQL के उपयोग को निर्देशित करना चाहिए। यदि बीएल कुछ ऐसा है जो डीबीए के अनुरूप नहीं है, तो बागडोर फिर डेवलपर के हाथों में है। यही कारण है कि डीबीए को स्वयं / खुद को और परियोजना टीम का हिस्सा देखना चाहिए न कि खुद को / खुद को एक द्वीप।