ISAM
|
ISAM stands for Indexed Sequential Access Method, a method for storing data for fast retreival. ISAM was originally developed by IBM and today forms the basic data store of almost all databases, both relational and otherwise.
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. A secondary set of hash tables known as indexes contain "pointers" into the tables, allowing individual records to be retrieved without having to search the entire data set. This is a departure from the contemporary navigational databases, in which the pointers to other data were stored inside the records themselves. The key improvement in ISAM is that the indexes are small and can be searched quickly, allowing the database to then access only the records it needs. Additionally modifications to the data do not require changes to other data, only the table and indexes in question.
Relational databases can be easily 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 very simple to understand and implement, as it primarily consists of direct, sequential access to a database file. It is also very inexpensive. The tradeoff 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. 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 SQL, which is a client layer over the underlying data store.
ISAM was replaced at IBM with a methodology called VSAM (Virtual Sequential Access Method). Still later, IBM developed DB2, which, as of 2004, IBM promotes as their primary database management system.