Copyright © 2002 Katrin Becker 1998-2002 Last Modified May 17, 200010:19 AM
***unfinished***
The File Architect's Book of Rules
If it looks like too much work, try and find a simpler way.
Store once, process often.
Make it faster by doing less.
Compute information when storage is limited (eg. using address links rather than actual addresses in computed chaining)
Store only information that needs to be accessed and cannot be readily computed (i.e. if we have a date of birth we don't need to store age).
Spend additional time structuring information prior to its use to reduce subsequent processing time (eg. inverted files)
Subdivide the search space so only a portion needs to be considered when searching (classification hashing; B*Trees).
Use a separate data structure to control organization of data in a storage structure (eg. many statistical and dictionary methods of data compression; tournament trees for merge)
Keep some condensed information in primary memory to improve access time to the actual data (eg. maintaining bit strings to identify occupied locations for linear quotient insertions)
Order data to improve search efficiency (eg. binary search).
Consider storing information according to different characteristics.
Use a level of indirection to gain flexibility in accessing information (eg. Grid Files)
If the information is not readily accessible for the task at hand in a given form, then convert it to something more convenient.
Use additional storage to save processing time (text signatures; Bloom Filters)
Search an encoded form of the information rather than the actual information (eg. signature hashing; Bloom Filter)