If a table is opened for write, the process of storing a table writes it into the library (DASD).
tableBASE tables are stored in optimized form in tableBASE libraries to minimize disk storage requirements and load time. tableBASE handles all of the physical I/O. Automatic generation control is provided for up to nine generations, with immediate access to any previous generation. Automatic table invocation based on time, date, or other criteria allows development of test versions and pending versions.
As tables are created, updated, and deleted, tableBASE automatically reorganizes table library space; dataset compression is unnecessary. The tableBASE memory environment and directory maintenance routines support all-or-nothing update failure protection. If the system or application terminates abnormally for any reason during update processing, the previous version of the table remains in effect. Only when the update is functionally and physically complete is the new generation accepted. This is important for tables holding complete sets of information, where each row of the table is expected to be in sync with all other rows. Each row in the table shares interdependencies with every other row. Sometimes these interdependencies are subtle. For example, in a table of currency exchange rates, all rows are assumed to be current at the same date and time—partial updates are unacceptable.
Each time a table is stored, a new generation of the table is created. With up to nine generations of each table available, users can recover from a bad update by replacing invalid table generations with older generations of the table.