क्या संबंधपरक बीजगणित / कैलकुलस और श्रेणी सिद्धांत के बीच कोई संबंध है?


17

मैं रिलेशनल डेटाबेस को समझने के लिए कम से कम दो अलग-अलग सैद्धांतिक दृष्टिकोणों से अवगत हूं: कोडेड के रिलेशनल बीजगणित / कैलकुलस, और श्रेणी सिद्धांत।

क्या इन दोनों दृष्टिकोणों के बीच कोई संबंध है? क्या वे कुछ अर्थों में समकक्ष हैं? क्या कोई परिचयात्मक कार्य है जो यह बताता है कि ये दोनों रूपरेखाएँ संबंधपरक डेटाबेस की व्याख्या कैसे करती हैं?

पृष्ठभूमि: कुछ समय पहले मैंने डेविड स्पिवक की श्रेणी की थ्योरी वैज्ञानिकों के लिए पढ़ी थी, जो काफी समय इस बात पर चर्चा करती थी कि संबंधपरक डेटाबेस के सिद्धांत को समझने के लिए श्रेणी सिद्धांत कैसे लागू किया जा सकता है। हालांकि, संबंधपरक डेटाबेस क्या हैं या वे क्यों उपयोगी हैं, इस बारे में बहुत कम व्यक्तिगत अनुभव है, उस समय मैंने पुस्तक में पाई गई अंतर्दृष्टि की गहराई की पूरी तरह से सराहना नहीं की।

हालाँकि, हाल ही में मैं SQL क्वेरी और डेटा हेरफेर के लिए दो आर संकुल के बारे में सीख रहा हूँ : dplyr और data.table । SQL स्पष्ट रूप से Codd के संबंधपरक बीजगणित / पथरी / मॉडल के अधिकांश विचारों को व्यक्त कर सकता है , लेकिन सभी नहीं । इसके अलावा, डफ़लर के लेखक, हेडली विकम ने स्पष्ट रूप से कहा है कि पैकेज से जुड़ा उनका दर्शन संबंधपरक बीजगणित पर कोडड के काम पर आधारित है, और SQL और drr में कमांड के लिए डेटाटेबल मैप के बुनियादी आदेशों को काफी अच्छी तरह से बताता है।

मुझे यह भी पता है कि श्रेणी सिद्धांत हास्केल जैसी कार्यात्मक प्रोग्रामिंग भाषाओं का उपयोग करके बहुत सारे प्रोग्रामर को प्रभावित करता है। हालांकि, मैं डेटा हेरफेर या डेटा विज्ञान के लिए कार्यात्मक प्रोग्रामिंग के किसी भी उपयोग, हैडली विकहैम के अलावा वहाँ होने का वास्तव में पता नहीं purrr आर, तथ्य यह है कि के लिए पैकेज अपाचे स्पार्क में लिखा है स्काला , और से संबंधित प्रौद्योगिकियों MapReduce

इस प्रकार के सभी मुझे सुझाव देते हैं कि श्रेणी सिद्धांत और कोडड के संबंधपरक बीजगणित / कैलकुलस के बीच किसी प्रकार का संबंध होना चाहिए , लेकिन मैंने कभी किसी को इस तरह का संबंध स्पष्ट करते हुए नहीं सुना है या यह स्पष्ट नहीं करता है कि यह लोकप्रिय डेटा संकलन में डिजाइन निर्णयों को कैसे रेखांकित करता है और संबंधपरक डेटाबेस प्रौद्योगिकियां। इसलिए मुझे भी संदेह है कि मैं पूरी तरह से गलत हो सकता हूं।

संपादित करें: जाहिरा तौर पर डेविड स्पिवक ने " फंक्शनल क्वेरी लैंग्वेज (FQL) " पर काम किया है । ऐसा लगता है कि यह एक ऐसे सैद्धांतिक संबंध का अनुप्रयोग हो सकता है, बशर्ते यह मौजूद हो।

नोट: मुझे यकीन नहीं है कि "रिलेशनल-स्ट्रक्चर्स" रिलेशनल डेटाबेस या रिलेशनल अलजेब्रा / कैलकुलस की चर्चा के लिए उपयुक्त टैग है। यह विकिपीडिया लेख बताता है कि वे जुड़े हो सकते हैं, लेकिन अंततः मुझे नहीं पता कि वाक्यांश "संबंधपरक संरचना" का क्या अर्थ है। कृपया पुनः टैग करने के लिए स्वतंत्र महसूस करें।


2
क्या आपने टेनेन और ब्यूमेन द्वारा काम देखा है, जैसे ए स्ट्रक्चरल अप्रोच टू क्वेरी लैंग्वेज डिज़ाइन ?
रीइनियरिएपोस्ट

@reinierpost मेरे पास नहीं है, लेकिन मैं इसे देखूंगा।
Chill2Macht

जवाबों:


12

क्वेरी भाषाओं में श्रेणीबद्ध दृष्टिकोण एक आला रुचि का एक सा है, लेकिन मुझे लगता है कि यह एक बहुत ही दिलचस्प जगह है!

