एक्सप्रेस (डेटा मॉडलिंग भाषा)

एक्सप्रेस उत्पाद (व्यवसाय) डेटा के लिए मानक डेटा मॉडलिंग भाषा है। एक्सप्रेस को उत्पाद मॉडल स्टेप (आईएसओ 10303) के आदान-प्रदान के लिए आईएसओ मानक में औपचारिक रूप दिया गया है, और आईएसओ 10303-11 के रूप में मानकीकृत किया गया है।

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

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

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

सरल उदाहरण
साधारण एक्सप्रेस डेटा मॉडल चित्र 2 जैसा दिखता है, और कोड इस प्रकार है: डेटा मॉडल एक्सप्रेस स्कीमा परिवार के भीतर संलग्न है। इसमें दो उपप्रकार पुरुष और महिला के साथ सुपरटाइप इकाई व्यक्ति शामिल है। चूँकि व्यक्ति को ABSTRACT घोषित किया गया है, केवल (ONEOF) उपप्रकार पुरुष या महिला मौजूद हो सकते हैं। किसी व्यक्ति की प्रत्येक घटना में अनिवार्य नाम विशेषता होती है और वैकल्पिक रूप से माता और पिता का गुण होता है। कुछ इकाई प्रकार की विशेषताओं के लिए पढ़ने की निश्चित शैली होती है:
 * महिला व्यक्ति के लिए माँ की भूमिका निभा सकती है
 * पुरुष व्यक्ति के लिए पिता की भूमिका निभा सकता है

डेटा प्रकार
एक्सप्रेस एक्सप्रेस-जी नोटेशन के विशिष्ट डेटा प्रकार प्रतीकों के साथ, डेटाटाइप्स की श्रृंखला प्रदान करता है: * इकाई डेटा प्रकार: यह एक्सप्रेस में सबसे महत्वपूर्ण डेटा प्रकार है। इसे और अधिक विस्तार से नीचे कवर किया गया है। उप-सुपरटाइप पेड़ और/या विशेषताओं द्वारा इकाई डेटाटाइप दो तरीकों से संबंधित हो सकते हैं।
 * गणना डेटा प्रकार: गणना मान आरजीबी-गणना के लिए लाल, हरा और नीला जैसे सरल तार होते हैं। इस मामले में कि गणना प्रकार को एक्स्टेंसिबल घोषित किया जाता है, इसे अन्य स्कीमाओं में बढ़ाया जा सकता है।
 * परिभाषित डेटा प्रकार: यह आगे अन्य डेटाटाइप्स को माहिर करता है - उदाहरण के लिए, डेटाटाइप पॉजिटिव को परिभाषित करता है जो मान> 0 के साथ पूर्णांक प्रकार का होता है।
 * डेटा प्रकार का चयन करें: चयन विभिन्न विकल्पों के बीच विकल्प या विकल्प को परिभाषित करता है। विभिन्न entity_types के बीच सबसे अधिक उपयोग किए जाने वाले चयन हैं। अधिक दुर्लभ ऐसे चयन हैं जिनमें परिभाषित प्रकार शामिल हैं। इस मामले में कि गणना प्रकार को एक्स्टेंसिबल घोषित किया जाता है, इसे अन्य स्कीमाओं में बढ़ाया जा सकता है।
 * सरल डेटा प्रकार
 * स्ट्रिंग: यह सबसे अधिक इस्तेमाल किया जाने वाला सरल प्रकार है। एक्सप्रेस तार किसी भी लम्बाई के हो सकते हैं और इसमें कोई भी वर्ण (आईएसओ 10646 / यूनिकोड) हो सकता है।
 * बाइनरी: यह डेटा प्रकार केवल बहुत ही कम उपयोग किया जाता है। इसमें कई बिट्स (बाइट्स नहीं) शामिल हैं। कुछ कार्यान्वयनों के लिए आकार 32 बिट तक सीमित है।
 * लॉजिकल: बूलियन डेटाटाइप के समान लॉजिकल में TRUE और FALSE के संभावित मान होते हैं और इसके अलावा UNKNOWN भी।
 * बूलियन: बूलियन मान TRUE और FALSE के साथ।
 * संख्या: संख्या डेटा प्रकार पूर्णांक और वास्तविक दोनों का सुपरटाइप है। अधिकांश कार्यान्वयन take real_type का प्रतिनिधित्व करने के लिए दोहरे प्रकार का उपयोग करता है, भले ही वास्तविक मान पूर्णांक हो।
 * पूर्णांक: एक्सप्रेस पूर्णांक सिद्धांत रूप में किसी भी लम्बाई के हो सकते हैं, लेकिन अधिकांश कार्यान्वयनों ने उन्हें हस्ताक्षरित 32 बिट मान तक सीमित कर दिया।
 * वास्तविक: आदर्श रूप से एक्सप्रेस वास्तविक मूल्य सटीकता और आकार में असीमित है। लेकिन व्यवहार में वास्तविक मूल्य को टाइप डबल के फ्लोटिंग पॉइंट मान द्वारा दर्शाया जाता है।
 * एकत्रीकरण डेटा प्रकार: एकत्रीकरण_ प्रकार के संभावित प्रकार सेट, बैग, सूची और ARRAY हैं। जबकि SET और BAG अनियंत्रित हैं, LIST और ARRAY का आदेश दिया गया है। बैग में से अधिक बार विशेष मान हो सकता है, एसईटी के लिए इसकी अनुमति नहीं है। ARRAY एकमात्र समग्र है जिसमें अनसेट सदस्य हो सकते हैं। यह SET, LIST, BAG के लिए संभव नहीं है। समुच्चय के सदस्य किसी अन्य डेटा प्रकार के हो सकते हैं।

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

