7.1.6+Direct+file+organization

Keep in mind that files are simply a series of bytes. Say you could keep track of the number of records written in a file, then you could pin-point a certain record at position n by adding an offset to the starting position of the file:
 * __Direct File Organization__**

Offset = number of records * record length Note that the first record is record zero.
 * Example: say we have a record size of 32 bytes. The 10th record would start at an offset position calculated as follows and have a length of 32 bytes:

32 * 10 = 320th byte position. Therefore, to access to the record in a certain position, one has to provide the offset position of this record. (This differs between different operating systems and programming languages). How does the user remember the position of data in a file? Next Available Record Location = 100 Year = 2000 Check digit = 2000 mod 100 = 0
 * Once the file name and position of the record in the file is provided to the operating system, the operating system can place the read head over the according track and sector of the HDD.
 * The operating system knows where which file is located by using a file management system to keep track of the start of files on the HDD.
 * The actual reading of the data from the HDD is just as in any other form of access. The data is then stored in variables (which need to be the of the same type) defined in the program reading the data.
 * Key hashing
 * User enters the key desired (ex. surname) and the computer converts this key into a record number to allow for direct access
 * Identification numbers (ID)
 * This also help to keep track of how many records already exist (as each ID is unique)
 * Example of generating an ID (taken from "Computer Science Java Enabled"):
 * This would give an ID of 20001000, for example.
 * To read the record, the ID would be entered and the correct record can be found and read.

Example of a basic file direct access algorithm (taken from "Computer Science Java Enabled"): (assuming record 1 has the number 0)

Start set lengthOfRecord = length of record in bytes open file get recordNumber moveto byte position recordNumber*lengthOfRecord read record edit record write record close file End

Last edited: Jocbe Last update: 26. September 201

Sources:
 * Jones, Richard. __Computer Science Java Enabled.__ Victoria: IBID Press, 2004.