शुरुआत के लिए कुछ मानक ओरेकल कार्यक्षमता प्रकार का उपयोग करती है, उदाहरण के लिए एक्सएमएलडीबी और स्थानिक (जिसमें नेस्टेड टेबल डेटा प्रकारों के कॉलम घोषित करना शामिल है)।
साथ ही, कई पीएल/एसक्यूएल डेवलपर पीएल/एसक्यूएल संग्रह या पाइपलाइन किए गए कार्यों को घोषित करने के लिए हर समय प्रकारों का उपयोग करते हैं।
लेकिन मैं मानता हूं कि कुछ स्थान बड़े पैमाने पर प्रकारों का उपयोग करते हैं और उनमें से पीएल/एसक्यूएल एपीआई बनाते हैं। इसके कई कारण हैं।
- Oracle ने Objects को बहुत धीरे-धीरे क्रियान्वित किया है। यद्यपि उन्हें संस्करण 8.0 में पेश किया गया था, यह 9.2 तक नहीं था कि वे पूरी तरह से वंशानुक्रम, बहुरूपता और उपयोगकर्ता-परिभाषित निर्माणकर्ताओं का समर्थन करते थे। उन सुविधाओं के बिना उचित वस्तु-उन्मुख प्रोग्रामिंग असंभव है। हमें नहीं मिला
SUPER()
संस्करण 11g तक। अब भी सुविधाओं का अभाव है, विशेष रूप से TYPE BODY में निजी घोषणाएँ। - वाक्यविन्यास अक्सर भद्दा या निराशाजनक रूप से अस्पष्ट होता है। दस्तावेज़ीकरण मदद नहीं करता है।
- Oracle के साथ काम करने वाले ज्यादातर लोग प्रोग्रामिंग के रिलेशनल/प्रक्रियात्मक स्कूल से आते हैं। इसका मतलब है कि वे ओओपी को नहीं समझते हैं, या वे यह समझने में असफल होते हैं कि यह डेटाबेस प्रोग्रामिंग में कहां उपयोगी हो सकता है। यहां तक कि जब लोग एक साफ-सुथरे विचार के साथ आते हैं, तो उन्हें ओरेकल के सिंटैक्स का उपयोग करके इसे लागू करना कठिन या असंभव लगता है।
वह अंतिम बिंदु महत्वपूर्ण है। हम नया सिंटैक्स सीख सकते हैं, हम ओरेकल को फीचर सेट को पूरा करने के लिए राजी कर सकते हैं, लेकिन यह तभी सार्थक है जब हम टाइप्स के उपयोग के साथ आ सकें। इसका मतलब है कि हमें उन समस्याओं की आवश्यकता है जिन्हें वंशानुक्रम और बहुरूपता का उपयोग करके हल किया जा सकता है।
मैंने एक प्रणाली पर काम किया है जो बड़े पैमाने पर प्रकारों का इस्तेमाल करती है। यह एक डेटा वेयरहाउस सिस्टम था, और डेटा लोडिंग सब-सिस्टम को प्रकारों से बनाया गया था। अंतर्निहित तर्क सरल था:
- हमें अपने द्वारा लोड की जाने वाली प्रत्येक तालिका के लिए समान व्यवसाय नियम टेम्पलेट लागू करने की आवश्यकता है, इसलिए प्रक्रिया सामान्य है;
- प्रत्येक तालिका का अपना प्रक्षेपण होता है, इसलिए SQL कथन प्रत्येक के लिए अद्वितीय होते हैं।
प्रकार कार्यान्वयन साफ है:सामान्य प्रक्रिया को एक प्रकार में परिभाषित किया गया है; प्रत्येक तालिका के कार्यान्वयन को उस प्रकार में परिभाषित किया गया है जो उस सामान्य प्रकार से प्राप्त होता है। विशिष्ट प्रकार मेटाडेटा से उत्पन्न किए जा सकते हैं। मैंने कुछ साल पहले यूकेओयूजी में इस विषय पर प्रस्तुत किया था, और मैंने इसे अपने ब्लॉग पर और अधिक विस्तार से लिखा है।और जानें।
वैसे, रिलेशनल थ्योरी में डोमेन की अवधारणा शामिल है, जो उपयोगकर्ता-परिभाषित डेटा-प्रकार हैं, जिसमें बाधाएं आदि शामिल हैं। आरडीबीएमएस का कोई स्वाद वास्तव में डोमेन का समर्थन नहीं करता है, लेकिन ओरेकल का प्रकार कार्यान्वयन निश्चित रूप से एक कदम है।