Кіріспе

Компьютерлік файлдарды жасау, сақтау және өңдеу әдісі. ISAM – «Индекстелген тізбекті қол жеткізу әдісі» деген сөздердің қысқартылған түрі, бұл деректерді компьютерлік файлдарды жасау, сақтау және өңдеу әдісі болып табылады, осылайша жазбаларды бір немесе бірнеше кілттер арқылы тізбекті немесе кездейсоқ түрде алуға болады. Индекстелген файлдардағы қажетті файл жазбаларын жылдам алу үшін кілттік өрістердің индексі сақталады. IBM бастапқыда ISAM-ды эВМ үшін жасады, бірақ оны көптеген компьютерлік жүйелерде қолдануға болады. ISAM термині бірнеше байланысты ұғымдарды білдіреді: IBM ISAM өнімі және оның алгоритмі. Дерек файлдарындағы жазбаларды табу үшін қолданбалы бағдарламалау интерфейсін тікелей пайдаланатын дерекқор жүйесі. Ал реляциялық дерекқор сұранысты оңтайландырушыны қолданады, ол индекстерді автоматты түрде таңдайды. Деректерге тізбекті және кілттік қол жеткізуді қамтамасыз ететін индекстеу алгоритмі. Көптеген дерекқорлар осы мақсатта B-ағашының әртүрлі нұсқаларын қолданады, бірақ бастапқы IBM ISAM және VSAM жүзеге асырылымдары осылай істемеді. Ең жалпы мағынасында, кез келген дерекқор үшін индекс. Индекстерді дерлік барлық дерекқорлар қолданады.

Ұйым

ISAM жүйесінде деректер бастапқыда кілттер тізбегі бойынша рет-ретімен сақталатын, белгілі бір ұзындықтағы өрістерден құралған жазбаларға ұйымдастырылады. Екіншілік жазбалар жиынтығы, индекстер деп аталады, әр жазбаның орналасқан жеріне сілтемелерді қамтиды, бұл жеке жазбаларды толық деректер жиынтығын іздеусіз алуға мүмкіндік береді. Бұл заманауи навигациялық деректер базаларынан өзгеше, онда басқа жазбаларға сілтемелер жазбалардың ішінде сақталады. ISAM-ның маңызды жетістігі – индекстердің кішкентай болуы және оларды жылдам іздеуге болады, тіпті толық жадыда, соның арқасында деректер базасы тек қажетті жазбаларға ғана қол жеткізе алады. Деректерге қосымша өзгерістер енгізу үшін басқа деректерді өзгертудің қажеті жоқ, тек тиісті кесте мен индекстерді ғана өзгерту керек. ISAM файлы құрылғанда, индекс түйіндері бекітіледі және кейінірек енгізілген және жойылған жазбалар кезінде олардың сілтемелері өзгермейді (кейін ғана жапырақ түйіндерінің мазмұны өзгереді). Осының салдарынан, егер жапырақ түйініне енгізілген жазбалар саны түйіннің сыйымдылығынан асып кетсе, жаңа жазбалар ағып кету тізбектерінде сақталады. Егер кестеде жоюдан гөрі көп енгізулер болса, осы ағып кету тізбектері біртіндеп өте үлкен болып өседі, бұл жазбаны алуға кеткен уақытқа әсер етеді. Реляциялық деректер базаларын ISAM негізінде кестелер арасындағы байланыстардың дұрыстығын сақтау үшін қосымша логикамен оңай құруға болады. Әдетте, сілтеме ретінде қолданылатын өріс, сыртқы кілт, жылдам іздеу үшін индекстеледі. Бұл тікелей байланысты жазбада сақтаудан баяу болғанымен, деректердің физикалық орналасуы өзгерген жағдайда сілтемені жаңартудың қажеті болмайды. ISAM-ді түсіну және жүзеге асыру оңай, себебі ол негізінен деректер базасына тікелей қол жеткізуден тұрады. Бірақ, әрбір клиент машинасы өзінің әрбір файлға қосылуын басқаруы керек. Бұл өз кезегінде осы файлдарға қарама-қайшы енгізулер жасау мүмкіндігіне әкеледі, соның салдарынан деректер базасының дұрыс еместігіне соқтырады. Мұны болдырмау үшін, кейбір ISAM жүзеге асырулары бүкіл файлды немесе жеке жазбаны құлыптау мүмкіндігін ұсынады. Бірнеше жазбаны құлыптау, егер құлыптаудың алдын алу схемасы қатаң сақталмаса, тұйықталу қаупін тудырады. Құлыптау және тұйықталу мәселелері әдетте клиенттік-серверлік архитектураны қосу арқылы шешіледі, ол клиенттік сұраныстарды реттейді және олардың тәртібін сақтайды. Кейбір ISAM клиенттік-серверлік жүзеге асырулары толық ACID транзакцияларын басқару жүйесін ұсынады. Бұл арнаның, басқару блогының және дискінің жұмыс уақытын арттырды. Кейінгі жүйелерде физикалық және виртуалды жад көлемінің артуымен бұл тиімсіз болып көрінді, содан кейін VSAM жадты пайдалану мен дискілік белсенділік арасындағы қатынасты өзгерту үшін жасалды. ISAM-ның өзін-өзі өзгертетін арна бағдарламаларын пайдалануы кейіннен CP 67-нің OS/360-ты қолдауында қиындықтар тудырды, себебі CP 67 I/O операциясы басталғанда бүкіл арна бағдарламасын тұрақты жадқа көшіріп, виртуалды мекенжайларды нақты мекенжайларға аударды.