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

From Vigyanwiki
No edit summary
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 के [[ट्यूरिंग अवार्ड]] पत्र, ''<nowiki/>'द प्रोग्रामर एज नेविगेटर''' के शीर्षक से लोकप्रिय किया गया था।<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 के दशक में बच्चन द्वारा [[ सामान्य विद्युतीय ]] के लिए विकसित किया गया था। [[एकीकृत डेटा स्टोर|एकीकृत डेटा भंडार]] 1969 में [[CODASYL|डेटा सिस्टम भाषा पर सम्मेलन/समिति]] डेटाबेस मॉडल का आधार बना।
प्रारम्भिक नेविगेशनल डेटाबेस में से एक [[एकीकृत डेटा स्टोर|एकीकृत डेटा भंडार]] (आईडीएस) था, जिसे 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 में लिखते हुए, उदाहरण के लिए, त्सिक्रिट्ज़िस और लोचोव्स्की<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|डेटा सिस्टम भाषा पर सम्मेलन/समिति]] डाटा प्रकलन भाषा से बहुत दूर हैं, जिसे बाचमैन के नेविगेशनल विजन को प्रयुक्त करने के रूप में समझा जा सकता है। इनमें से कुछ भाषाएँ प्रक्रियात्मक हैं; अन्य (जैसे [[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 के दशक में [[वस्तु-उन्मुख डेटाबेस]] मे एक संचार आया, जो प्रायः घोषणात्मक और प्रक्रियात्मक दोनों इंटरफेस प्रदान करती थी। इसके लिए एक स्पष्टीकरण यह है कि वे प्रायः ग्राफ़-संरचित जानकारी (उदाहरण के लिए स्थानिक डेटा और इंजीनियरिंग डेटा) का प्रतिनिधित्व करने के लिए उपयोग किए जाते थे, जहां पहुँच स्वाभाविक रूप से पुनरावर्ती होती है: संचरित प्रश्न भाषा को रेखांकित करने वाला गणित (विशेष रूप से, प्रथम-क्रम विधेय कैलकुलस) में पर्याप्त शक्ति नहीं होती है पुनरावर्ती प्रश्नों का समर्थन करें, यहां तक ​​कि सकर्मक समापन के रूप में सरल भी।
1980 के दशक में जब संबंधपरक प्रणालियां प्रमुखता में आईं,तब नेविगेशनल एप्लीकेशन प्रोग्रामिंग इंटरफेस (और विशेष रूप से, प्रक्रियात्मक एप्लीकेशन प्रोग्रामिंग इंटरफेस) की आलोचना की गई और वे समर्थन से बाहर हो गए। हालाँकि, 1990 के दशक में [[वस्तु-उन्मुख डेटाबेस]] मे एक संचार आया, जो प्रायः प्रकाशक और प्रक्रियात्मक दोनों इंटरफेस प्रदान करती थी। इसके लिए एक स्पष्टीकरण यह है कि वे प्रायः ग्राफ़-संरचित जानकारी (उदाहरण के लिए स्थानिक डेटा और इंजीनियरिंग डेटा) का प्रतिनिधित्व करने के लिए उपयोग किए जाते थे, जहां पहुँच स्वाभाविक रूप से पुनरावर्ती होती है: संचरित प्रश्न भाषा को रेखांकित करने वाला गणित (विशेष रूप से, प्रथम-क्रम निर्धारक कलन) में पर्याप्त सामर्थ्य नहीं होती है पुनरावर्ती प्रश्नों का समर्थन करें, यहां तक ​​कि सकर्मक समापन के रूप में सरल भी थी।


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


== उदाहरण ==
== उदाहरण ==

Revision as of 21:22, 1 March 2023

विकिपीडिया, मुक्त विश्वकोश से

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

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

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

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

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

विवरण

नेविगेशनल अभिगम्य पारंपरिक रूप से नेटवर्क मॉडल और डेटाबेस के पदानुक्रमित मॉडल से जुड़ा हुआ है, और पारंपरिक रूप से डेटा कुशलतापूर्वक एप्लीकेशन प्रोग्रामिंग इंटरफेस का वर्णन करता है जिसमें रिकॉर्ड (या ऑब्जेक्ट) एक समय में एक बार संसाधित होते हैं। बाचमैन द्वारा वर्णित आवश्यक विशेषता, हालांकि, अन्य रिकॉर्ड के साथ उनके संबंध के आधार पर रिकॉर्ड जांच कर रही है: इसलिए एक इंटरफ़ेस अभी भी नेविगेशनल हो सकता है यदि इसमें समूह-उन्मुख विशेषताएं हैं।[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 के दशक में वस्तु-उन्मुख डेटाबेस मे एक संचार आया, जो प्रायः प्रकाशक और प्रक्रियात्मक दोनों इंटरफेस प्रदान करती थी। इसके लिए एक स्पष्टीकरण यह है कि वे प्रायः ग्राफ़-संरचित जानकारी (उदाहरण के लिए स्थानिक डेटा और इंजीनियरिंग डेटा) का प्रतिनिधित्व करने के लिए उपयोग किए जाते थे, जहां पहुँच स्वाभाविक रूप से पुनरावर्ती होती है: संचरित प्रश्न भाषा को रेखांकित करने वाला गणित (विशेष रूप से, प्रथम-क्रम निर्धारक कलन) में पर्याप्त सामर्थ्य नहीं होती है पुनरावर्ती प्रश्नों का समर्थन करें, यहां तक ​​कि सकर्मक समापन के रूप में सरल भी थी।

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

उदाहरण

यह भी देखें

संदर्भ

  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.


बाहरी संबंध