An indexed file is a computer file with an index that allows easy random access to any record given its file key.
The key must be such that it uniquely identifies a record. If more than one index is present the other ones are called alternate indexes. The indexes are created with the file and maintained by the system.
IBM supports indexed files with the Indexed Sequential Access Method (ISAM) on OS/360 and successors. IBM virtual storage operating systems added VSAM, which supports indexed files as Key Sequenced Data Sets (KSDS), with more options. Support for indexed files is built into COBOL[1] and PL/I.[2] Other languages with more limited I/O facilities such as C support indexed files through add-on packages in a runtime library such as C-ISAM.[3] Some of Digital's operating systems, such as OpenVMS, support indexed file I/O using the Record Management Services.
In recent systems, relational databases are often used in place of indexed files.
The COBOL language supports indexed files with the following command in the FILE CONTROL
section ORGANIZATION IS INDEXED
IBM PL/I uses the file attribute ENVIRONMENT(INDEXED)
or ENVIRONMENT(VSAM)
to declare an indexed file.