Index Sekventiell åtkomstmetod

Index Sequential Access Method ( ISAM ) är en åtkomstmetod som utvecklades av IBM i slutet av 1960- talet för dataposter i en fil som tillåter både (sorterad) sekventiell och slumpmässig ( slumpmässig ) indexbaserad åtkomst.

En fil kan ha flera olika index. Varje index definierar en annan ordning på posterna, beroende på vilken information som söks. Till exempel kan en kundfil sorteras alfabetiskt efter efternamnet eller numeriskt enligt postnummer, förutsatt att motsvarande index finns.

Indexsekvensåtkomstmetoden, som också används i databassystem , gör det möjligt att optimera åtkomsthastigheten beroende på uppgiften. Eftersom de första COBOL standarder runt 1970 har ISAM varit en del av standarden på COBOL språk i filkontroll punkt. En mycket tidig vidareutveckling av ISAM, även från IBM, men inte standardiserad, är Virtual Storage Access Method (VSAM).

Förvaringsstruktur

Image
Index sekventiell filorganisation: Index på en nivå

De dataposter grupperas i block eller sidor. Ett enkelt index refererar till den lägsta nyckeln i ett datablock i huvudfilen, som sorteras i stigande ordning. En enkel indexfil på en nivå består av indexposter som hänvisar till datablock i huvudfilen. Som regel är indexet flera nivåer, med indexnivåerna i sin tur organiserade index-sekventiellt.

  • Sök i en ISAM-fil: Sök nyckeln sekventiellt i indexfilen tills den hittas eller indexet är större än den nyckel du letar efter. I det andra fallet, med ett flernivåindex, är det nu känt vilken indexsida den sökande nyckeln kan vara på. Sökprocessen fortsätter där tills nyckeln hittas eller inte hittas.
  • Infoga : Sök först och kontrollera sedan om den nya meningen passar på sidan. Om ja, infoga sorterad, om inte, infoga ny post på nästa sida eller överflödssida och uppdatera indexsidor.
  • Radera : Sök först och markera sedan meningen som borttagen . Om det var första meningen på sidan eller om sidan nu är tom, justerar du indexsidor.

En nackdel med ISAM-filorganisationen kan ses från insättnings- och raderingsåtgärderna. Huvudfilen och indexet är statiska, nya poster lagras ofta i överflödesblock och detta saktar ner sökningarna. Snabbt växande eller ändrade filer måste därför regelbundet omorganiseras, vilket är tidskrävande.

Metod 2

Ovanstående metod har inte använts på länge. Succession var en träd / lövstrukturbaserad metod. Detta gjorde det möjligt att genom några jämförelser avgöra var den sökta meningen var eller borde infogas.

Strukturen för nyckeln till Isam-filen (index).

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

Första posten i början av filen ( root ).

Exempel COBOL

Image
Avsnitt för filkontroll med ram

Bilden visar filkontrollsektionen för en ISAM-fil en modern COBOL - kompilator :

  • VÄLJ ... TILLÄGG TILL: Tilldelning av externt filnamn till internt filnamn
  • MED KOMPRESSION | MED Kryptering: valfritt med komprimering eller kryptering
  • ORGANISATION är indexerad
  • ÅTKOMSTLÄGE ÄR SEKVENTIELL RANDOM | DYNAMIC: alternativt en av de tre åtkomstmetoderna. Sekventiellt efter index, eller båda, d.v.s. H. gånger via index, sekventiellt från denna startpunkt och vice versa.
  • RECORD KEY IS key-name [= seg-name ...] [WITH [NO] DUPLICATES]] ...: (primär) -tangenten kan bestå av flera segment, dvs. H. enskilda fält i dataposten kan dubbla nycklar tillåtas. Fälten, av vilka endast delar kan användas som (delvis) index, ska - som vanligt i COBOL - definieras i FILBESKRIVNING.
  • ALTERNATER RECORD KEY IS ...: ytterligare index kan definieras.
  • LÅSLÄGE ÄR EXKLUSIVT AUTOMATISKT HANDBOK ...:
  • BOKA {nummer} ALTERNAT OMRÅDE:
  • SAMMANFATTANDE SEKVENS ÄR alfabetets namn:

ISAM idag

"ISAM-filer används fortfarande idag, nämligen när användningen av en relationsdatabas inte riktigt är värdefull (datavolym, struktur, prestanda, kostnader etc.)." Det finns förmodligen fortfarande mer data lagrad i ISAM-filer än i relationsdatabaser. Det handlar inte bara om data från COBOL-miljöer, men särskilt under UNIX har den indexsekventiella åtkomstmetoden funnit en utbredd användning under övergången från mainframe till UNIX-system tack vare implementeringen av C-ISAM av Informix . Baserat på ISAM utvecklades också MyISAM- databassystemet , vilket implementeras i det mycket använda MySQL- databashanteringssystemet . Dessutom är Microsofts Extensible Storage Engine (ESE, även känd som Jet Blue ) baserad på ISAM. ESE serverar (e) z. B. som en databas för Microsoft Active Directory och Exchange .

webb-länkar