नेविगेशनल डेटाबेस: Difference between revisions

From Vigyanwiki
(Created page with "{{short description|Database in which records or objects are found by following references from other objects}} एक नेविगेशनल डेटाबेस...")
 
No edit summary
Line 1: Line 1:
{{short description|Database in which records or objects are found by following references from other objects}}
{{short description|Database in which records or objects are found by following references from other objects}}
एक नेविगेशनल [[डेटाबेस]] एक प्रकार का डेटाबेस है जिसमें [[रिकॉर्ड (कंप्यूटर विज्ञान)]] या [[वस्तु (कंप्यूटर विज्ञान)]] मुख्य रूप से अन्य वस्तुओं के संदर्भों का पालन करके पाया जाता है। इस शब्द को [[चार्ल्स बच्चन]] के 1973 के [[ट्यूरिंग अवार्ड]] पेपर, '' द प्रोग्रामर एज नेविगेटर '' के शीर्षक से लोकप्रिय किया गया था।<ref>{{cite journal|url=http://portal.acm.org/citation.cfm?id=362534&coll=portal&dl=ACM |title=प्रोग्रामर नेविगेटर के रूप में|year=1973 |doi=10.1145/355611.362534 |publisher=Portal.acm.org |access-date=2012-10-01|last1=Bachman |first1=Charles W. |journal=Communications of the ACM |volume=16 |issue=11 |pages=653–658 |s2cid=18635540 |doi-access=free }}</ref> इस पत्र ने इस तथ्य पर जोर दिया कि नए डिस्क-आधारित डेटाबेस सिस्टम ने प्रोग्रामर को रिकॉर्ड से रिकॉर्ड तक संबंधों के बाद मनमाना नेविगेशन मार्ग चुनने की अनुमति दी, इसके विपरीत पहले के चुंबकीय-टेप और पंच कार्ड सिस्टम की बाधाओं के साथ जहां डेटा का उपयोग सख्ती से अनुक्रमिक था।
एक नेविगेशनल [[डेटाबेस]] एक प्रकार का डेटाबेस है जिसमें [[रिकॉर्ड (कंप्यूटर विज्ञान)]] या [[वस्तु (कंप्यूटर विज्ञान)]] मुख्य रूप से अन्य वस्तुओं के संदर्भों का अनुसरण करके पाया जाता है। इस शब्द को [[चार्ल्स बच्चन]] के 1973 के [[ट्यूरिंग अवार्ड]] पेपर, '' द प्रोग्रामर एज नेविगेटर '' के शीर्षक से लोकप्रिय किया गया था।<ref>{{cite journal|url=http://portal.acm.org/citation.cfm?id=362534&coll=portal&dl=ACM |title=प्रोग्रामर नेविगेटर के रूप में|year=1973 |doi=10.1145/355611.362534 |publisher=Portal.acm.org |access-date=2012-10-01|last1=Bachman |first1=Charles W. |journal=Communications of the ACM |volume=16 |issue=11 |pages=653–658 |s2cid=18635540 |doi-access=free }}</ref> इस पत्र ने इस तथ्य पर जोर दिया कि नए डिस्क-आधारित डेटाबेस सिस्टम ने प्रोग्रामर को रिकॉर्ड से रिकॉर्ड तक संबंधों के बाद मनमाना नेविगेशन मार्ग चयन करने की स्वीकृति दी, इसके विपरीत पहले के चुंबकीय-टेप और पंच कार्ड सिस्टम की बाधाओं के साथ जहां डेटा का उपयोग दृढ़ता से अनुक्रमिक था।


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


हालांकि बछमन ने अमूर्त शब्दों में नेविगेशन की अवधारणा का वर्णन किया, नेविगेशनल एक्सेस का विचार CODASYL [[डेटा हेरफेर भाषा]] के प्रक्रियात्मक डिजाइन के साथ दृढ़ता से जुड़ा हुआ था। 1982 में लेखन, उदाहरण के लिए, Tsichritzis और Lochovsky<ref>{{cite book|title=डेटा मॉडल|url=https://archive.org/details/datamodels00tsic|url-access=registration|author=Dionysios C. Tsichritzis and Frederick H. Lochovsky|date=1982|publisher=Prentice-Hall|isbn=0-13-196428-3|page=[https://archive.org/details/datamodels00tsic/page/67 67]}}</ref> बता दें कि मुद्रा की धारणा नेविगेशन की अवधारणा के केंद्र में है। मुद्रा की धारणा से, वे इस विचार को संदर्भित करते हैं कि एक कार्यक्रम रिकॉर्ड के किसी भी क्रम में एक वर्तमान स्थिति (स्पष्ट रूप से या स्पष्ट रूप से) को बनाए रखता है, जिसे वह संसाधित कर रहा है, और वह संचालन जैसे कि <code>GET NEXT</code> और <code>GET PRIOR</code> इस वर्तमान स्थिति से संबंधित रिकॉर्ड पुनर्प्राप्त करें, जबकि वर्तमान स्थिति को पुनर्प्राप्त किए गए रिकॉर्ड में भी बदल रहा है।
हालांकि बछमन ने अमूर्त शब्दों में नेविगेशन की अवधारणा का वर्णन किया, नेविगेशनल एक्सेस का विचार CODASYL [[डेटा हेरफेर भाषा|डेटा कुशलतापूर्वक भाषा]] के प्रक्रियात्मक डिजाइन के साथ दृढ़ता से जुड़ा हुआ था। 1982 में लेखन, उदाहरण के लिए, Tsichritzis और Lochovsky<ref>{{cite book|title=डेटा मॉडल|url=https://archive.org/details/datamodels00tsic|url-access=registration|author=Dionysios C. Tsichritzis and Frederick H. Lochovsky|date=1982|publisher=Prentice-Hall|isbn=0-13-196428-3|page=[https://archive.org/details/datamodels00tsic/page/67 67]}}</ref> बता दें कि मुद्रा की धारणा नेविगेशन की अवधारणा के केंद्र में है। मुद्रा की धारणा से, वे इस विचार को संदर्भित करते हैं कि एक प्रोग्राम रिकॉर्ड के किसी भी क्रम में एक वर्तमान स्थिति (स्पष्ट रूप से या स्पष्ट रूप से) को बनाए रखता है, जिसे वह संसाधित कर रहा है, और वह संचालन जैसे कि <code>GET NEXT</code> और <code>GET PRIOR</code> इस वर्तमान स्थिति से संबंधित रिकॉर्ड पुनर्प्राप्त करें, जबकि वर्तमान स्थिति को पुनर्प्राप्त किए गए रिकॉर्ड में भी बदल रहा है।


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


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


== विवरण ==
== विवरण ==


नेविगेशनल एक्सेस पारंपरिक रूप से [[नेटवर्क मॉडल]] और डेटाबेस के [[पदानुक्रमित मॉडल]] से जुड़ा हुआ है, और पारंपरिक रूप से डेटा हेरफेर एपीआई का वर्णन करता है जिसमें रिकॉर्ड (या ऑब्जेक्ट) एक समय में एक बार संसाधित होते हैं। बाचमैन द्वारा वर्णित आवश्यक विशेषता, हालांकि, अन्य रिकॉर्ड के साथ उनके संबंध के आधार पर रिकॉर्ड ढूंढ रही है: इसलिए एक इंटरफ़ेस अभी भी नेविगेशनल हो सकता है यदि इसमें सेट-उन्मुख विशेषताएं हैं।<ref>{{cite book | author = Błażewicz, Jacek |author2=Królikowski, Zbyszko |author3=Morzy, Tadeusz | title = सूचना प्रणाली में डेटा और प्रबंधन पर पुस्तिका| publisher = Springer  | year = 2003  | page = 18  | url = https://books.google.com/books?id=AvLziHKyuLcC&q=%22Navigational+database%22+-wikipedia+network+model+and+hierarchical+model&pg=PA18| isbn = 3-540-43893-9 }}</ref> इस दृष्टिकोण से, नेविगेशनल डेटा हेरफेर भाषाओं और संबंधपरक भाषाओं के बीच मुख्य अंतर मूल्य-आधारित जुड़ावों के बजाय स्पष्ट नामित संबंधों का उपयोग है: <code>for department with name="Sales", find all employees in set department-employees</code> बनाम <code>find employees, departments where employee.department-code = department.code and department.name="Sales"</code>.
नेविगेशनल एक्सेस पारंपरिक रूप से [[नेटवर्क मॉडल]] और डेटाबेस के [[पदानुक्रमित मॉडल]] से जुड़ा हुआ है, और पारंपरिक रूप से डेटा कुशलतापूर्वक एप्लीकेशन प्रोग्रामिंग इंटरफेस का वर्णन करता है जिसमें रिकॉर्ड (या ऑब्जेक्ट) एक समय में एक बार संसाधित होते हैं। बाचमैन द्वारा वर्णित आवश्यक विशेषता, हालांकि, अन्य रिकॉर्ड के साथ उनके संबंध के आधार पर रिकॉर्ड ढूंढ रही है: इसलिए एक इंटरफ़ेस अभी भी नेविगेशनल हो सकता है यदि इसमें सेट-उन्मुख विशेषताएं हैं।<ref>{{cite book | author = Błażewicz, Jacek |author2=Królikowski, Zbyszko |author3=Morzy, Tadeusz | title = सूचना प्रणाली में डेटा और प्रबंधन पर पुस्तिका| publisher = Springer  | year = 2003  | page = 18  | url = https://books.google.com/books?id=AvLziHKyuLcC&q=%22Navigational+database%22+-wikipedia+network+model+and+hierarchical+model&pg=PA18| isbn = 3-540-43893-9 }}</ref> इस दृष्टिकोण से, नेविगेशनल डेटा कुशलतापूर्वक भाषाओं और संबंधपरक भाषाओं के बीच मुख्य अंतर मूल्य-आधारित जुड़ावों के अतिरिक्त स्पष्ट नामित संबंधों का उपयोग है: <code>for department with name="Sales", find all employees in set department-employees</code> बनाम <code>find employees, departments where employee.department-code = department.code and department.name="Sales"</code>.


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


<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
Line 24: Line 24:
}
}
</syntaxhighlight>
</syntaxhighlight>
इस दृष्टिकोण पर, नेविगेशनल एपीआई और रिलेशनल मॉडल ([[ संबंध का डेटाबेस ]] में लागू) के बीच मुख्य अंतर यह है कि रिलेशनल एपीआई डिक्लेरेटिव या [[ तर्क प्रोग्रामिंग ]] तकनीकों का उपयोग करते हैं जो सिस्टम से पूछते हैं कि क्या लाना है, जबकि नेविगेशनल एपीआई सिस्टम को चरणों के क्रम में निर्देश देते हैं कि कैसे आवश्यक रिकॉर्ड तक पहुँचने के लिए।
इस दृष्टिकोण पर, नेविगेशनल एप्लीकेशन प्रोग्रामिंग इंटरफेस और संबंधपरक मॉडल ([[ संबंध का डेटाबेस ]] में प्रयुक्त) के बीच मुख्य अंतर यह है कि संबंधपरक एप्लीकेशन प्रोग्रामिंग इंटरफेस डिक्लेरेटिव या [[ तर्क प्रोग्रामिंग ]] तकनीकों का उपयोग करते हैं जो सिस्टम से पूछते हैं कि क्या लाना है, जबकि नेविगेशनल एप्लीकेशन प्रोग्रामिंग इंटरफेस सिस्टम को चरणों के क्रम में निर्देश देते हैं कि कैसे आवश्यक रिकॉर्ड तक पहुँचने के लिए।


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


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


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


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


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


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


== उदाहरण ==
== उदाहरण ==
* [[आईबीएम सूचना प्रबंधन प्रणाली]]
* [[आईबीएम सूचना प्रबंधन प्रणाली|अंतर्राष्ट्रीय व्यवसाय मशीन सूचना प्रबंधन प्रणाली]]
* [[आईडीएमएस]]
* [[आईडीएमएस|पहचान प्रबंधन प्रणाली]]


== यह भी देखें ==
== यह भी देखें ==

Revision as of 19:35, 1 March 2023

एक नेविगेशनल डेटाबेस एक प्रकार का डेटाबेस है जिसमें रिकॉर्ड (कंप्यूटर विज्ञान) या वस्तु (कंप्यूटर विज्ञान) मुख्य रूप से अन्य वस्तुओं के संदर्भों का अनुसरण करके पाया जाता है। इस शब्द को चार्ल्स बच्चन के 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.


बाहरी संबंध