नेविगेशनल डेटाबेस

From Vigyanwiki
Revision as of 19:35, 1 March 2023 by alpha>SprashM

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

शुरुआती नेविगेशनल डेटाबेस में से एक एकीकृत डेटा भंडार (IDS) था, जिसे 1960 के दशक में बच्चन द्वारा सामान्य विद्युतीय के लिए विकसित किया गया था। एकीकृत डेटा भंडार 1969 में डेटा सिस्टम भाषा पर सम्मेलन/समिति डेटाबेस मॉडल का आधार बना।

हालांकि बछमन ने अमूर्त शब्दों में नेविगेशन की अवधारणा का वर्णन किया, नेविगेशनल एक्सेस का विचार CODASYL डेटा कुशलतापूर्वक भाषा के प्रक्रियात्मक डिजाइन के साथ दृढ़ता से जुड़ा हुआ था। 1982 में लेखन, उदाहरण के लिए, Tsichritzis और Lochovsky[2] बता दें कि मुद्रा की धारणा नेविगेशन की अवधारणा के केंद्र में है। मुद्रा की धारणा से, वे इस विचार को संदर्भित करते हैं कि एक प्रोग्राम रिकॉर्ड के किसी भी क्रम में एक वर्तमान स्थिति (स्पष्ट रूप से या स्पष्ट रूप से) को बनाए रखता है, जिसे वह संसाधित कर रहा है, और वह संचालन जैसे कि GET NEXT और GET PRIOR इस वर्तमान स्थिति से संबंधित रिकॉर्ड पुनर्प्राप्त करें, जबकि वर्तमान स्थिति को पुनर्प्राप्त किए गए रिकॉर्ड में भी बदल रहा है।

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

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

विवरण

नेविगेशनल एक्सेस पारंपरिक रूप से नेटवर्क मॉडल और डेटाबेस के पदानुक्रमित मॉडल से जुड़ा हुआ है, और पारंपरिक रूप से डेटा कुशलतापूर्वक एप्लीकेशन प्रोग्रामिंग इंटरफेस का वर्णन करता है जिसमें रिकॉर्ड (या ऑब्जेक्ट) एक समय में एक बार संसाधित होते हैं। बाचमैन द्वारा वर्णित आवश्यक विशेषता, हालांकि, अन्य रिकॉर्ड के साथ उनके संबंध के आधार पर रिकॉर्ड ढूंढ रही है: इसलिए एक इंटरफ़ेस अभी भी नेविगेशनल हो सकता है यदि इसमें सेट-उन्मुख विशेषताएं हैं।[3] इस दृष्टिकोण से, नेविगेशनल डेटा कुशलतापूर्वक भाषाओं और संबंधपरक भाषाओं के बीच मुख्य अंतर मूल्य-आधारित जुड़ावों के अतिरिक्त स्पष्ट नामित संबंधों का उपयोग है: for department with name="Sales", find all employees in set department-employees बनाम find employees, departments where employee.department-code = department.code and department.name="Sales".

गतिविधि में, हालांकि, अधिकांश नेविगेशनल एप्लीकेशन प्रोग्रामिंग इंटरफेस प्रक्रियात्मक रहे हैं: उपरोक्त प्रश्न को निम्न छद्म कोड की तर्ज पर प्रक्रियात्मक तर्क का उपयोग करके निष्पादित किया जाएगा:

get department with name='Sales'
get first employee in set department-employees
until end-of-set do {
  get next employee in set department-employees
  process employee
}

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

नेविगेशनल एप्लीकेशन प्रोग्रामिंग इंटरफेस की अधिकांश आलोचनाएं दो श्रेणियों में से एक में आती हैं:

  • प्रयोज्यता: एप्लिकेशन कोड जल्दी से अपठनीय और डिबग करने में मुश्किल हो जाता है
  • डेटा स्वतंत्रता: जब भी डेटा संरचना बदलती है तो एप्लिकेशन कोड को परिवर्तित करने की आवश्यकता होती है

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

पदानुक्रमित मॉडल प्रायः पदानुक्रम में प्रत्येक स्तर पर दिखाई देने वाली कुंजियों को जोड़कर रिकॉर्ड के लिए प्राथमिक कुंजी का निर्माण करते हैं। ऐसे समग्र पहचानकर्ता कंप्यूटर फ़ाइल नामों में पाए जाते हैं (/usr/david/docs/index.txt), यूआरआई में, डेवी दशमलव सिस्टम में, और उस स्थिति के लिए डाक पते में। ऐसी समग्र कुंजी को एक रिकॉर्ड के लिए एक नेविगेशनल पथ का प्रतिनिधित्व करने के रूप में माना जा सकता है; लेकिन समान रूप से, इसे सहयोगी अभिगम्य की स्वीकृति देने वाली एक साधारण प्राथमिक कुंजी के रूप में माना जा सकता है।

1980 के दशक में जब संबंधपरक प्रणालियां प्रमुखता में आईं, तो नेविगेशनल एप्लीकेशन प्रोग्रामिंग इंटरफेस (और विशेष रूप से, प्रक्रियात्मक एप्लीकेशन प्रोग्रामिंग इंटरफेस) की आलोचना की गई और वे समर्थन से बाहर हो गए। हालाँकि, 1990 के दशक में वस्तु-उन्मुख डेटाबेस मे एक संचार आया, जो प्रायः घोषणात्मक और प्रक्रियात्मक दोनों इंटरफेस प्रदान करती थी। इसके लिए एक स्पष्टीकरण यह है कि वे प्रायः ग्राफ़-संरचित जानकारी (उदाहरण के लिए स्थानिक डेटा और इंजीनियरिंग डेटा) का प्रतिनिधित्व करने के लिए उपयोग किए जाते थे, जहां पहुँच स्वाभाविक रूप से पुनरावर्ती होती है: संचरित प्रश्न भाषा को रेखांकित करने वाला गणित (विशेष रूप से, प्रथम-क्रम विधेय कैलकुलस) में पर्याप्त शक्ति नहीं होती है पुनरावर्ती प्रश्नों का समर्थन करें, यहां तक ​​कि सकर्मक समापन के रूप में सरल भी।

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

उदाहरण

यह भी देखें

संदर्भ

  1. Bachman, Charles W. (1973). "प्रोग्रामर नेविगेटर के रूप में". Communications of the ACM. Portal.acm.org. 16 (11): 653–658. doi:10.1145/355611.362534. S2CID 18635540. Retrieved 2012-10-01.
  2. Dionysios C. Tsichritzis and Frederick H. Lochovsky (1982). डेटा मॉडल. Prentice-Hall. p. 67. ISBN 0-13-196428-3.
  3. Błażewicz, Jacek; Królikowski, Zbyszko; Morzy, Tadeusz (2003). सूचना प्रणाली में डेटा और प्रबंधन पर पुस्तिका. Springer. p. 18. ISBN 3-540-43893-9.


बाहरी संबंध