摘要:
A system and method for indexing and storing multi-dimensional or multi-attribute data. Data items are recursively sorted in a selected dimension (e.g., the dimension having the greatest variance) and divided until each subdivision fits into a leaf node having a specified fanout. Intermediate nodes and a root node are constructed to complete the index. Each node of the index is stored in a database as a separate object or record and may include a node identifier of the unique, an identifier of a parent and/or a sibling node and an entry for each child of the node, which may be data items or other nodes. Each record entry for a child includes an associated bounding area encompassing descendant data items. Another database table or module may store information about the index, such as the dimensionality of the data, the index fanout and an identifier of a root of the index.
摘要:
A system and method for indexing and storing multi-dimensional or multi-attribute data. Data items are recursively sorted in a selected dimension (e.g., the dimension having the greatest variance) and divided until each subdivision fits into a leaf node having a specified fanout. Intermediate nodes and a root node are constructed to complete the index. Each node of the index is stored in a database as a separate object or record and may include a node identifier of the unique, an identifier of a parent and/or a sibling node and an entry for each child of the node, which may be data items or other nodes. Each record entry for a child includes an associated bounding area encompassing descendant data items. Another database table or module may store information about the index, such as the dimensionality of the data, the index fanout and an identifier of a root of the index.
摘要:
Methods are provided for buffering nodes of a hierarchical index (e.g., R-tree, bang file, hB-tree) during operations on multi-dimensional data represented by the index. The methods are particularly suited for query operations, and a different method may be more suitable for one pattern of queries than another. Where queries are distributed in a relatively uniform manner across the domain or dataspace of an index, a node-area buffering method is provided. In this method nodes are cached or buffered in order of their respective areas (e.g., their minimum bounding areas), and a node having a smaller area will be replaced in cache before a node having a larger area. When, however, queries are not uniformly distributed, then a least frequently accessed buffering technique may be applied. According to this method statistics are maintained concerning the frequency with which individual index nodes are accessed. Those accessed less frequently are replaced in cache before those accessed more frequently. Yet another, generic, buffering strategy is provided that is suitable for all patterns of query distribution. In accordance with this method, whenever a node must be removed from cache in order to make room for a newly accessed node, cached nodes are compared to each other to determine which provides the least caching benefit and may therefore be ejected. A comparison may involve three factors—the difference in the nodes' areas, the difference in the frequency with which they have been accessed and the difference between their latest access times. These factors may be weighted to give them more or less effect in relation to each other.
摘要:
Systems, methods, and other embodiments associated with determining whether geometries represented by geometry objects intersect are described. One example method recursively decomposes a higher order geometry (e.g., solid) into a set of lower order geometries (e.g., surfaces) and examines the lower order geometries, continuing the recursion until an intersection decision is reached. The example method includes accessing geometry objects and accessing a spatial index that stores MBVs associated with the geometry objects. The method includes extracting candidate pairs of intersecting features upon determining MBVs associated with the geometry objects intersect and providing the candidate features to a feature-feature logic. The method includes providing an intersection signal based on a features intersection signal provided by the feature-feature logic.
摘要:
Systems, methods, and other embodiments associated with determining whether geometries represented by geometry objects intersect are described. One example method recursively decomposes a higher order geometry (e.g., solid) into a set of lower order geometries (e.g., surfaces) and examines the lower order geometries, continuing the recursion until an intersection decision is reached. The example method includes accessing geometry objects and accessing a spatial index that stores MBVs associated with the geometry objects. The method includes extracting candidate pairs of intersecting features upon determining MBVs associated with the geometry objects intersect and providing the candidate features to a feature-feature logic. The method includes providing an intersection signal based on a features intersection signal provided by the feature-feature logic.
摘要:
Techniques for history enabling a table in a database system so that past versions of rows of the history-enabled table are available for temporal querying. The table is history enabled by adding a start time column to the table and creating a history table for the history-enabled table. The history table's rows are copies of rows of the history-enabled table that have changed and include start time and end time fields whose values indicate a period in which the history table's row was in the history-enabled table. Temporal queries are performed on a view which is the union of the history-enabled table and the history table. The temporal queries are speeded up by period of time indexes in which the leaves are grouped based on time period size, identifiers are assigned to the groups, and the keys of the index include the group identifiers.
摘要:
Methods and other embodiments associated with performing an in-memory triangulation of an arbitrarily large data set are described. One example method for performing in-memory triangulation of an arbitrarily large data set includes striping a data set into multiple stripes, selecting a first stripe to triangulate, and then performing an in-memory triangulation on the stripe. The method may also include removing certain triangles from the triangulated irregular network produced by the triangulation, merging another stripe with the leftover data, and repeating the process until the arbitrarily large data set has been triangulated piece-by-piece, with the triangulations occurring in memory.
摘要:
Methods and other embodiments associated with performing an in-memory triangulation of an arbitrarily large data set are described. One example method for performing in-memory triangulation of an arbitrarily large data set includes striping a data set into multiple stripes, selecting a first stripe to triangulate, and then performing an in-memory triangulation on the stripe. The method may also include removing certain triangles from the triangulated irregular network produced by the triangulation, merging another stripe with the leftover data, and repeating the process until the arbitrarily large data set has been triangulated piece-by-piece, with the triangulations occurring in memory.
摘要:
Systems, methodologies, media, and other embodiments associated with a three dimensional spatial engine in an RDBMS are described. One example system includes logic to receive and store data representing a set of spatial features of a three dimensional geometry object. The example system may also include logic to validate the three dimensional geometry object and to provide a signal concerning the validity of the object.
摘要:
Techniques for history enabling a table in a database system so that past versions of rows of the history-enabled table are available for temporal querying. The table is history enabled by adding a start time column to the table and creating a history table for the history-enabled table. The start time field's value in a row of the history-enabled table indicates when the contents of the row last changed. The rows of the history table are copies of rows of the history-enabled table that have been deleted or updated. The rows include end time fields whose values indicate when the row was updated or deleted. A history table's row thus indicates a period in which the history table's row was in the history-enabled table. Temporal queries are performed on a view which is the union of the history-enabled table and the history table.