A method and system for compressing and decompressing read only data in
records that have a fixed size. A plurality of records are divided into
segments having a predetermined size. For each segment, the records are
arranged in a table with rows for each record and a column for each field
in each record. The width of each column of repeated data is compressed to
zero bits and the repeated data is referenced in a header of the segment.
The width of each column of integer data is compressed to the minimum
number of bits required to represent the largest integer value in the
fields of the column. Floating point data in each column is converted to
integer data and the width of the each column with converted integer data
is set to the minimum width necessary to represent the largest converted
integer in each column. The conversion to integer data is calculated for
floating point and real numbers with a minimum precision exponent that is
stored in the header for the segment. Floating point data is cleaned when
it is converted to integer data. The information in the header is employed
to decompress the compressed records in the segment. The decompression
lends itself well to fast random access of secondary storage devices.
Een methode en een systeem om gelezen slechts gegevens in verslagen samen te persen en te decompresseren die een vaste grootte hebben. Een meerderheid van verslagen is verdeeld in segmenten die een vooraf bepaalde grootte hebben. Voor elk segment, worden de verslagen geschikt in een lijst met rijen voor elk verslag en een kolom voor elk gebied in elk verslag. De breedte van elke kolom van herhaalde gegevens wordt samengeperst aan nul beetjes en het herhaalde gegeven wordt van verwijzingen voorzien in header van het segment. De breedte van elke kolom van geheelgegevens wordt aan het minimumaantal beetjes samengeperst dat wordt vereist om de grootste geheelwaarde op het gebied van de kolom te vertegenwoordigen. Het drijvend puntgegeven in elke kolom wordt omgezet in geheelgegevens en de breedte van de elke kolom met omgezette geheelgegevens wordt aan de minimumbreedte noodzakelijk geplaatst om het grootste omgezette geheel in elke kolom te vertegenwoordigen. De omzetting in geheelgegevens wordt berekend voor drijvend punt en echte aantallen met een minimumprecisieexponent die in header voor het segment wordt opgeslagen. Het drijvend puntgegeven wordt schoongemaakt wanneer het wordt omgezet in geheelgegevens. De informatie in header is aangewend om de samengeperste verslagen in het segment te decompresseren. De decompressie leent zich goed aan snelle directe toegang van secundaire opslaggelegenheden.