आईएसएएम

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

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

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

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

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

ISAM को IBM में वर्चुअल स्टोरेज एक्सेस विधि  (वर्चुअल स्टोरेज एक्सेस मेथड) नामक एक पद्धति से बदल दिया गया था। फिर भी बाद में, IBM ने IBM SQL/DS|SQL/DS और फिर IBM Db2 विकसित किया, जिसे IBM अपने प्राथमिक डेटाबेस प्रबंधन प्रणाली के रूप में प्रचारित करता है। VSAM Db2 में प्रयुक्त भौतिक पहुंच विधि है।

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

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

डिज़ाइन संबंधी विचार
IBM इंजीनियरों ने न्यूनतम मात्रा में स्मृति  का उपयोग करने के लिए ISAM प्रणाली को डिज़ाइन किया। समझौता यह था कि चैनल I/O|इनपुट/आउटपुट चैनल, नियंत्रण इकाई और डिस्क को अधिक व्यस्त रखा गया था। एक ISAM फ़ाइल में डेटा रिकॉर्ड का संग्रह और सूचकांक के दो या तीन स्तर होते हैं। ट्रैक इंडेक्स में प्रत्येक ट्रैक (डिस्क ड्राइव) के लिए सिलेंडर-हेड-सेक्टर#सिलेंडर पर उच्चतम कुंजी होती है। सिलेंडर इंडेक्स एक सिलेंडर पर उच्चतम कुंजी और संबंधित ट्रैक इंडेक्स के सिलेंडर-हेड-सेक्टर को संग्रहीत करता है। एक वैकल्पिक मास्टर इंडेक्स, जो आमतौर पर केवल बड़ी फ़ाइलों के लिए उपयोग किया जाता है, में सिलेंडर इंडेक्स ट्रैक पर उच्चतम कुंजी और उस सिलेंडर इंडेक्स का डिस्क पता होता है। एक बार फ़ाइल लोड होने के बाद डेटा रिकॉर्ड स्थानांतरित नहीं होते हैं; सम्मिलित रिकॉर्ड को एक अलग अतिप्रवाह क्षेत्र में रखा जाता है। कुंजी द्वारा रिकॉर्ड का पता लगाने के लिए डिस्क पर इंडेक्स को एक जटिल Self-modifying_code#Channel प्रोग्राम|self-modifying Channel_I/O#Channel प्रोग्राम द्वारा खोजा जाता है। इससे चैनल, नियंत्रण इकाई और डिस्क का व्यस्त समय बढ़ गया। बाद के सिस्टम में भौतिक और आभासी मेमोरी आकार में वृद्धि के साथ इसे अक्षम के रूप में देखा गया, और वीएसएएम को मेमोरी उपयोग और डिस्क गतिविधि के बीच ट्रेडऑफ़ को बदलने के लिए विकसित किया गया था।

ISAM के स्व-संशोधित चैनल प्रोग्राम के उपयोग ने बाद में OS/360 के CP-67 समर्थन के लिए कठिनाइयों का कारण बना दिया, क्योंकि I/O ऑपरेशन शुरू होने पर CP-67 ने पूरे चैनल प्रोग्राम को निश्चित मेमोरी में कॉपी कर लिया और वर्चुअल पते को वास्तविक पते में अनुवादित किया।

आईएसएएम-शैली कार्यान्वयन

 * एडवांटेज डेटाबेस सर्वर डेटाबेस मैनेजर
 * बर्कले डीबी
 * प्राप्त करें
 * फेयरकॉम डीबी
 * आईबीएम इन्फॉर्मिक्स सी-आईएसएएम|सी-आईएसएएम
 * डेटाफ्लेक्स मालिकाना डेटाबेस
 * dBase और संबंधित उत्पाद क्लिपर (प्रोग्रामिंग भाषा) और फॉक्सप्रो
 * डिजिटल उपकरण निगम रिकॉर्ड प्रबंधन सेवाएँ
 * अंकित करना एचपी टेंडेम संरचित फ़ाइल एक्सेस विधि है
 * एक्स्टेंसिबल स्टोरेज इंजन
 * डेटाबेस इंजन तक पहुंचें (एसीई और पूर्व में जेट) माइक्रोसॉफ्ट पहुंच  द्वारा उपयोग किया जाता है
 * MySQL ISAM को MyISAM के रूप में लागू और विस्तारित करता है
 * विरोधाभास (डेटाबेस)
 * pblIsam GPL कार्यान्वयन C में लिखा गया है
 * नींबू डेटाबेस मैनेजर
 * सुपरबेस (डेटाबेस) परिवार
 * डीबीएम (कंप्यूटिंग) डीबीएम और फ्लैट फ़ाइल डेटाबेस एक साथ काम कर रहे हैं

यह भी देखें

 * अनुक्रमिक अभिगम स्मृति (एसएएम)
 * वर्चुअल स्टोरेज एक्सेस विधि (वीएसएएम)
 * सरल फ़ाइल
 * नोएसक्यूएल
 * डीबीएम (कंप्यूटिंग)