ISAM (An Acronym For Indexed Sequential Access Method) Is A Method For Creating, Maintaining, and
ISAM (An Acronym For Indexed Sequential Access Method) Is A Method For Creating, Maintaining, and
ISAM (an acronym for indexed sequential access method) is a method for creating, maintaining, and
manipulating computer files of data so that records can be retrieved sequentially or randomly by one or
more keys. Indexes of key fields are maintained to achieve fast retrieval of required file records in Indexed
files. IBM originally developed ISAM for mainframe computers, but implementations are available for most
computer systems.
Contents
Organization
OpenVMS
Design considerations
ISAM-style implementations
See also
References
Organization
In an ISAM system, data is organized into records which are composed of fixed length fields, originally
stored sequentially in key sequence. Secondary set(s) of records, known as indexes, contain pointers to the
location of each record, allowing individual records to be retrieved without having to search the entire data
set. This differs from the contemporaneous navigational databases, in which the pointers to other records
were stored inside the records themselves. The key improvement in ISAM is that the indexes are small and
can be searched quickly, possibly entirely in memory, thereby allowing the database to access only the
records it needs. Additional modifications to the data do not require changes to other data, only the table
and indexes in question.
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. If there are many
more inserts than deletions from a table, these overflow chains can gradually become very large, and this
affects the time required for retrieval of a record.[4]
Relational databases can easily be built on an ISAM framework with the addition of logic to maintain the
validity of the links between the tables. 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.
ISAM is simple to understand and implement, as it primarily consists of direct access to a database file. The
trade-off is that each client machine must manage its own connection to each file it accesses. This, in turn,
leads to the possibility of conflicting inserts into those files, leading to an inconsistent database state. To
prevent this, some ISAM implementations[5][6] provide whole-file or individual record locking
functionality. Locking multiple records runs the risk of deadlock unless a deadlock prevention scheme is
strictly followed. The problems of locking, and deadlock are typically solved with the addition of a client-
server framework which marshals client requests and maintains ordering. Full ACID transaction
management systems are provided by some ISAM client-server implementations.[5] These are the basic
concepts behind a database management system (DBMS), which is a client layer over the underlying data
store.
ISAM was replaced at IBM with a methodology called VSAM (virtual storage access method). Still later,
IBM developed SQL/DS and then DB2 which, as of 2004, IBM promotes as their primary database
management system. VSAM is the physical access method used in DB2.
OpenVMS
The OpenVMS operating system uses the Files-11 file system in conjunction with RMS (Record
Management Services). RMS provides an additional layer between the application and the files on disk that
provides a consistent method of data organization and access across multiple 3GL and 4GL languages.
RMS provides four different methods of accessing data; sequential, relative record number access, record
file address access, and indexed access.
The indexed access method of reading or writing data only provides the desired outcome if in fact the file is
organized as an ISAM file with the appropriate, previously defined keys. Access to data via the previously
defined key(s) is extremely fast. Multiple keys, overlapping keys and key compression within the hash
tables are supported. A utility to define/redefine keys in existing files is provided. Records can be deleted,
although "garbage collection" is done via a separate utility.
Design considerations
ISAM was developed at a time when computer memory was a scarce resource. Accordingly IBM designed
the system to use a minimum amount of memory. The tradeoff was that the Input/Output channel, control
unit, and disk were kept busier. An ISAM file consists of a collection of data records and two or three
levels of index. The track index contains the highest key for each disk track on the cylinder it indexes. The
cylinder index stores the highest key on a cylinder, and the disk address of the corresponding track index.
An optional master index, usually used only for large files, contains the highest key on a cylinder index
track and the disk address of that cylinder index. Once a file is loaded data records are not moved; inserted
records are placed into a separate overflow area. To locate a record by key the indexes on disk are searched
by a complex self-modifying channel program.[7] This increased the busy time of the channel, control unit,
and disk. 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.
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 addresses.[8]
ISAM-style implementations
Advantage Database Server database manager
Berkeley DB
Btrieve
FairCom DB[5]
C-ISAM
DataFlex proprietary database
dBase and related products Clipper and Foxpro
Digital Equipment Corporation Record Management Services
Enscribe is the HP Tandem structured file access method
Extensible Storage Engine
Access Database Engine (ACE and formerly JET) used by Microsoft Access
MySQL implements and extends ISAM as MyISAM
Paradox
pblIsam GPL implementation written in C[9]
Raima database manager
Superbase database family
dbm DBM and Flat File databases working in tandem
See also
Sequential access memory (SAM)
Virtual storage access method (VSAM)
Flat file
NoSQL
dbm
References
1. Chin, Y.H. (1975). "Analysis of VSAM's free-space behavior". VLDB '75: Proceedings of the
1st International Conference on Very Large Data Bases: 514–515.
2. Bogue, Robert L. (2004-02-13). "Explore the differences between ISAM and relational
databases" (https://www.techrepublic.com/article/explore-the-differences-between-isam-and-
relational-databases/). Retrieved 17 October 2014.
3. Larson, Per-Åke (1981). "Analysis of index-sequential files with overflow chaining". ACM
Transactions on Database Systems. 6 (4).
4. Ramakrishnan Raghu, Gehrke Johannes - Database Management Systems, McGraw-Hill
Higher Education (2000), 2nd edition (en) page 252
5. "FairCom ISAM API for C - Developers Guide" (https://docs.faircom.com/doc/ctreeplus/).
6. "C-ISAM Programmers Manual" (http://publibfp.dhe.ibm.com/epubs/pdf/7897b.pdf) (PDF).
7. IBM Corporation (1973). DOS/VS LIOCS Volume 3: DAM and ISAM Logic (https://archive.or
g/details/bitsavers_ibm370DOSVIOCSVolume3DAMandISAMLogicRel28Jun73_3688611
8). pp. 63 (https://archive.org/details/bitsavers_ibm370DOSVIOCSVolume3DAMandISAMLo
gicRel28Jun73_36886118/page/n62)–72. Retrieved Dec 30, 2018.
8. IBM Corporation (1972). IBM Virtual Machine Facility /370: Planning Guide (http://www.bitsa
vers.org/pdf/ibm/370/VM_370/Release_1/GC20-1801-0_VM370_Planning_Guide_Aug72.p
df) (PDF). p. 45. Retrieved Jan 8, 2018.
9. Graf, Peter. "pblIsamFile Implementation" (http://www.mission-base.com/peter/source/pbl/do
c/isamfile.html). mission-base.com. Retrieved Sep 8, 2017.
Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using
this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia
Foundation, Inc., a non-profit organization.