इकाई-विशेषता
Entity विशेषताएँ संस्थाओं में गुण जोड़ने और इकाई को विशिष्ट भूमिका में दूसरे के साथ जोड़ने की अनुमति देती हैं। विशेषता का नाम भूमिका निर्दिष्ट करता है। अधिकांश डेटा प्रकार सीधे विशेषता के प्रकार के रूप में कार्य कर सकते हैं। इसमें एकत्रीकरण भी शामिल है।

गुण तीन प्रकार के होते हैं, स्पष्ट, व्युत्पन्न और प्रतिलोम गुण। और इन सभी को उपप्रकार में पुनः घोषित किया जा सकता है। इसके अलावा उपप्रकार में व्युत्पन्न के रूप में स्पष्ट विशेषता को फिर से घोषित किया जा सकता है। इस प्रकार के गुणों में कोई अन्य परिवर्तन संभव नहीं है।
 * स्पष्ट विशेषताएँ वे हैं जिनका सीधा मान स्टेप-फ़ाइल में दिखाई देता है।
 * व्युत्पन्न विशेषताएँ अभिव्यक्ति से अपना मान प्राप्त करती हैं। ज्यादातर मामलों में अभिव्यक्ति इस उदाहरण के अन्य गुणों को संदर्भित करती है। अभिव्यक्ति एक्सप्रेस कार्यों का भी उपयोग कर सकती है।
 * व्युत्क्रम विशेषताएँ किसी इकाई में जानकारी नहीं जोड़ती हैं, लेकिन केवल दूसरे छोर से इकाई के लिए स्पष्ट विशेषता का नाम और विवश करती हैं।

एक्सप्रेस-जी संकेतन के विशिष्ट विशेषता प्रतीक:



सुपरटाइप्स और सबटाइप्स
इकाई को या कई अन्य संस्थाओं के उपप्रकार के रूप में परिभाषित किया जा सकता है (एकाधिक वंशानुक्रम की अनुमति है!) सुपरटाइप में कई उपप्रकार हो सकते हैं। बहुत जटिल उप-सुपरटाइप ग्राफ बनाने के लिए स्टेप में यह बहुत ही सामान्य अभ्यास है। कुछ ग्राफ़ 100 और अधिक संस्थाओं को दूसरे से संबंधित करते हैं।

