File architecture overview

From m204wiki
Revision as of 02:32, 13 March 2013 by Rob (talk | contribs)
Jump to navigation Jump to search

Summary

A Model 204 file consists of one or more data sets. Each data set consists of fixed-length physical records called pages.

All Model 204 files have the same page size,6184 bytes.

Internally, these pages are organized into tables: the File Control Table; Table A; Table B; Table C; Table D; Table E; and Table X with any pages in the file, not allocated to one of these considered Free Space.


The components of a Model 204 File

Upload failed with Could not create directory "mwstore://local-backend/local-public/7/74". message?


File Control Table

The File Control Table Contains file parameter settings, data set or file definition names of all data sets in the file, the status of the file, and other control information. The FCT is 8 pages.


The Internal File Directory

Table A contains three structures:

A dictionary of the fieldgroup / field names and their attributes.

Some attributes (notably 'CODED') require lists of values to be maintained. These lists are stored either in the FEW-VALUED or MANY-VALUED structures.

Table A usually is small in relation to the rest of the file. The field name section in particular should be as small as possible to aid efficient access, especially if your site uses field name variables


Data

Records

Data Tables

Table B contains (at least) the base data of all the records in the file. These base records contain pointers to any extensions which exist (whether they are elsewhere in Table B or in Table X).

Table X when enabled, holds only any and all extension records. Table B is then used to store only base records, thus, maximizing the possible number of records can be stored regardless of the number of extension records.

Table E (when enabled) contains Large Object data for the file. The pointer to the starting point of the LOB is contained in Table B or X.


Indexing

The Indexing structures necessary for direct retrieval of records are contained in Tables C and D.

There are two types of indexes, both of which utilize Table D Bitmap Pages and List Pages:

Index Type Description
Ordered Index Is composed of the Ordered Index B-tree, contained in Table D, for ORDERED fields along with either IMMEDiate pointers to the record in Table B,
or a secondary index (of list or bitmap pages) located in Table D.
Hashed Index Is composed of Table C, which indexes KEY and NUMERIC RANGE fields, along with either a single
direct pointer (per segment) to a base record in Table B or or a secondary index (of list or bitmap pages) located in Table D.


Table C contains a series of entries every Field Value Pair combination that occurs in the file for fields defined as KEY. There are also many series of entries for every Field Value Pair that occurs for fields that have the NUMERIC RANGE attribute.

The series consists of an entry cell, chained to cells with an entry for any segment that contains one or more occurrences of the Field Value Pair. If a Field Value Pair is unique within a segment, the Table C cell contains the IRN of the Table B record in which the field occurs. If the field name = value pair is not unique in the segment, the Table C cell contains a pointer to a bitmap or list page in Table D (as described above).


Table D contains: the Ordered Index B-tree node pages, which contain the values and record accessing information for all ORDERED fields; as well as the bitmap and list pages described above.

This includes the Existence Bit Map

Table D can be expanded with the INCREASE command.


Procedures and Miscellaneous Structures

Table D also contains a few other structures:

It contains procedure (code)and structures used to mange them: a procedure dictionary (used to store procedure names and aliases); and an Access Control Table (used to map user and procedure classes).

It contains a reserved area (DPGSRES) that primarily provides additional space for the transaction back out facility.

A map of the Preallocated Fields (used whenever a new records is stored) is also contained in Table D. This map can be seen by the DISPLAY RECORD command.