Fact table storage in a decision support system environment
AssigneeOracle International Corporation
InventorsDmitry Potapov, Vishwanath Karra, Amit Ganesh, Jonathan Klein
Life of this patent
Estimating the term…
Abstract
A fact table is set up without any dimension columns. The data in the table is ordered according to an order corresponding to the ordering of the dimensions. The table is divided into segments corresponding to contiguous portions of data. The portions of the table containing non-null values for the measures are placed into the segments. The size of the segments and the location segments may be determined according to the density of discontinuities in the data. An indexed organized table is used to determine the beginning and end of each segment of the table, the locations of the discontinuities in the data, and to facilitate accessing the measures of the table.
Claims42
A machine implemented method comprising:
- accessing rows in a database table, wherein:
- each row in the database table corresponds to a dimension-value combination for a set of one or more dimensions;
- the database table is composed of a plurality of segments, wherein each segment of the plurality of segments (a) corresponds to a different contiguous range of dimension-value combinations and (b) includes a different set of one or more rows, wherein at least one segment of the plurality of segments includes multiple rows;
- the boundaries of each segment, of the plurality of segments, are established based on gaps in dimension-value combinations associated with rows stored in the database table;
- each gap covers at least one valid dimension-value combination that is not associated with any row in the database table;
- the segment into which a row of the database table is stored is the segment that corresponds to the contiguous range that includes the dimension-value combination to which the row corresponds;
- within each segment of the plurality of segments, rows of the database table are stored at locations based on the dimension-value combination to which the rows correspond;
- and
- wherein accessing rows in the database table includes, in response to receiving a request that indicates a particular dimension-value combination:
- using the particular dimension-value combination for determining a segment of the plurality of segments that stores a particular row that corresponds to the particular dimension-value combination;
- and
- accessing the particular row within the segment.
A computer-readable storage medium that is readable by a database system, having stored therein at least a database table, wherein:
- each row in the database table corresponds to a dimension-value combination for a set of one or more dimensions;
- the database table is composed of a plurality of segments, wherein each segment of the plurality of segments (a) corresponds to a different contiguous range of dimension-value combinations and (b) includes a different set of one or more rows, wherein at least one segment of the plurality of segments includes multiple rows;
- the boundaries of each segment, of the plurality of segments, are established based on gaps in dimension-value combinations associated with rows stored in the database table;
- each gap covers at least one valid dimension-value combination that is not associated with any row in the database table;
- the segment into which a row of the database table is stored is the segment that corresponds to the contiguous range that includes the dimension-value combination to which the row corresponds;
- and
- within each segment of the plurality of segments, rows of the database table are stored at locations based on the dimension-value combination to which the rows correspond;
- the database table (a) does not store values for the one or more dimension columns and (b) does not store values that are derived from dimension values associated with the one or more dimension columns.
A machine-implemented method comprising:
- accessing rows in a database table, wherein:
- each row in the database table corresponds to a dimension-value combination for a set of one or more of dimensions;
- the database table is composed of a plurality of segments, wherein each segment of the plurality of segments corresponds to a different contiguous range of dimension-value combinations and (b) includes a different set of one or more rows, wherein at least one segment of the plurality of segments includes multiple rows;
- the boundaries of each segment, of the plurality of segments, are established based on gaps in dimension-value combinations associated with rows stored in the database table;
- each gap covers at least one valid dimension-value combination that is not associated with any row in the database table;
- the segment into which a row of the database table is stored is the segment that corresponds to the contiguous range that includes the dimension-value combination to which the row corresponds;
- wherein accessing rows in the database table includes, in response to receiving a request that indicates a particular dimension-value combination:
- using the particular dimension-value combination for locating an entry in an index that includes a plurality of entries, wherein each segment of the plurality of segments is represented by a different single entry in the index;
- and
- accessing the particular row based on information contained in the index entry.
A machine-implemented method comprising:
- determining a plurality of ranges based on dimension-value combinations to which rows in a table correspond;
- wherein each range of the plurality of ranges is a different range of dimension-value combinations for a set of one or more dimensions;
- wherein each row in the database table corresponds to a dimension-value combination;
- wherein the plurality of ranges is determined such that the database table includes rows that correspond to every dimension-value combination that belongs to each range of the plurality of ranges;
- wherein the boundaries of each range, of the plurality of ranges, are determined based on gaps in dimension-value combinations associated with rows stored in the database table;
- each gap covers at least one valid dimension-value combination that is not associated with any row in the database table;
- for each range of the plurality of ranges, creating a segment that stores only rows, from the table, that have dimension-value combinations that fall within the range that corresponds to said each segment.
Dependencies are inferred from the claim text.