摘要:
A method and apparatus are provided for building and using a persistent XML tree index for navigating an XML document. The XML tree index is stored separately from the XML document content, and thus is able to optimize performance through the use of fixed-sized index entries. The XML document hierarchy need not be constructed in volatile memory, so creating and using the XML tree index scales even for large documents. To evaluate a path expression including descendent or ancestral syntax, navigation links can be read from persistent storage and used directly to find the nodes specified in the path expression. The use of an abstract navigational interface allows applications to be written that are independent of the storage implementation of the index and the content. Thus, the XML tree index can index documents stored at least in a database, a persistent file system, or as a sequence of in memory.
摘要:
A query may be rewritten to leverage information stored in a structured XML index. An operator in the query may be analyzed to determine an input source database object for the operator by traversing an operator tree rooted at the operator. The path expressions associated with the operator tree may be fused together to form an effective path expression for the operator. If the effective path expression directly matches a path expression derived from the index, the query may be rewritten using references to the index. Operators in a query that have effective paths that refer to data in the same index table may be grouped together. A single subquery may be written for a group of operators. Also, a structured XML index may be used as an implied schema for indexed XML data. This implied schema may be used to optimize queries that refer to the indexed XML data.
摘要:
Techniques are provided for searching within a collection of XML documents. A relational table stores an entry for each node of a set of nodes in a collection of XML documents. Each entry of the relational table stores an order key and a path identifier along with the atomized value of the node. Instead of storing the atomized value in a full-text index, a virtual column can be created to represent, for each node, the atomized value of the node. Alternately, each entry of the relational table stores an order key and a path identifier along with, for simple nodes, the atomized value, and for complex nodes, a null value. For a complex node with a descendant text node, a separate entry is stored for the descendant text node in the relational table.
摘要:
The approaches described herein provide an efficient way to process certain kinds of queries that update XML data stored in an object-relational database. A query may include an XML query expression that conforms to a language for querying XML documents. A technique first determines whether the query contains an XML updating expression, and in response rewrites the query to comprise one or more path-based query operators that specify operations for updating XML data. The query may then be further rewritten to comprise one or more storage format specific query operators based on the particular database storage format associated with the XML data specified in the query. The rewritten query operators are used to generate a query execution plan that provides for several query execution optimizations.
摘要:
The approaches described herein provide an efficient way to process certain kinds of queries that update XML data stored in an object-relational database. A query may include an XML query expression that conforms to a language for querying XML documents. A technique first determines whether the query contains an XML updating expression, and in response rewrites the query to comprise one or more path-based query operators that specify operations for updating XML data. The query may then be further rewritten to comprise one or more storage format specific query operators based on the particular database storage format associated with the XML data specified in the query. The rewritten query operators are used to generate a query execution plan that provides for several query execution optimizations.
摘要:
Techniques are provided for efficiently evaluating XML queries that conform to an extension of an XML language (e.g., XQuery or XPath). The extension allows XML queries to have full-text search capabilities. Such an XML query is compiled to generate a tree of nodes that correspond to one or more conditions in the full-text portion of the query. In one technique, the amount of memory for the execution state of the tree is determined at compile time and allocated only once throughout execution of the query. In another technique, to ensure at most a single scan of a document, all the words or phrases in the full-text portion of an XML query are located before any of the other conditions in the full-text portion are evaluated. In another technique, the elements of the full-text portion of an XML query are analyzed to determine, based at least in part on cost, which evaluation strategy, of a plurality of evaluation strategies, should be employed.
摘要:
A method, device, and non-transitory computer-readable storage medium are provided for efficiently registering a relational schema. In co-compilation and data guide approaches, a subset of entities from schema descriptions are selected for physical registration, and other entities from the schema descriptions are not physically registered. In the co-compilation approach, a first schema description references a second schema description, and the subset includes a set of entities from the second schema description that are used by the first schema description. In the data guide approach, the subset includes entities that are used by a set of structured documents. In a pay-as-you-go approach, schema registration includes logically registering entities without creating relational database structures corresponding to the entities. A database server may execute database commands that reference the logically registered entities. A request to store data for the entities may be executed by creating relational database structures to store the data.
摘要:
Techniques are provided for searching within a collection of XML documents. A relational table stores an entry for each node of a set of nodes in a collection of XML documents. Each entry of the relational table stores an order key and a path identifier along with the atomized value of the node. Instead of storing the atomized value in a full-text index, a virtual column can be created to represent, for each node, the atomized value of the node. Alternately, each entry of the relational table stores an order key and a path identifier along with, for simple nodes, the atomized value, and for complex nodes, a null value. For a complex node with a descendant text node, a separate entry is stored for the descendant text node in the relational table.
摘要:
A method and apparatus for determining a database representation for an abstract datatype that may have more than one database representation. A user supplies a logical description that references the abstract datatype, along with one or more sample queries that reference the abstract datatype. For example, the user supplies a DDL statement to create a table using that abstract datatype as a column, without specifying any database representation for the abstract datatype. Also the user supplies a set of queries that reference the abstract datatype columns. Based on the user information, a database representation for the abstract datatype is determined. A script file containing code to create one or more base structures for the abstract datatype and to create zero or more indexes for the base structures is generated. The script file may be commented to explain to the user why a particular base structure or index was included in the script file.
摘要:
XQuery queries that include functions that operate on dynamically typed XML data are rewritten into compilable SQL constructs. XML data that is dynamically typed is XML data for which a specific XML data type cannot be determined at compile time and in fact may vary. In general, XQuery queries are rewritten into SQL queries that use SQL constructs in lieu of XQuery constructs. The SQL constructs include an “SQL polymorphic function” that is defined or recognized by a database system as valid syntax for an SQL query. The rewritten query applies the XML data to the SQL polymorphic function, but the XML data has been typed as XMLType, a data type recognized by SQL standards.