# INP (database)

INP (pronounced "imp") is a database management system including forms processing data entry. It consists of over fifty utility programs for database access and support, batch updating, and report generation. It was developed by Bob Tidd at the University of California, Berkeley in 1976, and predated many of the commercial and opensource databases in use today. It is still in use on a wide variety of systems at the university and associated institutions.

## Features

An INP database may contain up to 100K records of up to 1024 characters (expandable). Up to ten database indexes are allowed. They are btrees of no more than three levels. Databases must contain fixed length records, but some utilities handle variable length, delimited field records. A newline (RETURN) character at the end of each record makes INP databases accessible to the entire array of Unix utilities, including editors, sort, grep, awk, etc.
In the data entry and update program, each data field is displayed separately on the screen with a descriptive label. Fields may be skipped during entry or duplicated from the previous record.
INP validates each data field as it is entered. Validation types vary from simple alphabetic/numeric through ranges of numbers to tables of all allowable values. If a field is incorrect INP displays the validation criteria, beeps, and returns you to the start of the offending field. A mechanism exists to override validation checks. An optional audit trail of changes is maintained for reference and recovery.
The database access program is already compiled. It reads database description files at run time. The record layout and validation criteria are specified in one schema file. The specifications for the screen displays are entered into format files. Both are created by the user with any text editor. A variety of formats may be created to view or update different parts of a database record.
INP is implemented on the DEC VAX and PDP-11 under BSD Unix or ULTRIX. Versions are available for SunOS and Onyx. Several operators can simultaneously access or update information in the same database file.
Typists and others with little data processing experience find INP easy to use, and they usually become comfortable with the computer related processes rapidly. Like most editors, INP has many command options, but the basic few are easily learned. INP is very forgiving, helpful and bulletproof about data entry and command errors.

## Applicability

INP can be used for any small to medium database or data entry task. Basic applications of INP can be designed and implemented by persons familiar with Unix and the text editor, but without programming experience.
INP has two powerful sets of options. The elf package allows user supplied coded functions (in the C programming language) for special validation and arbitrarily complex operations including forked programs to occur when various INP commands are requested by the operator. This opens up "sky's the limit" possibilities for projects implemented using INP.
INP comes with an extensive library of functions, including the keyed database access package, which can be incorporated into custom applications.