इस क्षेत्र के दो प्रमुख आंकड़े पीटर बनमैन और टॉरस्ट ग्रस्ट हैं । जाहिर है, वे सभी काम नहीं करते थे, लेकिन यदि आप उनके कागजात से शुरू करते हैं और प्रशस्ति पत्र का पता लगाते हैं, तो आपको क्षेत्र का अच्छा खासा कवरेज मिलेगा।

केंद्रीय अवलोकन जो वे काम करते हैं, वह यह है कि चूंकि एक संबंध को टुपल्स के सेट के रूप में देखा जा सकता है, इसलिए पावरसेट फ़ंक्टर को टुपल के रूप में उस प्रकार के संबंधों के प्रकार लेने के रूप में व्याख्या की जा सकती है। फिर, यह तथ्य कि फ़ंक्शनलसेट फ़ंक्टर एक मोनड बनाता है, जिसका अर्थ है कि आप फिलिप वैडलर के मोनड कॉम्प्रिहेंशन सिंटैक्स से प्रेरित विचारों का उपयोग कर सकते हैं, जो एक समृद्ध समान सिद्धांत वाले प्रश्नों के लिए स्पष्ट रूप से प्रेरित कलन प्रदान कर सकते हैं।

दरअसल, बनमैन एट अल के क्वेरी सिस्टम क्लेली को इसका नाम इस तथ्य से मिला है कि मोनड्स को कभी-कभी "क्लेइस्ली ट्राइएल्स" कहा जाता है।

ग्रेस की पीएचडी थीसिस, कॉम्प्रिहेंसिव क्वेरीज़ , इन विचारों को विस्तार से बताती है, जिसमें मॉडल एग्रीगेशन ऑपरेटरों (जैसे sumऔर count) के लिए मोनाड मॉर्फिज़्म का उपयोग शामिल है । ग्रस्ट और उनके समूह ने एक प्रणाली भी बनाई, फेरी , जिसने डेटाबेस को प्रोग्रामिंग भाषाओं में एकीकृत करने का अध्ययन किया।

इस काम में मुख्य मुद्दों में से एक (और क्लेइस्ली में भी, यदि मेमोरी कार्य करता है), यह है कि मोनडिक क्वेरी भाषाएं रिलेशनल बीजगणित की तुलना में थोड़ी अधिक अभिव्यंजक होती हैं - वे सेट के सेट को संभालने के लिए प्रश्नों की अनुमति देते हैं। इसे एसक्यूएल या रिलेशनल बीजगणित के लिए संकलित करने के लिए कुछ देखभाल की आवश्यकता होती है (उदाहरण के लिए, चेनी एट अल का भाषा-एकीकृत क्वेरी का व्यावहारिक सिद्धांत देखें ), लेकिन मूल मुद्दे का एक बहुत अच्छा वर्गीकरण है। संबंधपरक बीजगणित केवल का उपयोग करता monoidal Powerset functor की संरचना, यानी, एक कार्तीय उत्पाद प्राकृतिक परिवर्तन के अस्तित्व ; और मोनैडिक क्वेरी भाषाएँ भी join, मांग करती हैं():पी(एक्स)×पी(Y)पी(एक्स×Y)μ:पी(पी(एक्स))पी(एक्स)

शायद क्वेरी भाषाओं के लिए श्रेणीबद्ध दृष्टिकोण पर काम की प्राथमिक धारा है।

एक नया विचार (जो दुर्भाग्य से उतने कर्षण के रूप में नहीं मिला है जितना मुझे लगता है कि यह योग्य है) डेविड स्पिवक का मॉडल डेटाबेस के लिए सरल सेट का उपयोग करने पर काम है - सिंपलिक डेटाबेस देखें । केंद्रीय नवाचार यह है कि सरल संरचना स्पष्ट रूप से तालिकाओं (जैसे, विदेशी कुंजी की प्रणाली) के बीच संबंधों सहित पूरे डेटाबेस स्कीमा को मॉडलिंग करने की अनुमति देती है, और यह स्कीमा को संचालन अपडेट करने में सक्षम बनाता है।

मानक क्वेरी भाषाओं का एक और विचलन प्रतिबंधित तर्क प्रोग्रामिंग भाषाएं हैं जैसे कि Datalog, जो संबंधपरक बीजगणित और एक निश्चित बिंदु ऑपरेटर के रूप में समझा जा सकता है। फिक्स्ड पॉइंट्स ट्रांज़िटिव क्लोजर क्वेश्चन जैसी चीजों को व्यक्त करने की अनुमति देते हैं, और इसलिए नए डेटाबेस जैसे डेटामिक्स फीचर क्वेरी भाषाओं पर आधारित हैं। मेरे पीएचडी के छात्र, माइकल अर्नेस्टेनियस , और मैंने Datalog के शब्दार्थों का अध्ययन किया है, और एक कार्यात्मक एनालॉग के साथ आते हैं , जिसे हम Datafun कहते हैं , जिसमें पॉसेट्स और सेमिनल की श्रेणियों के संदर्भ में एक बहुत ही स्पष्ट व्याख्या है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.