1. A method for protecting a database system from external analysis and attack, the method comprising: disguising the size of data blocks targeted for storage on a storage medium; disguising the frequency with which data blocks are written to the storage medium; and disguising the location at which data blocks are stored on the storage medium, including relocating data blocks that were previously stored on the storage medium to new, quasi-randomly selected locations on the storage medium when said data blocks are rewritten or updated.