ISAM (an acronym for indexed sequential access method) is a method for creating, maintaining, and manipulating indexes of key-fields extracted from random data file records to achieve fast retrieval of required file records. Today the term is used for several related concepts: In an ISAM system, data is organized into records which are composed of fixed length fields.Records are stored sequentially, originally to speed access on a tape system.Multiple keys, overlapping keys and key compression within the hash tables are supported.A utility to define/redefine keys in existing files is provided.When an ISAM file is created, index nodes are fixed, and their pointers do not change during inserts and deletes that occur later (only content of leaf nodes change afterwards).As a consequence of this, if inserts to some leaf node exceed the node's capacity, new records are stored in overflow chains.Typically the field being used as the link, the foreign key, will be indexed for quick lookup.While this is slower than simply storing the pointer to the related data directly in the records, it also means that changes to the physical layout of the data do not require any updating of the pointers—the entry will still be valid.
With increased physical and virtual memory sizes in later systems this was seen as inefficient, and VSAM was developed to alter the tradeoff between memory usage and disk activity.
This is typically solved with the addition of a client-server framework which marshals client requests and maintains ordering.
This is the basic concept behind a database management system (DBMS), which is a client layer over the underlying data store.
ISAM's use of self-modifying channel programs later caused difficulties for CP-67 support of OS/360, since CP-67 copied an entire channel program into fixed memory when the I/O operation was started and translated virtual addresses to real.
I am trying to update data in a text file (with bound controls...) and I get an error message "Updating Data in a linked table not supported by this ISAM" Double Dutch to me... Once you've finished editing write the data back to the file - it's a bit crass I know but it's the only way I've found of doing it so far (this would be a single user solution).