क्या एसक्यूएल का परीक्षण / सत्यापन करने के लिए रिलेशनल अलजेब्रा / कैलकुलस प्रूफ का उपयोग किया जा सकता है?


9

SQL कथन, फ़ंक्शंस, और संग्रहीत कार्यविधियों की शुद्धता का परीक्षण / सत्यापन करने के लिए साक्ष्य के रूप में संबंधपरक बीजगणित और / या संबंधपरक कलन का उपयोग करना संभव है या संभव है?

मुझे ऐसा लगता है कि यह कम से कम संभव होना चाहिए, लेकिन मुझे नहीं पता कि क्या कोई ऐसा विवरण है जो मुझे याद आ रहा है जो सबूत और कोड के बीच 1: 1 मैपिंग को गलत बनाता है।

क्या आप में से किसी ने इस तरह से एक विधि की कोशिश की है? काम किया? आपके अनुभव क्या थे?


2
कृपया मेरे बाद दोहराएं: एसक्यूएल संबंधपरक नहीं है।
हिरण हंटर

जवाबों:


4

संबंधपरक बीजगणित ऑपरेटरों और SQL कथनों के बीच कुछ ज्ञात मानचित्रण नियम हैं। उदाहरण के लिए, सिग्मा ऑपरेटर एक सेलेक्ट स्टेटमेंट में मैप करता है, ज्वाइन ऑपरेटर्स के लिए वन-टू-वन मैपिंग है, कॉलम के सबसेट का चयन करने के लिए डेल्टा मैप्स इत्यादि।

क्या एसक्यूएल बयानों की शुद्धता को सत्यापित करने के लिए संबंधपरक बीजगणित का उपयोग करना संभव है?

हाँ यह संभव है। बेशक आपको सभी रिश्तों, विदेशी कुंजियों, आदि के साथ डेटाबेस का एक स्पष्ट स्कीमा रखना होगा। कुछ मामलों में यह एसक्यूएल बयानों की तुलना में संबंधपरक बीजगणित कथनों में हेरफेर करना और भी आसान है (बयानों को संशोधित और सरल बनाने के लिए परिवर्तनकारी नियम सिद्ध होते हैं ) ।

लेकिन दूसरी ओर, मुझे नहीं लगता कि संबंधपरक बीजगणित का उपयोग करके बयानों को सत्यापित करना SQL कथनों के परीक्षण की तुलना में बहुत आसान है, खासकर जब आपके पास एक डेटाबेस तैयार होता है जहां आप प्रश्नों को निष्पादित कर सकते हैं और परिणाम देख सकते हैं।


1
बस यह कहना चाहता था: रिलेशनल ऑलजेब्रा टुपल्स के सेट का उपयोग करता है और इसलिए डुप्लिकेट को हैंडल नहीं कर सकता क्योंकि रिलेटिव ऑपरेटर्स "सिलेक्ट डिस्टिंक्ट" का मैप करते हैं। सिग्मा स्वयं WHERE-clause, pi to SELECT इत्यादि से मेल खाती है।
विरोधाभासी

शामिल होने वाले ऑपरेटर 1: 1 नहीं हैं, SQL संस्करण विशेष रूप से नल का इलाज करते हैं, और इसी तरह विधेय बूलियन नहीं हैं।
23
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.