Metodă de acces secvențial index

Metoda de acces secvențial index ( ISAM ) este o metodă de acces dezvoltată de IBM la sfârșitul anilor 1960 pentru înregistrări de date într-un fișier care permite atât accesul secvențial (sortat), cât și aleator ( aleatoriu ) bazat pe index.

Un fișier poate avea mai mulți indici diferiți. Fiecare index definește o ordine diferită a înregistrărilor, în funcție de ce informații sunt căutate. De exemplu, un fișier client poate fi sortat alfabetic în funcție de prenume sau numeric în funcție de codul poștal, cu condiția să existe indicii corespunzători.

Metoda de acces secvențial index, care este, de asemenea, utilizată în sistemele de baze de date , permite optimizarea vitezei de acces în funcție de sarcină. De la primele standarde COBOL în jurul anului 1970, ISAM a făcut parte din standardul limbajului COBOL în paragraful de control al fișierelor . O dezvoltare ulterioară foarte timpurie a ISAM, de asemenea de la IBM, dar nu standardizată, este Metoda de acces la stocarea virtuală (VSAM).

Structura de depozitare

Image
Organizarea fișierelor secvențiale index: index pe un nivel

Cele înregistrările de date sunt grupate în blocuri sau pagini. Un index simplu se referă la cea mai mică cheie a unui bloc de date din fișierul principal, care este sortată în ordine crescătoare. Un fișier index simplu, cu un singur nivel, constă din intrări index care se referă la blocuri de date din fișierul principal. De regulă, indexul este pe mai multe niveluri, nivelurile indexului fiind la rândul lor organizate în ordine secvențială.

  • Căutare într-un fișier ISAM: Căutați secvențial cheia în fișierul index până când este găsit sau indexul este mai mare decât cheia pe care o căutați. În al doilea caz, cu un index pe mai multe niveluri, se știe acum pe ce pagină de index se poate afla cheia căutată. Procesul de căutare continuă acolo până când cheia este găsită sau nu este găsită.
  • Inserare : mai întâi căutați , apoi verificați dacă noua propoziție se potrivește pe pagină. Dacă da, introduceți sortate, dacă nu, introduceți o înregistrare nouă în pagina următoare sau în pagina de depășire și actualizați paginile index.
  • Ștergere : mai întâi căutați , apoi marcați propoziția ca ștearsă . Dacă a fost prima propoziție din pagină sau pagina este acum goală, reglați paginile index.

Un dezavantaj al organizării fișierului ISAM poate fi văzut din operațiile de inserare și ștergere. Fișierul principal și indexul sunt statice, înregistrările noi sunt adesea stocate în blocuri de depășire și acest lucru încetinește căutările. Prin urmare, creșterea rapidă sau schimbarea fișierelor trebuie reorganizate în mod regulat, ceea ce necesită mult timp.

Metoda 2

Metoda de mai sus nu a fost folosită de foarte mult timp. Succesiunea a fost o metodă bazată pe structura copacului / frunzei. Acest lucru a făcut posibilă determinarea prin câteva comparații unde a fost sau ar trebui inserată propoziția căutată.

Structura cheii fișierului Isam (index).

 *****************************************************************
 *   BLATT-NR                  *                 VATER           *
 *****************************************************************
 *                                                               *
 *                  BLATTINHALT (KEY)                            *
 *                                                               *
 *****************************************************************
 *   LINKER SOHN               *             RECHTER SOHN        *
 *****************************************************************

Prima intrare la începutul fișierului ( rădăcină ).

Exemplu COBOL

Image
Paragraf de control al fișierului cu cadru

Imaginea prezintă secțiunea de control fișier pentru un fișier ISAM o modernă COBOL - compilator :

  • SELECTAȚI ... ASIGNARE LA: Atribuirea numelui fișierului extern la numele fișierului intern
  • CU COMPRESIE | CU CIFRARE: opțional cu compresie sau criptare
  • ORGANIZAREA ESTE INDEXATĂ
  • MODUL DE ACCES ESTE SECVENȚIAL | RANDOM | DINAMIC: alternativ una dintre cele trei metode de acces. Secvențial, prin index sau ambele, adică H. ori prin index, secvențial de la acest punct de plecare și invers.
  • TASTĂ DE ÎNREGISTRARE ESTE key-name [= seg-name ...] [WITH [NO] DUPLICATES]] ...: Tasta (primară) poate consta din mai multe segmente, i. H. în câmpurile individuale ale înregistrării de date, cheile duplicate pot fi permise Câmpurile, din care numai părțile pot fi utilizate ca index (parțial), trebuie - ca de obicei în COBOL - să fie definite în DESCRIEREA FIȘIERULUI.
  • TASTĂ DE ÎNREGISTRARE ALTERNATRĂ ESTE ...: se pot defini indicii suplimentari.
  • MODUL DE BLOCARE ESTE EXCLUSIV | AUTOMATIC | MANUAL ...:
  • REZERVĂ {număr} ZONĂ ALTERNATIVĂ:
  • SECVENȚA DE COLLARE ESTE numele alfabetului:

ISAM astăzi

„Fișierele ISAM sunt folosite și astăzi, și anume ori de câte ori utilizarea unei baze de date relaționale nu merită cu adevărat (volumul de date, structura, performanța, costurile etc.).” Probabil că există încă mai multe date stocate în fișierele ISAM decât în ​​bazele de date relaționale. Nu este vorba doar de date din mediile COBOL, dar mai ales în cadrul UNIX, metoda de acces secvențial index a găsit o utilizare pe scară largă în timpul tranziției de la sistemele mainframe la sistemele UNIX datorită implementării C-ISAM de la Informix . Pe baza ISAM, a fost dezvoltat și sistemul de baze de date MyISAM , care este implementat în sistemul de gestionare a bazelor de date MySQL utilizat pe scară largă . În plus, motorul de stocare extensibil Microsoft (ESE, cunoscut și sub numele de Blue Blue ) se bazează pe ISAM. ESE servește (e) z. B. ca bază de date pentru Microsoft Active Directory și Exchange .

Link-uri web