whose records have the indicated secondary key value figure illustrates this approach now there is no duplication of secondary key valuespossibly yielding considerable space savings the cost of insertion and deletion is reducedbecause only one row of the table need be adjusted note that new row is added to the array when new secondary key value is added this might lead to moving many recordsbut this will happen infrequently in applications suited to using this arrangement drawback to this approach is that the array must be of fixed sizewhich imposes an upper limit on the number of primary keys that might be associated with particular secondary key furthermorethose secondary keys with fewer records than the width of the array will waste the remainder of their row better approach is to have one-dimensional array of secondary key valueswhere each secondary key is associated with linked list this works well if the index is stored in main memorybut not so well when it is stored on disk because the linked list for given key might be scattered across several disk blocks consider large database of employee records if the primary key is the employee' id number and the secondary key is the employee' namethen each record in the name index associates name with one or more id numbers the id number index in turn associates an id number with unique pointer to the full record on disk the secondary key index in such an organization is also known as an inverted list or inverted file it is inverted in that searches work backwards from the secondary key to the primary key to the actual data record it is called list because each secondary key value has (conceptuallya list of primary keys associated with it figure illustrates this arrangement herewe have last names as the secondary key the primary key is four-character unique identifier figure shows better approach to storing inverted lists an array of secondary key values is shown as before associated with each secondary key is pointer to an array of primary keys the primary key array uses linked-list implementation this approach combines the storage for all of the secondary key lists into single arrayprobably saving space each record in this array consists of primary key value and pointer to the next element on the list it is easy to insert and delete secondary keys from this arraymaking this good implementation for disk-based inverted files isam how do we handle large databases that require frequent updatethe main problem with the linear index is that it is singlelarge array that does not lend itself to updates because single update can require changing the position of every key