Records of all kinds often have some sort of unique identifier associated with them, so as to be able to distinguish one from the other. In computerized databases, the identifier is often a key used for retrieval of a particular record or records from the vast numbers of records that such databases can contain.
The needs or preferences of entities that maintain large databases of records may dictate particular, varying formats for record identifiers. Departments of governments, for example, may establish regulations mandating certain formats that can vary from department to department. The business world may have needs for record identifiers that vary in as many ways as individual businesses can vary. Businesses that do work pursuant to government contracts may in particular need to conform their record identification formats to government regulations. According to such regulations or other considerations, record identifiers might, for example, need to include mixtures of numbers and letters in specific combinations or sequences. For instance, for a group of related records, a part of their respective identifiers might be required to serialize the records to differentiate between records in the group.
To meet the various requirements for record identifiers, past approaches in software to providing record identifiers have tended to be ad hoc and project-specific, and as a consequence, somewhat inflexible. This has meant that changing existing identifier formats or introducing new formats for new kinds of records has entailed considerable effort in terms of coding, because reworking of existing code or writing of new code has been needed.