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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

उदाहरण

 * आईबीएम सूचना प्रबंधन प्रणाली
 * आईडीएमएस

यह भी देखें

 * कोडासिल
 * ग्राफ डेटाबेस
 * नेटवर्क डेटाबेस
 * ऑब्जेक्ट डेटाबेस
 * संबंध का डेटाबेस

बाहरी संबंध

 * DB-Engines Ranking of Navigational DBMS by popularity, updated by month