Indeks Sekvensiell tilgangsmetode

Index Sequential Access Method ( ISAM ) er en tilgangsmetode utviklet av IBM på slutten av 1960-tallet for dataposter i en fil som tillater både (sortert) sekvensiell og tilfeldig ( tilfeldig ) indeksbasert tilgang.

En fil kan ha flere forskjellige indekser. Hver indeks definerer en annen rekkefølge på postene, avhengig av hvilken informasjon det søkes etter. For eksempel kan en kundefil sorteres alfabetisk etter etternavnet eller numerisk etter postnummeret, forutsatt at tilsvarende indekser eksisterer.

Indeks sekvensiell tilgangsmetode, som også brukes i databasesystemer , gjør det mulig å optimalisere tilgangshastigheten avhengig av oppgaven. Siden de første COBOL- standardene rundt 1970 har ISAM vært en del av standarden på COBOL-språket i avsnittet om filkontroll . En veldig tidlig videreutvikling av ISAM, også fra IBM, men ikke standardisert, er Virtual Storage Access Method (VSAM).

Lagringsstruktur

Image
Indeks sekvensiell filorganisasjon: Ett-nivå indeks

De data poster er gruppert i blokker eller sider. En enkel indeks refererer til den laveste nøkkelen til en datablokk i hovedfilen, som er sortert i stigende rekkefølge. En enkel indeksfil på ett nivå består av indeksoppføringer som refererer til datablokker i hovedfilen. Som regel er indeksen flernivå, med indeksnivåene igjen organisert indeks-sekvensielt.

  • Søk i en ISAM-fil: Søk nøkkelen sekvensielt i indeksfilen til den blir funnet eller indeksen er større enn nøkkelen du leter etter. I det andre tilfellet, med en flernivåindeks, er det nå kjent hvilken indeksside den søkt nøkkelen kan være på. Søkeprosessen fortsetter der til nøkkelen blir funnet eller ikke funnet.
  • Sett inn : Først søk , så sjekk om den nye setningen passer på siden. Hvis ja, sett inn sortert, hvis ikke, sett inn en ny post på neste side eller overløpsside og oppdater indeksider.
  • Slett : Først søk , deretter markere setning som slettet . Hvis det var den første setningen på siden, eller siden er tom, kan du justere indeksider.

En ulempe med ISAM-filorganisasjonen kan sees fra innsettings- og slettingsoperasjonene. Hovedfilen og indeksen er statiske, nye poster lagres ofte i overløpsblokker, og dette bremser søkene. Raskt voksende eller endrede filer må derfor reorganiseres regelmessig, noe som er tidkrevende.

Metode 2

Ovennevnte metode har ikke blitt brukt på veldig lenge. Succession var en tre / bladstrukturbasert metode. Dette gjorde det mulig å bestemme ved noen få sammenligninger hvor den søkte setningen var eller skulle settes inn.

Struktur av nøkkelen til Isam-filen (indeks).

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

Første oppføring i begynnelsen av filen ( rot ).

Eksempel COBOL

Image
Avsnitt for filkontroll med ramme

Bildet viser seksjonen for filkontroll for en ISAM-fil, en moderne COBOL - kompilator :

  • VELG ... TILMELD TIL: Tildeling av eksternt filnavn til internt filnavn
  • MED KOMPRESSJON | MED Kryptering: valgfritt med komprimering eller kryptering
  • ORGANISASJON ER INDEKSERT
  • TILGANGMODUS ER SEKVENTIELL RANDOM | DYNAMISK: alternativt en av de tre tilgangsmetodene. Sekvensielt, etter indeks, eller begge deler, dvs. H. ganger via indeks, sekvensielt fra dette utgangspunktet og omvendt.
  • RECORD KEY IS key-name [= seg-name ...] [WITH [NO] DUPLICATES]] ...: (primær) -tasten kan bestå av flere segmenter, dvs. H. enkelte felt i dataposten, kan dupliserte nøkler tillates. Feltene, hvor bare deler kan brukes som en (delvis) indeks, skal - som vanlig i COBOL - defineres i FILBESKRIVELSEN.
  • ALTERNATER RECORD KEY IS ...: ytterligere indekser kan defineres.
  • LÅSEMODUS ER EKSKLUSIV | AUTOMATISK | HÅNDBOK ...:
  • RESERVER {number} ALTERNATE AREA:
  • SAMMENFØLGENDE SEKVENS ER alfabetets navn:

ISAM i dag

"ISAM-filer brukes fortsatt i dag, nemlig når det ikke er verdt å bruke en relasjonsdatabase (datavolum, struktur, ytelse, kostnader osv.)." Det er sannsynligvis fortsatt mer data lagret i ISAM-filer enn i relasjonsdatabaser. Dette handler ikke bare om data fra COBOL-miljøer, men spesielt under UNIX, har indeks-sekvensiell tilgangsmetode funnet utbredt bruk under overgangen fra hovedramme til UNIX-systemer takket være implementeringen av C-ISAM av Informix . Basert på ISAM ble også MyISAM- databasesystemet utviklet, som er implementert i det mye brukte MySQL- databasesystemet . I tillegg er Microsofts Extensible Storage Engine (ESE, også kjent som Jet Blue ) basert på ISAM. ESE serverer (e) z. B. som en database for Microsoft Active Directory og Exchange .

weblenker