इकाई उदाहरण या तो इकाई (यदि सार नहीं है) या ऐसे उप-सुपरटाइप ग्राफ में संस्थाओं के जटिल संयोजन के लिए बनाया जा सकता है। बड़े रेखांकन के लिए संभावित संयोजनों की संख्या खगोलीय श्रेणियों में बढ़ने की संभावना है। संभावित संयोजनों को प्रतिबंधित करने के लिए विशेष सुपरटेप बाधाओं को पेश किया गया जैसे वनओफ और टोटालोवर। इसके अलावा, इकाई को लागू करने के लिए अमूर्त घोषित किया जा सकता है कि केवल इस इकाई का कोई उदाहरण नहीं बनाया जा सकता है, लेकिन केवल तभी जब इसमें गैर-अमूर्त उप प्रकार हो।

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

एक्सप्रेस भाषा स्थानीय और वैश्विक नियमों का वर्णन कर सकती है। उदाहरण के लिए:

यह उदाहरण बताता है कि area_unit इकाई का वर्ग मान होना चाहिए लंबाई। इसके लिए एट्रिब्यूट डाइमेंशन.लम्बाई_एक्सपोनेंट 2 के बराबर होना चाहिए और बुनियादी एसआई इकाइयों के अन्य सभी एक्सपोनेंट 0 होने चाहिए।

और उदाहरण: अर्थात, इसका अर्थ है कि सप्ताह का मान 7 से अधिक नहीं हो सकता।

और इसलिए, आप अपनी संस्थाओं को कुछ नियमों का वर्णन कर सकते हैं। दिए गए उदाहरणों पर अधिक विवरण आईएसओ 10303-41 में पाया जा सकता है

यह भी देखें
आईएसओ संबंधित विषय
 * आईएसओ 10303: कंप्यूटर-व्याख्यात्मक प्रतिनिधित्व और औद्योगिक उत्पाद डेटा के आदान-प्रदान के लिए आईएसओ मानक।
 * आईएसओ 10303-21: ASCII संरचना के साथ स्टेप का डेटा विनिमय रूप
 * आईएसओ 10303-22: मानक डेटा एक्सेस इंटरफ़ेस, स्टेप के कार्यान्वयन के तरीकों का हिस्सा
 * आईएसओ 10303-28: एसटीईपी-एक्सएमएल एक्सप्रेस स्कीमा का प्रतिनिधित्व करने के लिए एक्स्टेंसिबल मार्कअप लैंग्वेज (एक्सएमएल) के उपयोग को निर्दिष्ट करता है
 * आईएसओ 13584-24: पीएलआईबी का तार्किक मॉडल एक्सप्रेस में निर्दिष्ट है
 * आईएसओ 13399: कटिंग टूल डेटा प्रतिनिधित्व और विनिमय के लिए आईएसओ मानक
 * इंडस्ट्री फाउंडेशन क्लासेस|आईएसओ/PAS 16739: इंडस्ट्री फाउंडेशन क्लासेस एक्सप्रेस में निर्दिष्ट है
 * स्टेप (आईएसओ 10303) भागों की सूची

अन्य संबंधित विषय
 * सीएडी डेटा एक्सचेंज
 * इमारत: इलेक्ट्रॉनिक डिजाइन इंटरचेंज फॉर्मेट
 * आरेख
 * सामान्य प्रयोजन मॉडलिंग
 * मॉडलिंग भाषा
 * सिंटैक्स नोटेशन के साथ
 * डीओटी (ग्राफ विवरण भाषा)

अग्रिम पठन

 * आईएसओ 10303, the main page for स्टेप, the Standard for the Exchange of Product model data
 * Douglas A. Schenck and Peter R. Wilson, Information Modeling the EXPRESS Way, Oxford University Press, 1993, ISBN 978-0-19-508714-7