CN1965316A - Index for accessing XML data - Google Patents

Index for accessing XML data Download PDF

Info

Publication number
CN1965316A
CN1965316A CN 200580018627 CN200580018627A CN1965316A CN 1965316 A CN1965316 A CN 1965316A CN 200580018627 CN200580018627 CN 200580018627 CN 200580018627 A CN200580018627 A CN 200580018627A CN 1965316 A CN1965316 A CN 1965316A
Authority
CN
China
Prior art keywords
index
node
path
instruction sequences
xml
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200580018627
Other languages
Chinese (zh)
Other versions
CN100517318C (en
Inventor
西瓦桑卡兰·钱德拉塞卡
拉维·默西
阿希什·蒂索
安霍-图安·特兰
斯里达·穆卡玛拉
埃里克·塞德拉
尼普恩·阿加瓦尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Oracle America Inc
Original Assignee
Oracle International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN1965316A publication Critical patent/CN1965316A/en
Application granted granted Critical
Publication of CN100517318C publication Critical patent/CN100517318C/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Techniques are provided for indexing XML documents. According to one embodiment, a PATH table created for storing one row for each indexed node of the XML documents. The PATH table row for a node includes (1) information for locating the XML document that contains the node, (2) information that identifies the path of the node, and (3) information that identifies the position of the node within the hierarchical structure of the XML document that contains the node. If the node is associated with the value, then the PATH table row for the node may also include the value. Use of the PATH table to answer XPath queries is facilitated by secondary indexes.

Description

The index that is used for access XML data
Prioity claim
The application require the title submitted on April 9th, 2004 for " XML INDEXFOR XML DATA STORED IN VARIOUS STORAGE FORMATS " the 60/560th, the right of priority of No. 927 U.S. Provisional Patent Application, and require the title submitted on June 16th, 2004 U.S. Provisional Patent Application the 60/580th for " XML INDEX FOR XML DATA STORED INVARIOUS STORAGE FORMATS ", No. 445 right of priority, its full content is hereby expressly incorporated by reference.
Technical field
The present invention relates to management information, more specifically, relate to access and be included in information in the XML document.
Background technology
The Database Systems that a lot of permission storages and inquiry extensible markup (" XML data ") are arranged in recent years.Although the evolution standard of a lot of XML inquiries is arranged, all standards all comprise the variable of some XPath.Yet Database Systems are not to handle the optimal system of XPath inquiry usually, and the query performance of Database Systems is also had a lot of requirements.Under the concrete condition that the XML mode-definition can be used, can know structure used in the XML instance document and data type.Yet document unavailable in the XML mode-definition and that will search does not meet under the situation of any pattern, is not used in the effective technology that uses the XPath inquiry.
Some Database Systems can adopt point-to-point (ad-hoc) mechanism to satisfy the Xpath that runs counter to document (wherein, document mode is unknown) and inquire about.For example, Database Systems can satisfy the XPath inquiry by all documents being carried out full scan.Though the full scan of all documents can be used for satisfying all XPath inquiries, owing to lack index, it is very slow to implement meeting.
The another kind of method that satisfies the XPath inquiry relates to the use of text keyword.Particularly, a lot of Database Systems are all supported text index, and these Database Systems can be used for satisfying specific XPath.Yet this technology only can satisfy the smaller subset of XPath inquiry.Therefore, in the existing database system, not can be used for handling effective index technology of multiple XPath inquiry.
The method that this part is described is the method that can carry out, and needs not to be the method for before having conceived or having carried out.Therefore, unless otherwise noted, cannot only, the method for describing in this part think prior art in this part because being included in.
Description of drawings
Mode by example in the accompanying drawing rather than restriction is described the present invention, and identical in the accompanying drawings reference number points to similar element, wherein:
Fig. 1 illustrates the process flow diagram that is used for upgrading based on new XML document the step of XML index; And
Fig. 2 can implement the block diagram of the system of technology described herein.
Embodiment
In the following description, for the purpose of explaining, a large amount of specific detail have been narrated so that complete understanding of the present invention to be provided.Yet, obviously, do not having can to implement the present invention under the situation of these specific detail yet.In other examples, show known construction and device with the block diagram form, make the present invention unclear to avoid unnecessary.
The function summary
Providing a kind of is used in XML document index path, value and order (order, the mechanism of information in proper order).This mechanism can be used under the situation of data structure of not considering to be used to store actual XML data (" basic structure ") and form.For example, actual XML data can be present in the arbitrary form such as CLOB (storing the character LOB of actual XML text), O-R (the object relationship version under the XML pattern) or BLOB (storing the scale-of-two LOB of the XML of some binary modes) in the inner or outside structure of database.
Technology described herein relates to uses one group of structure that is used for the common composition index of access XML data.According to an embodiment, this index (being called " XML data " here) comprises three logical organizations: path indexing, inferior sequence index and value index.In one embodiment, all these three logical organizations all are present in the single table, are called PATH_TABLE here.
The most frequently used part of XPath query language comprises based on the judgement of value and navigation (father and son's derivation) access.As hereinafter will be described herein in more detail, by following the trail of path, value and order information, the XML index can be used for satisfying effectively these access methods.In addition, based on the embodiment that how to implement the XML index, use the XML index can produce one or more in the following beneficial effect: (1) improves the search performance based on the XPath inquiry, and this comprises route matching and value judgement (predicate); (2) under the situation of fragment, handle snippet extraction by XPath expression formula sign; (3) under the situation that has suitable XML mode-definition, about the data type cognition of value judgement; (4) support the ability of evolution XML pattern and XML index by adding redetermination; (5) handle multiclass XPath expression formula (comprising son axle and offspring's axle), and equation and scope judgement; (6) user is by comprising or get rid of the group of paths of appointment in the index or the ability that NameSpace is controlled the index path group, and this is particularly useful in the situation of document orientation, wherein, has omitted the sign relevant with format in the index; (7) allow to be stored in the customization of the actual text value in the index, for example, delete space (whitespace), case-insensitive (case-insensitive); (8) superperformance that loads index in a large number and support parallel index creation.
The XML document example
For the purpose of explaining, hereinafter provide example with reference to following two XML document:
po1.xml
<PurchaseOrder>
<Reference>SBELL-2002100912333601PDT</Reference>
<Actions>
<Action>
<User>SVOLLMAN</User>
</Action>
</Actions>
....
</PurchaseOrder>
po2.xml
<PurchaseOrder>
<Reference>ABEL-20021127121040897PST</Reference>
<Actions>
<Action>
<User>ZLOTKEY</User>
</Action>
<Action>
<User>KING</User>
</Action>
</Actions>
....
</PurchaseOrder>
Point out that as top po1.xml and po2.xml only are two examples of XML document.Technology described herein is not limited to have the XML document of any particular type, structure or content.How will to provide the example of index and this document of access below according to various embodiments of the present invention.
The XML index
According to an embodiment, the XML index is to improve to comprise based on the judgement of XPath and/or based on the Domain Index (domain index) of the query performance of the snippet extraction of XPath.For example, can on non-mode XMLType row (column, hurdle) that are stored as CLOB or structured storage and XML, set up the XML index based on pattern.In one embodiment, the XML index is the logic index that uses path indexing, value index and inferior sequence index to be produced by cooperation.
Path indexing provides the mechanism of searching fragment based on simple (navigation) path expression.The value index provides searching based on value equation or scope.May there be a plurality of secondary value index---one of every kind of data type.Inferior sequence index makes hierarchical order information be associated with the node of index.Inferior sequence index is used for father and son, grandparent and grandchild and the brotherhood between definite XML node.
When the user submitted the inquiry that contains XPath (as judging or the segment identifier) to, the XPath statement was broken down into the SQL query of access XML concordance list.The inquiry that is generated is carried out one group usually and is subjected to searching of path, value and order constraint, and its result is suitably merged.
Routing table
According to an embodiment, logic XML index comprises PATH table and secondary index group.As mentioned above, each index XML document can comprise many index nodes.For each index node, the PATH table comprises delegation.For each index node, the row of the PATH of this node table comprises the various information relevant with this node.
According to an embodiment, the information that comprises in the PATH table comprises: (1) is indicated to the PATHID in the path of node; (2) be used for " position data " that the fragment data to the node in the basic structure positions; And (3) indication comprises " ranked data " of the position of this node in the structure rating of XML document of node.Alternatively, for those nodes relevant with value, the PATH table can also comprise value information.Below every type information will be described in more detail.
The path
Set up set membership between the node of XML document structure in XML document." path " of node reflected from " root " node and begun a series of father and son's links to specific node in the XML document.For example, the path of " User " node in the po2.xml is/PurchaseOrder/Actions/Action/User, this is because " User " node is the child node of " Action " node, " Action " node is the child node of " Actions " node, and " Actions " node is the child node of " PurchaseOrder " node.
One group of XML document of XML index institute index is called " index XML document " at this.According to an embodiment, can on all paths in all index XML document or the path subclass in the index XML document, set up the XML index.The technology that is used to specify which paths of index has hereinafter been described.Group of paths by specific XML index institute index is called " index XML path " at this.
The above is the preferred embodiments of the present invention only for path ID, is not limited to the present invention, and for a person skilled in the art, the present invention can have various changes and variation.Within the spirit and principles in the present invention all, any modification of being done, be equal to replacement, improvement etc., all should be included within protection scope of the present invention.The above is the preferred embodiments of the present invention only, is not limited to the present invention, and for a person skilled in the art, the present invention can have various changes and variation.Within the spirit and principles in the present invention all, any modification of being done, be equal to replacement, improvement etc., all should be included within protection scope of the present invention.
According to an embodiment, for all distributing unique path identifier (ID) in every index XML path.For example, can be the path ID shown in the path allocation following table among po1.xml and the po2.xml:
Path ID The path
1 /PurchaseOrder
2 /PurchaseOrder/Reference
3 /PurchaseOrder/Actions
4 /PurchaseOrder/Actions/Action
5 /PurchaseOrder/Actions/Action/User
Can use multiple technologies to identify the path and be path allocation path ID.For example, the user can enumerate the path clearly, and for specifying corresponding path ID in the path that identifies like this.Alternatively, database server can resolve to each XML document the document that is added in the index XML document group.During parse operation, any path that also is not assigned with path ID of database server identification, and automatically be the new path ID of these path allocation.Path ID can be stored in the database in every way to the mapping in path.According to an embodiment, the road is independent of the XML index through ID to the mapping in path and itself is stored as metadata.
According to an embodiment, identical access structure is used to meet the XML document of different mode.Because the index XML document may meet different mode, so each XML document will only comprise the path subclass of having distributed path ID usually.
Position data
The position data relevant with node represents to comprise the position that the XML document of this node exists in basic structure.Therefore, based on the character of basic structure, the character of position data has nothing in common with each other along with the difference of implementing.According to how storing actual XML document, position data can also comprise logical pointer or the finger URL that points in the XML document.Logical pointer can be used for extracting and the relevant fragment of node that is identified by XPath.
For the purpose of explaining, will suppose: (1) basic structure is the table in the relational database; And (2) each index XML document all is stored in the corresponding line of base table.In such situation, the position data of node can comprise, for example the ID (rowid) of the row in (1) base table, wherein, stored the XML document that comprises this node in the base table, and (2) finger URL, in XML document, provide quick access corresponding to the fragment data of node.
Ranked data
The row that is used for the PATH table of node also comprises the information of expression node in the location of the hierarchy of the XML document that comprises this node.Here, this rating information is called node " order keys (OrderKey) ".
According to an embodiment, use the Dewey offset to represent hierarchical order information.Particularly, in one embodiment, be worth the order keys of creating node by order keys interpolation to the direct father node of node, wherein, the position of this specific child node in the child node of this father node of value representation of interpolation.
For example, suppose that specific node D is the child node of node C, wherein, node C is the child node of Node B, and Node B is again the child node of node A.Further hypothesis node D has order keys 1.2.4.3." 3 " at end expression node D is the 3rd child node of its father node C in the order keys.Similarly, " 4 " expression node C is the 4th child node of Node B." 2 " expression Node B is second child node of node A.Top " 1 " expression node A is root node (that is, not having father node).
As mentioned above, add corresponding to son node number purpose value, can easily create the order keys of child node by order keys to father node.Similarly, by the end numeral in the order keys of removing child node, can easily draw the order keys of father node from the order keys of child node.
According to an embodiment, be converted into byte comparable value (byte comparable value) by the represented composite number of each order keys, make mathematics between two order keys relatively represent the relative position of the node of order keys correspondence in the structure rating of XML document.
For example, in the hierarchy of XML document, the node relevant with order keys 1.2.7.7 is before the node of being correlated with order keys 1.3.1.Therefore, database server uses order keys 1.2.7.7 is converted to first value and converts order keys 1.3.1 to second value change the mechanism, and wherein, first value is less than second value.By first value and second value are compared, database server can determine easily that the node relevant with first value is before the node relevant with second value.Can use multiple switch technology to realize this result, and the invention is not restricted to any specific switch technology.
Value information
Some nodes in the index file can be attribute nodes or corresponding to the node of simple elements.According to an embodiment, for attribute node and simple elements, the actual value that the row of PATH table is gone back memory attribute and element.For example, this value can be stored in " the value row " in the PATH table.Secondary " the value index " that hereinafter will the value of being described in detail in lists foundation.
PATH shows example
According to an embodiment, PATH table comprises the hurdle as defining as described in the following table:
Field name claims Data type Describe
PATHID (path ID) RAW (8) The ID of path token.By system is that unique ID (for example ,/a/b/c) is distributed in each different path.
RID (row ID) UROWD/ROWID The capable ID of row in the base table.
ORDER KEY (order keys) RAW (100) The Dewey of node instruction, for example 3.21.5 represents the 5th child node of the 21st child node of the 3rd child node of root node.
LOCATOR (finger URL) RAW (100) Information corresponding to the reference position of fragment.During snippet extraction, use this information.
VALUE (value) RAW (2000)/BLOB The value of the node under attribute and simple elements situation.Specify the type (and size of RAW row) by the user
As mentioned above, PATHID is a numeral of distributing to node, and represents the complete extensions path of node uniquely.ORDER KEY is the system representation of the DEWEY sequence number relevant with node.According to an embodiment, the internal representation of order keys is also preserved the document order.
The storage of VALUE hurdle is used for effective textual value of simple elements (that is, not having daughter element) node and attribute node.According to an embodiment, adjacent text node engages by connecting.As hereinafter will be in greater detail, provide to allow the user to customize the mechanism that is stored in the effective textual value in the VALUE hurdle by specified option during index creation, for example, behavior that can the custom mix text, space, case sensitive etc.The user can store the VALUE hurdle with the multiple form that comprises bounded RAW hurdle or BLOB.If the user has selected the bounded storage, then any the overflowing all during index creation will be marked as mistake.
Following table is the example of PATH table, and wherein, this PATH table (1) has above-mentioned hurdle, and (2) are made of the clauses and subclauses that are used for po1.xml and po2.xml (entry).Particularly, each provisional capital of PATH table is corresponding to the index node of po1.xml or po2.xml.In this example, suppose that po1.xml and po2.xml are stored in respectively among the capable R1 and R2 of base table.
The PATH table that constitutes
Row ID Path ID Resource identification (Rid) Order keys Finger URL Value
1 1 R1 1
2 2 R1 1.1 SBELL-2002100912333601PDT
3 3 R1 1.2
4 4 R1 1.2.1
5 5 R1 1.2.1.1 SVOLLMAN
6 1 R2 1
7 2 R2 1.1 ABEL-20021127121040897PST
8 3 R2 1.2
9 4 R2 1.2.1
10 5 R2 1.2.1.1 ZLOTKEY
11 4 R2 1.2.2
12 5 R2 1.2.2.1 KING
In this example, go the unique identifier of every row of ID row storage PATH table.According to wherein creating the Database Systems that the PATH table is arranged, row ID row can be implicit row.For example, Hang disk position can be used as capable unique identifier.As hereinafter will describing in detail, secondary sequence index and value index use the capable ID value of PATH table, to locate the row of PATH in showing.
In the above-described embodiments, the PATHID of node, ORDERKEY and VALUE are included in the single table.In optional embodiment, can use table separately so that PATHID, ORDERKEY and VALUE information mapping are arrived corresponding position data (for example, base table resource identification (Rid) and finger URL).
Secondary index
The PATH table comprises localization of XML document or the required information of XML fragment, and it can satisfy inquiry on a large scale.Yet, if there is not secondary access structure, use PATH show to satisfy this inquiry usually needs the PATH table is carried out full scan.Therefore,, create a plurality of secondary index by database server and quicken inquiry according to an embodiment, wherein (1) execution route search and/or (2) identification based on the relation of order.According to an embodiment, the secondary index below on the PATH table, creating.
●PATHID_NDEX on(pathid,rid)
●ORDERKEY_INDEX on(rid,order_key)
●VALUEINDEXES
●PARENT_ORDERKEY_INDEX on(rid,
SYS_DEWEY_PARENT(order_key))
PATHID_INDEX (path ID index)
Path ID, resource identification that PATHID_NDEX is based upon the PATH table list.
Therefore, the form of the clauses and subclauses among the PATHID_INDEX is (key assignments, row ID), and wherein, key assignments is the stowed value of expression particular path ID/ resource identification combination, and the particular row of row ID sign PATH table.
When capable when (1) base table of path ID (2) node was known, PATHID_INDEX was used in the row of locating this node in the PATH table fast.For example, based on key assignments " 3.R1 ", can travel through PATHID_INDEX to find and the relevant clauses and subclauses of key assignments " 3.R1 ".Suppose that PATH table constitutes as mentioned above, then to have value be 3 capable ID to directory entry.Value is the third line that 3 capable ID points to the PATH table, and this row is the row of the node relevant with resource identification R1 with path ID3.
ORDERKEY_INDEX (order keys _ index)
Resource identification and order keys that ORDERKEY_INDEX is based upon the PATH table list.Therefore, the form of the clauses and subclauses among the ORDERKEY_INDEX is (key assignments, row ID), and wherein, key assignments is the stowed value of expression specific resources sign/order keys combination, and the particular row of row ID sign PATH table.
When capable when (1) base table of order keys (2) node was known, ORDERKEY_INDEX was used in the row of locating this node in the PATH table fast.For example, " R1. ' 1.2  can travel through ORDERKEY_INDEX to find and key assignments " the relevant clauses and subclauses of R1. ' 1.2  based on key assignments.Suppose that PATH table constitutes as mentioned above, then will to have value be 3 capable ID to directory entry.Value is the third line that 3 capable ID points to the PATH table, and this row is the row of the node relevant with resource identification R1 with order keys 1.2.
The value index
As can using PATHID_INDEX to accelerate inquiry based on path searching, the inquiry of searching based on value can be accelerated in the index that lists by the value that is based upon the PATH table.Yet the value row of PATH table can keep the value of numerous types of data.Therefore, according to an embodiment, for every kind of data type in the value of the being stored in row is set up independent value index.So, keep in the enforcement of character string, numeral and time stamp value (secondary) index below also having created at the value row:
●STRING_INDEX on
SYS_XMLVALUE_TO_STRING(value)
●NUMBER_INDEX on
SYS_XMLVALUE_TO_NUMBER(value)
●TIMESTAMP_INDEX on
SYS_XMLVALUE_TO_TIMESTAMP(value)
These value index are used to carry out the comparison (equation and scope) based on data type.For example, NUMBER value index is used for the comparison of process user XPath based on numeral.For example, the clauses and subclauses among the NUMBER_INDEX can be the form of (numeral, row ID), and wherein, row ID points to the row of node relevant with the value of " numeral " in the PATH table.Similarly, the clauses and subclauses among the STRING_INDEX can have the form of (character string, row ID), and the clauses and subclauses among the TIMESTAMP_INDEX can have the form of (time stamp, row ID).
Value form in the PATH table can be not corresponding with the form of data type own.Therefore, when the use value index, database server can call translation function, is converted to specified data type will be worth byte from storage format.In addition, as hereinafter describing any essential conversion of database server application.According to an embodiment, RAW value and BLOB value are carried out translation function, and in the time can not changing, return NULL.
Be defaulted as establishment value index when creating the XML index.Yet the user can be based on the establishment of the understanding of inquiry workload being cancelled one or more numerical indexs.For example, only relate to character string relatively, then can avoid NUMBER and TIMESTAMP value index if all XPath judge.
PARENT_ORDERKEY_INDEX
According to an embodiment, the secondary index group that is based upon on the PATH table comprises PARENT_ORDERKEY_INDEX.Similar with the ORDER_KEY index, resource identification and order keys that PARENT_ORDERKEY_INDEX is based upon the PATH table list.Therefore, the directory entry of PARENT_ORDERKEY_INDEX has the form of (key assignments, row ID), and wherein, key assignments is the stowed value corresponding to the combination of specific resources sign/order keys.Yet, being different from the ORDER_KEY index, the capable ID in the PARENT_ORDERKEY_INDEX clauses and subclauses does not point to the row of the PATH table with the combination of specific resources sign/order keys.On the contrary, the capable ID of each PARENT_ORDERKEY_INDEX clauses and subclauses points to the row that the PATH as the node of the direct father node relevant with the combination of resource identification/order keys shows.
For example, in the PATH of above-mentioned formation table, resource identification/" R1. ' 1.2  is corresponding to the node in the row 3 of PATH table in the order keys combination.The direct father node of the node in the row 3 of PATH table is by the represented node of the row 1 of PATH table.Therefore, with " the PARENT_ORDERKEY_INDEX clauses and subclauses that R1. ' 1.2  is relevant have the capable ID of the row 1 that points to the PATH table.
Create the XML index
According to an embodiment,, in database, create the XML index in response to the index creation order that receives by database server.For the purpose of explaining, the establishment of XML index is described in the situation in indexed XML document will being stored in the XML Type row of relation table.
For example, suppose that basic structure is for being stored as style sheet (stylesheet) the table stylesheet_tab by the XML Type of ID row sign.For example, can use following order to create this table:
CREATE TABLE stylesheet_tab(id number,stylesheet XMLType);
Can list at the stylesheet of stylesheet_tab and create the XML index, to quicken to relate to the inquiry that fragment is retrieved and XPath judges based on Xpath.According to an embodiment, can use following order to create this XML index:
CREATE INDEX ss_tab_xmli ON stylesheet_tab(stylesheet)
INDEXTYPE IS XML INDEX;
Below order be the example of how creating the XML index on based on the XML type of pattern:
CREATE TABLE purchaseorder OF XMLType
XMLSchema
http://xmlns.oracle.com/xdb/documentation/purchaseOrder.xsd″
ELEMENT″PurchaseOrder″;
CREATE INDEX purchaseorder_xmli ON purchaseorder(object_value)
INDEXTYPE IS XML INDEX;
Mentioned order only is can be submitted to database server to make database server create the order example of XML index.Technology described herein is not limited to be used to specify any form or the grammer of index creation.
According to an embodiment, the index creation order comprises makes the user can specify the parameter of the various characteristics of XML index, for example:
Zero is included in the index path group or from path that the index path group is got rid of
The title of zero PATH table and secondary index
The Save option of zero PATH table and secondary index (for example, whether the PATH table is stored as partition table, index organization and shows (Index Organized Table) etc.)
Zero is used for the rule of processing costs
The row type (for example, RAW or BLOB) of zero value row
For example, the rule that is used for processing costs can be specified: whether value is considered as value case sensitive, that whether will be worth standardization (if, how operative normization) and how handle mixed content node (node with value and child node).With respect to the mixed content node, for example, this rule can be specified and should be ignored, connect or the relevant value of mixed content node of special processing.This only is can be by the example of the value processing rule of user's appointment.The applicable rule group can be according to the difference of implementing and difference, and can further change be arranged based on related value type.
When the user creates the XML index, PATH table and secondary index below creating automatically.Be defaulted as title, generate the title of secondary index and PATH table by system based on the XML index.Yet the user can specify the title of these objects clearly.
Be defaulted as the Save option that obtains PATH table and secondary index in the storage characteristics of creating the base table that the XML index is arranged from it.Yet the user also can specify the storage characteristics that is used for these objects clearly.
Below example how to show establishment index (number index) in the independent table space of PATH table.
CREATE INDEX POIndex ON purchaseOrder
NDEXTYPE IS XML INDEX
PARAMETERS‘PATHS(/PurchaseOrder/LineItems//*, /PurchaseOrder/LineItems/LineItem/@ItemNumber)
PATH TABLE POIndex_path_table tablespace
tab_tbs
VALUE STORE AS RAW(50)
NUMBER INDEX POIndex_num_idx tablespace
idx_tbs’
The user selects the path of index
According to an embodiment, a kind of mechanism is provided, by this mechanism, the user can specify and be used for determining the rule of XML index with which bar XML path of index.Particularly, the user can register rule that comprises specific XML path significantly and/or the rule of getting rid of specific XML path significantly.
According to an embodiment, when the user creates the XML index, be defaulted as all nodes in the basic document are carried out index (that is, exist corresponding to all nodes in the document row) in PATH table.Yet the user can specify clearly with indexed groups of nodes (subtree), thereby omits the residue node in the PATH table.This is generally used for getting rid of known is useless fragment from the inquiry viewpoint.By reducing the quantity of index node, can improve the space utilization and the efficiency of management of XML index.
According to an embodiment, the initial registration of rule may take place when creating the XML index.For example, the document storage of supposing to want indexed is in purchaseOrder (order form) table.If the user wants all Lineitem of index (line project) element and child node and order form reference number and requestor, then can issue following Create Index DDL:
CREATE INDEX POIndex1 ON purchaseOrder
INDEXTYPE IS XML INDEX
PARAMETERS‘PATHS(/PurchaseOrder/LineItems//*,
/PurchaseOrder/Reference,
/PurchaseOrder/Requestor)
PATH TABLE POIndex_path_table’
In this example, the POIndex_path_table table name of representing to be used for storing by Domain Index index data claims.In previous examples, rule comprises particular path significantly.All paths that rule does not comprise significantly will be got rid of from this index.Rule/PurchaseOrder/LineItems//* comprises asterisk wildcard " * ".Therefore, this rule comprises path/PurchaseOrder/LineItems and significantly to the path of all nodes that come from path/PurchaseOrder/LineItems.This only is the example how asterisk wildcard can use in rule.According to an embodiment, path finding algorithm mechanism is all supported asterisk wildcard in many cases.For example, rule/nodex/*/nodey/nodez select (1) come from/nodex/ and (2) end at/all paths of nodey/nodez, and do not consider the path between nodex and the nodey/nodez.
The user also can specify the rule of getting rid of the path clearly.For example, for all paths of index document except that Lineitem description and purchaseOrder action, the Create Index DDL below using (creating index DDL) creates index:
CREATE INDEX POIndex2 ON purchaseOrder
INDEXTYPE IS XML INDEX PARAMETERS‘PATHS EXCLUDE
/PurchaseOrder/LineItems/LineItem/Description,
/PurchaseOrder/Actions)
PATH TABLE POIndex_path_table2’
Document is added into the index file group
When the new XML document of needs index, collection path, order and value information also is stored in the XML index.According to an embodiment, when XML document is added into the storage vault of index XML document, resolve new XML document, the path of the node that is comprised to recognize wherein.In case discerned the path of node in the new XML document, database server just determines index is included in which node in the new XML document.Afterwards, database server upgrades the XML index based on each node in these nodes.
With reference to Fig. 1, show process flow diagram how to handle new XML document according to an embodiment of the invention.In Fig. 1, step 102 and 108 has defined the circulation that each node in the new XML document is handled.Particularly, in step 102, not processed node before selecting.During first time iteration, selected first node of handling will be the root node of new XML document.
In step 104, database server is determined the path of the node of current selection.In step 106, based on this path, database server determines whether the node of the current selection of index.Especially, when the user has specified the path subclass of wanting index, only those nodes corresponding to the specified path subclass are added directory entries.Whether according to an embodiment, step 106 comprises mates path relevant with present node and path finding algorithm, should the index present node to check.If (1) user has registered the rule which path expression should comprise, and (2) path relevant with present node and any paths of user's appointment all do not match, and will be that the subtree (fragment) of root node is omitted from index with this node then.On the other hand, if which path is (1) rule specify to be excluded from index, and the node that all mates of (2) and any paths of user's appointment is excluded, and will be that the fragment of root node is omitted from index with this node then.For example, can use finite automata to carry out matching operation.
If determine selected node with indexed path is uncorrelated in step 106, then control proceeds to step 108.In step 108, database server determines whether new XML document also has the processed node of wanting.If new XML document is not wanted processed node, then finish the processing of upgrading the XML index.Otherwise if new XML document also has the processed node of wanting, then control turns back to step 102 and handles other node.
Will the index present node if determine in step 106, will be that the fragment of root node is added into index then with this node.In addition, also its all ancestor nodes (ancestor) (up to the node element of root node) are added into this index.At last, also the arbitrary name space attribute in ancestors' node element is added into this index.
In Fig. 1, more specifically show the operation of Interrupt Process with indexed node, in step 110, determine whether the path relevant with present node is assigned PATHID.Formerly do not exist in the XML document of index under the situation in appropriate path, this path may also not be assigned to PATHID.In this case, control proceeds to step 112, and PATHID is distributed to this path.Afterwards, new PATHID is stored in the database to the mapping in path.
In step 114, will comprise that the row about the information of present node is added into the PATH table.In step 116, upgrade PATHID, ORDERKEY and PARENT_ORDERKEY index by the clauses and subclauses of present node.As mentioned above, PATHID and ORDERKEY clauses and subclauses will be pointed to the newline of present node, and the PARENT_ORDERKEY clauses and subclauses will be pointed to the row that the PATH of the father node of present node shows.
In step 118, determine whether present node is relevant with value.If present node is uncorrelated with value, then control turns back to step 108.If present node is relevant with value, and created the value index, then in step 120, directory entry has been added into the value index relevant with this specific data type for the data type of value.Afterwards, control turns back to step 108.
According to an embodiment, even node is relevant with not indexed path, if but this node is the ancestor node of indexed arbitrary node, then still this node is carried out index.Therefore, even the user specifies the path only should comprise with/a/b/c/* coupling, still can index with path/a ,/a/b and/ node that a/b/c is relevant, needing only them is the ancestor node of the relevant arbitrary node in the path of mating with pattern/a/b/c/*.
Change XML index
According to an embodiment, provide the mechanism that is used for after creating index, changing XML index characteristic.For example, in response to the statement of change index, change after can carrying out the establishment of XML index.
The important use that is used for the change index statement of XML index is to add or the deletion index path.According to an embodiment, can new route be added into index by following Alter Index DDL (change index DDL):
ALTER INDEX POIndex
PARAMETERS‘PATHS(/PurchaseOrder/Reference,
/PurchaseOrder/Actions/Action//*)’
Also there are not under the situation of all child nodes of reference of index order form and Action element all child nodes of all order form references of this DDL command index and Action element at index.Similarly, following DDL deletes these paths under the indexed situation in path from index:
ALTER INDEX POIndex
PARAMETERS‘PATHS EXCLUDE (/PurchaseOrder/Reference,/PurchaseOrder/Actions/Action//*)’
Shown in following example, Alter Index Rename DDL (change index rename DDL) makes the user change index name, and deletes and create index name ambiguously:
ALTER INDEX POIndex RENAME PONewIndex
Determine whether to use the XML index
When inquiry, if inquiry XPath can be defined as statically the subclass (and guaranteeing thus in this index) that the user specifies Xpath, then the XML index can be used for answering inquiry.If can not determine subset relation when inquiry is edited, then the XML index can not be used for satisfying inquiry.
For example, create XML index POIndex1 by following statement:
CREATE INDEX POIndex1 ON purchaseOrder
INDEXTYPE IS XML INDEX
PARAMETERS‘PATHS(/PurchaseOrder/LineItems//*,
/PurchaseOrder/Reference,
/PurchaseOrder/Requestor)
PATH TABLE POIndex_path_table’
The XML index can be used for answering inquiry XPath/PurchaseOrder/LineItem/Description.Yet, owing to be different from/and the path of PurchaseOrder/LineItems existences<Description down〉element, so can not being used for answer, the XML index inquires about XPATH//Description.
Use the XML index to answer the XPath inquiry
By the XPath index being decomposed into simple path and the judgement based on value, the XML index can be used for satisfying the XPath inquiry.The part of finally decomposing is converted into SQL query on the index PATH_TABLE.According to an embodiment, the input of indexed access method is the compound expression that comprises one or more following expression formulas:
● simple (navigation) path expression, for example ,/a/b
● the plian value expression formula, for example ,/a/b/c>50
● structure between the expression formula is in conjunction with (that is, classification relationship), for example, with XPath expression formula/a/b[c>50] be expressed as (/a/b) PARENT-OF (/a/b/c>50)
Suppose that inquiry has simple judgement, for example ,/a/b/c=foo, then this inquiry can contrast following PATH and show to carry out:
SELECT DISTINCT rid FROM path_table
WHERE pathid=:1 AND xmlvalue_to_string(value)=‘foo’;
The ID of path/a/b/c is defined as variable 1.For this inquiry multiple carrying into execution a plan arranged.According to an embodiment, query optimizer adopts best carrying into execution a plan based on cost.Database server can (1) use secondary index, (2) on the ID of path to use secondary index or (3) on the xmlvalue_to_string (value) to use above both and bitmap and result.
Suppose the inquiry that specified segment is searched, for example, XPath/a/b/c.Can use following statement contrast PATH to show to carry out this inquiry:
SELECT rid FROM path_table WHERE pathid=:1 ORDER BY order_key;
The ID of path/a/b/c is defined as variable 1.Return the result of coupling by the inquiry of document order.If desired, connection is corresponding to all fragments of single document.
Suppose the inquiry of searching based on simple judgement specified segment, for example ,/a/b[c=foo].The standardization of XPath of input be expressed as (/a/b) PARENT-OF (/a/b/c=foo).Below inquiry can be used for searching the coupling of path/a/b and simply judges (/a/b/c=foo) coupling.
SELECT p1.rid,p1.offset FROM path_table p1,path_table p2
WHERE p1.pathid=:1 AND p2.pathid=:2
AND xmlvalue_to_string(p2.value)=‘foo’
AND SYS_DEWEY_PARENT(p1.order_key)=p2.order_key
ORDER BY p1.rid,p1.offset;
Then, utilization structure concatenation operator (it uses the Dewey order keys to represent) comes amalgamation result.With path/a/b and/ID of a/b/c is defined as variable 1 and 2.According to an embodiment, adopt the best in multiple possible the carrying into execution a plan to carry into execution a plan based on the optimizer of cost.
The XML index also can be used for carrying out the data type cognitive operation.There is the multiple mechanism that data type information is invested the XPath judgement.For example:
● use the XML pattern.If basic tabular has relevant XML pattern, then contrast the XML pattern user XPath is carried out type checking, thereby make suitable data type relevant with expression formula.
● explicit type is forced.XPath is provided for the compulsory operational symbol of explicit type.
● implicit type is forced.XPath defines some implicit type computation rules.For example, if the RHS of comparison operator is NUMBER, then LHS implicit expression is forced to NUMBER.
According to an embodiment, in all these situations, the input of XML indexed access method is the XPath expression formula relevant with data type information.Data type information is used in the SQL query of generation, to guarantee to select suitable value index.For example, the XPath of type checking is as follows:
SYS_XMLVALUE_TO_NUMBER(/a/b/c)>10.567
Result in the following inquiry contrasts the PATH table that uses NUMBER value index:
SELECT DISTINCT rid FROM path_table
WHERE pathid=:1 AND sys_xmlvalue_to_number(value)>10.567;
As described herein, use the XML index can produce multiple advantage, comprising: can estimate many group XPath effectively; Can satisfy and relate to the cognitive XPath relatively of data type; Can from original XML document, extract fragment effectively; The user can select only the subclass in path to be carried out index, thereby has avoided making index expansion (bloating); Can customize index value based on application need; The ability that the XML document of the non-pattern of dual numbers is carried out index can satisfy the search request of catergories of user; They are stored in its all XML document among the Oracle, and need not consider query performance.
Grammer
Described embodiment in context, wherein, in response to the order that is received by database server, database server is created and maintenance XML index.This order must meet the understandable language of database server.According to one embodiment of present invention, it is as follows to be used to relate to the grammer of various DDL orders of XML index:
Create index
Grammer
CREATE INDEX<index_name>ON[<schema>.]
<table_name>(<column_name>)
INDEXTYPE IS[<schema>.]XMLINDEX
[LOCAL]
[PARALLEL]
[PARAMETERS’<parameter_clause>‘];
Example
Create index xmldoc_idx on xmldoc_tab(xmldoc)indextype is
XMLINDEX
Parameters‘PATHS(/a/b/c,//e),
PATH TABLE xmldoc_idx_pathtab’;
According to an embodiment, Domain Index is dividing equally father XML table.If the XML table is not by subregion, then Domain Index is not also by subregion.PATH TABLE and secondary index thereof also are divided into the XML table.
PARAMETERS clause's grammer:
<parameters_clause>::=<parameter_clause>[,<parameters_clause>]
<parameter_clause>::=[<paths_clause>|
<path_table_clause>|
<pathid_index_clause>|
<orderkey_index_clause>|
<value_index_clause>]
<paths_clause>::=PATHS([<path_list_clause>|
<namespaces_clause>]*)
<path_list_clause>::={<include_list_clause>|
<exclude_list_clause>}
<include_list_clause>::=<xpath_list_clause>
<exclude_list_clause>::=EXCLUDE(<xpath_list_clause>)
<xpath_list_clause>::=<xpath>[,<xpath_list_clause>]
<namespaces_clause>::=NAMESPACES (<namespace_list_clause>)
<namespace_list_clause>::=<namespace>[,
<namespace_list_clause>]
<path_table_clause>::=PATH TABLE[< identifier>]
[(< segment attributes clause>
< table_properties>)]
<pathid_index_clause>::=PATH<index_parameters>
<orderkey_index_clause>::=ORDER KEY<index_parameters>
[PARENT<index_parameters>]
<value_index_clause>::=VALUE STORE AS<value_type>
[<value_idx_clause>]
<value_type>::={RAW[(< integral number>)]
BLOB}
<value_idx_clause>::=<value_idx1_clause>[,
<value_idx_clause>]
<value_idx_1_clause>::=[<string_parameters>|NUMBER|
TIMESTAMP]
<index_parameters>
<string_parameters>::=STRING[<string_parametersl>[,
<string_parameters>]]
<string_parametersl>::=NORMALIZED|
IGNORE_MIXED_TEXT|CASE_INSENSITIVE
<index_parameters>::=[INDEX[< identifier>][(<index_attributes>)]]
According to an embodiment, PARAMENTERS clause is used to carry out following appointment:
● be used for the title and the physical parameter (table space etc.) of routing table and secondary index.Even without clearly specifying, still create whole six index on the PATH TABLE.
If the type of zero row VALUE is appointed as BLOB by explicitly, then numerical value is outreached (out-of-line) and be stored in the BLOB fragment.Otherwise inline (inline) is stored as the RAW data with numerical value.RAW<size〉be integer just.
The attribute of zero STRING value is:
When ■ will be removed with the ending space when all leading spaces of character string, be NORMALIZED
■ IGNORE_MIXED_TEX under the situation of mixing text is stored as NULL with value
■ when all character strings are converted to small letter, for
CASE_INSENSITIVE
Notice that (and before creating secondary index on the PATHTABLE) uses aforesaid operations before value being stored into the VALUE row.
● to the group of paths of index.The user can control the index path group by following appointment:
Zero arrives the explicit tabulation in the path of index.This can comprise asterisk wildcard and // axle.For example ,/a/b/c ,/d/* ,/x//y
The explicit tabulation in zero not indexed path
Delete index
Grammer
DROP INDEX<index_name>;
Example
Drop index xmldoc_idx;
Use
Component, bottom PATH TABLE and its secondary index with the XML index are deleted the XML index.
The change index
Grammer
ALTER INDEX<index_name>
PARAMETERS’<parameter_clause>‘|
RENAME<new_index_name>|
REBUILD[ONLINE][PARALLEL[DEGREE<degree>]]
|
MODIFY PARTITION<partition_name>
PARAMETERS’<parameter_clause>‘|
RENAME PARTITION<partition_name>TO<new_partition_name>|
REBUILD PARTITION<partition_name>[ONLINE]
[PARALLEL[DEGREE
<degree>]]|
Example
Alter index xmldoc_idx
Parameters‘PATHS(/a/b/c,//e),PATH TABLE
xmldoc_idx_pathtab’;
Alter index xmldoc_idx RENAME TO new_xmldoc_idx;
Alter index xmldoc_idx REBUILD;
Alter index xmldoc_idx MODIFY PARTITION p1
Parameters‘PATHS(/a/b/c,//e)’;
Alter index xmldoc_idx RENAME PARTITION xmldoc_idxpart TOnew_xmldoc_idxpart;
Alter index xmldoc_idx REBUILD PARTITION xmldoc_idxpart;
Hardware overview
Fig. 2 is the block diagram that the computer system 200 that can carry out embodiments of the invention is shown.Computer system 200 comprises bus 202 or other communicator that is used to the information of transmitting and the processor 204 that is connected with bus 202 that is used for process information.Computer system 200 also comprises the primary memory 206 such as random access storage device (RAM) or other dynamic storage device, and it is connected to the instruction that bus 202 is used for store information and will be carried out by processor 204.Carrying out between the order period that will be carried out by processor 204, primary memory 206 also can be used for storing temporary variable or other intermediate informations.Computer system 200 further comprises ROM (read-only memory) (ROM) 208 or is connected to other static memories of bus 202, the instruction that is used to store static information and processor 204.Memory device 210 such as disk or CD is provided, and is connected to bus 202 and is used for canned data and instruction.
Computer system 200 can be connected to display 212 such as cathode ray tube (CRT) via bus 202, is used for the display message to the computer user.The input media 214 that comprises alphanumeric key and other keys is connected to bus 202, is used for information and Instruction Selection are delivered to processor 204.The user input apparatus of another kind of type is cursor control 216, such as mouse, tracking ball or cursor direction key, is used for that directional information and command selection be delivered to processor 204 and the cursor that is used to control on the display 212 moves.Input media usually on two axles (first axle (for example X-axis) and second axle (for example Y-axis)) have two degree of freedom, make the position on the device energy given plane.
The present invention relates to the use of computer system 200, be used to carry out technology described here.According to one embodiment of present invention, be included in the processor 204 of one or more sequences of the one or more instructions in the primary memory 206 in response to execution, realize these technology by computer system 200.Such instruction can be read in primary memory 206 from other computer-readable medium such as memory storage 210.Be included in the execution of the instruction sequence in the primary memory 206, make processor 204 carry out treatment step described herein.In optional embodiment, can use hard-wired circuit (hard-wired circuitry) to replace software instruction or combine and implement this invention with software instruction.Therefore, embodiments of the invention will be not limited to any particular combinations of hardware circuit and software.
Term used herein " machine readable media " is meant and participates in data are provided so that any medium that machine turns round with ad hoc fashion.In the embodiment that the system of using a computer 200 implements, for example,, related to multiple machine readable media in the process that provides instruction to processor 204 is used for carrying out.This medium can be taked various ways, includes but not limited to non-volatile media, Volatile media and transmits medium.Non-volatile media comprises CD or disk for instance, such as memory storage 210.Volatile media comprises dynamic storage, such as primary memory 206.Transmission medium comprises concentric cable, copper cash and optical fiber, comprises the lead of forming bus 202.Transmission medium also can be taked sound wave or form of light waves, for example those sound wave and light waves that produce in radiowave and infrared data communication process.
Usually the computer-readable medium of form comprises as floppy disk, soft dish, hard disk, tape, physical medium, RAM, PROM, EPROM, FLASH-EPROM or other any storage chip or the magnetic tape cassette of perhaps any other magnetic medium, CD-ROM, any other light medium, punching paper, paper tape or any pattern with holes, carrier wave or computer-readable any other medium of mentioning below perhaps.
Various forms of computer-readable mediums can participate in one or more sequences with one or more instruction and be carried to processor 204 and be used for carrying out.For example, the instruction beginning can be carried in the disk of remote computer.Remote computer can use modulator-demodular unit to send instruction by telephone wire with instruction load in its dynamic storage then.The modulator-demodular unit of computer system 200 this locality can receive the data on the telephone wire, and uses infrared transmitter that data-switching is become infrared signal.Infrared eye can receive the data that infrared signal is carried, and suitable circuit can be put into data on the bus 202.To primary memory 206, processor 204 is from primary memory retrieval and carry out these instructions with Data-carrying for bus 202.Before or after carrying out these instructions by processor 204, the instruction that is received by primary memory 206 can optionally be stored on the memory storage 210.
Computer system 200 also comprises the communication interface 218 that is connected to bus 202.The communication interface 218 of bidirectional data communication is provided, is connected to the network link 220 that is connected with LAN (Local Area Network) 222.For example, communication interface 218 can be Integrated Service Digital Network card or modulator-demodular unit, and the data communication that is used to be provided to the telephone wire of respective type connects.And for example, communication interface 218 can be the Local Area Network card, is used to provide the data communication to compatible Local Area Network to connect.Also can use Radio Link.In any such enforcement, communication interface 218 sends and receives electric signal, electromagnetic signal and the optical signalling of the digital data stream of the various types of information of carrying expression.
Network link 220 can provide data communication to other data set by one or more network usually.For example, network link 220 can be connected with main frame 224 by LAN (Local Area Network) 222, perhaps is connected with the data equipment that ISP (ISP) 226 operates.ISP226 provides data communication services by the worldwide packet data communication network that is commonly referred to as " internet " 228 at present again.LAN (Local Area Network) 222 and internet 228 all use electric signal, electromagnetic signal or the optical signalling of carrying digital data stream.Signal by diverse network and the signal on the network link 220 and the signal by communication interface 218 all transmit numerical data and give computer system 200 or send numerical data from computer system, are the exemplary form of the carrier wave of transmission information.
Computer system 200 can send message and receive data (comprising program code) by network, network link 220 and communication interface 218.In the example of internet, server 230 can pass through internet 228, ISP226, LAN (Local Area Network) 222 and communication interface 218, transmits the program code of being asked that is used for application program.
The code that is received can be when it is received be carried out by processor 204, and/or is stored in memory storage 210 or other non-volatile media and is used for carrying out subsequently.In this manner, computer system 200 can obtain application code with the form of carrier wave.
The above is the preferred embodiments of the present invention only, is not limited to the present invention, and for a person skilled in the art, the present invention can have various changes and variation.Within the spirit and principles in the present invention all, any modification of being done, be equal to replacement, improvement etc., all should be included within protection scope of the present invention.

Claims (24)

1. method that is used for access from the information of XML document, described method comprises:
Identification is with indexed groups of nodes in XML document;
For with each node in the indexed described groups of nodes, the clauses and subclauses of described node are stored in the index, wherein, the described clauses and subclauses of given node comprise the locator data that is used to locate the XML content relevant with described given node, and in following at least one:
(a) ranked data is represented the classification position of described given node in comprising the described XML document of described given node; And
(b) path data is corresponding to the structure of the XML document by the comprising described specific node path to described given node; And
In response to request, use described index to locate information in the described XML document from the information of described XML document.
2. method according to claim 1, wherein, described index is implemented as relation table, and the step of carrying out each node clauses and subclauses of storage by the row of each node in the described groups of nodes of described relation table stored.
3. method according to claim 1, wherein, the relevant value of one or more nodes in described index stores and the described groups of nodes.
4. method according to claim 3, wherein, be stored in described value in the described index and comprise the value of numerous types of data, and described method also is included as every kind of step of setting up secondary index in two or more data types in the described numerous types of data.
5. method according to claim 1, wherein, the described locator data of described given node comprises first data that are used for the localization of XML document and second data that are used for the information that the location is relevant with described given node in described XML document.
6. method according to claim 1, wherein,
The clauses and subclauses of described given node comprise ranked data, and described ranked data is represented the classification position of described given node in comprising the described XML document of described given node; And
Described method also comprises based on described ranked data, sets up the secondary index that is used for storing entry in described index.
7. method according to claim 1, wherein,
The clauses and subclauses of described given node comprise path data, and described path data is corresponding to the structure of the XML document by the comprising described specific node path to described given node; And
Described method also comprises based on described path data, sets up the secondary index that is used for storing entry in described index.
8. method according to claim 1 also comprises based on the rating information relevant with the child node of described father node, sets up the secondary index that is used for storing entry for described father node in described index.
9. according to the described method of claim 1, wherein, identification may further comprise the steps the step of indexed groups of nodes:
Reception be used for determining should which path of index rule;
Determine and the path that the node in the indexed XML document is relevant; And
Be used for determining the described rule in which path of index based on (a), and (b) with the described path that the node in the indexed described XML document is relevant, discern which node of index.
10. method according to claim 9, wherein, described regular explicit identification will be included in the path in the described index.
11. method according to claim 9, wherein, described regular explicit identification will be by the path of getting rid of from described index.
12. method according to claim 4 comprises that also receiving indication will set up the user data of secondary value indexed data type to it.
13. a computer-readable medium that carries one or more instruction sequences when described one or more instruction sequences are carried out by one or more processors, makes described one or more processor enforcement of rights require the method described in 1.
14. a computer-readable medium that carries one or more instruction sequences when described one or more instruction sequences are carried out by one or more processors, makes described one or more processor enforcement of rights require the method described in 2.
15. a computer-readable medium that carries one or more instruction sequences when described one or more instruction sequences are carried out by one or more processors, makes described one or more processor enforcement of rights require the method described in 3.
16. a computer-readable medium that carries one or more instruction sequences when described one or more instruction sequences are carried out by one or more processors, makes described one or more processor enforcement of rights require the method described in 4.
17. a computer-readable medium that carries one or more instruction sequences when described one or more instruction sequences are carried out by one or more processors, makes described one or more processor enforcement of rights require the method described in 5.
18. a computer-readable medium that carries one or more instruction sequences when described one or more instruction sequences are carried out by one or more processors, makes described one or more processor enforcement of rights require the method described in 6.
19. a computer-readable medium that carries one or more instruction sequences when described one or more instruction sequences are carried out by one or more processors, makes described one or more processor enforcement of rights require the method described in 7.
20. a computer-readable medium that carries one or more instruction sequences when described one or more instruction sequences are carried out by one or more processors, makes described one or more processor enforcement of rights require the method described in 8.
21. a computer-readable medium that carries one or more instruction sequences when described one or more instruction sequences are carried out by one or more processors, makes described one or more processor enforcement of rights require the method described in 9.
22. a computer-readable medium that carries one or more instruction sequences when described one or more instruction sequences are carried out by one or more processors, makes described one or more processor enforcement of rights require the method described in 10.
23. a computer-readable medium that carries one or more instruction sequences when described one or more instruction sequences are carried out by one or more processors, makes described one or more processor enforcement of rights require the method described in 11.
24. a computer-readable medium that carries one or more instruction sequences when described one or more instruction sequences are carried out by one or more processors, makes described one or more processor enforcement of rights require the method described in 12.
CNB2005800186279A 2004-04-09 2005-04-06 Index for accessing XML data Active CN100517318C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US56092704P 2004-04-09 2004-04-09
US60/560,927 2004-04-09
US10/884,311 2004-07-02

Publications (2)

Publication Number Publication Date
CN1965316A true CN1965316A (en) 2007-05-16
CN100517318C CN100517318C (en) 2009-07-22

Family

ID=38083514

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800186279A Active CN100517318C (en) 2004-04-09 2005-04-06 Index for accessing XML data

Country Status (1)

Country Link
CN (1) CN100517318C (en)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286875B (en) * 2008-03-31 2011-11-16 华为技术有限公司 Method, system, device and terminal for batch processing XML document
CN101615174B (en) * 2008-06-24 2012-07-04 北京信息科技大学 Method for converting documents with different formats based on XML
CN102650992A (en) * 2011-02-25 2012-08-29 国际商业机器公司 Method and device for generating binary XML (extensible markup language) data and locating nodes of the binary XML data
CN101661481B (en) * 2008-08-29 2012-09-26 国际商业机器公司 XML data storing method, method and device thereof for executing XML query
CN102893281A (en) * 2010-05-14 2013-01-23 日本电气株式会社 Information retrieval device, information retrieval method, computer program, and data structure
CN102930027A (en) * 2012-11-06 2013-02-13 苏州两江科技有限公司 Data processing system and processing method in cloud computing multi-tenant architecture
CN102955815A (en) * 2011-08-30 2013-03-06 上海无戒空间信息技术有限公司 Method and device for writing and reading data
CN102999519A (en) * 2011-09-15 2013-03-27 上海盛付通电子商务有限公司 Read-write method and system for database
CN101593184B (en) * 2008-05-29 2013-05-15 国际商业机器公司 System and method for self-adaptively locating dynamic web page elements
CN103136304A (en) * 2011-12-05 2013-06-05 北大方正集团有限公司 Article processing method and device
CN102033885B (en) * 2009-09-29 2013-10-02 国际商业机器公司 Method and system for XPath execution in XML (extensible markup language) data storage bank
CN103678450A (en) * 2013-09-10 2014-03-26 清华大学 Method for communication between on-line operation system and off-line simulation system in power system
CN104346466A (en) * 2014-11-12 2015-02-11 中国建设银行股份有限公司 Method and device of adding new attribute data in database
CN106940715A (en) * 2017-03-09 2017-07-11 星环信息科技(上海)有限公司 A kind of method and apparatus of the inquiry based on concordance list

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286875B (en) * 2008-03-31 2011-11-16 华为技术有限公司 Method, system, device and terminal for batch processing XML document
CN101593184B (en) * 2008-05-29 2013-05-15 国际商业机器公司 System and method for self-adaptively locating dynamic web page elements
CN101615174B (en) * 2008-06-24 2012-07-04 北京信息科技大学 Method for converting documents with different formats based on XML
CN101661481B (en) * 2008-08-29 2012-09-26 国际商业机器公司 XML data storing method, method and device thereof for executing XML query
US9529934B2 (en) 2009-09-29 2016-12-27 International Business Machines Corporation XPath evaluation in an XML repository
US9135367B2 (en) 2009-09-29 2015-09-15 International Business Machines Corporation XPath evaluation in an XML repository
CN102033885B (en) * 2009-09-29 2013-10-02 国际商业机器公司 Method and system for XPath execution in XML (extensible markup language) data storage bank
US9141727B2 (en) 2010-05-14 2015-09-22 Nec Corporation Information search device, information search method, computer program, and data structure
CN102893281A (en) * 2010-05-14 2013-01-23 日本电气株式会社 Information retrieval device, information retrieval method, computer program, and data structure
CN102650992A (en) * 2011-02-25 2012-08-29 国际商业机器公司 Method and device for generating binary XML (extensible markup language) data and locating nodes of the binary XML data
CN102650992B (en) * 2011-02-25 2014-07-30 国际商业机器公司 Method and device for generating binary XML (extensible markup language) data and locating nodes of the binary XML data
CN102955815A (en) * 2011-08-30 2013-03-06 上海无戒空间信息技术有限公司 Method and device for writing and reading data
CN102999519B (en) * 2011-09-15 2017-05-17 上海盛付通电子商务有限公司 Read-write method and system for database
CN102999519A (en) * 2011-09-15 2013-03-27 上海盛付通电子商务有限公司 Read-write method and system for database
CN103136304A (en) * 2011-12-05 2013-06-05 北大方正集团有限公司 Article processing method and device
CN103136304B (en) * 2011-12-05 2017-02-22 北大方正集团有限公司 Article processing method and device
CN102930027A (en) * 2012-11-06 2013-02-13 苏州两江科技有限公司 Data processing system and processing method in cloud computing multi-tenant architecture
CN103678450B (en) * 2013-09-10 2017-04-05 清华大学 Communication means in power system between on-line operation system and off-line emulation system
CN103678450A (en) * 2013-09-10 2014-03-26 清华大学 Method for communication between on-line operation system and off-line simulation system in power system
CN104346466A (en) * 2014-11-12 2015-02-11 中国建设银行股份有限公司 Method and device of adding new attribute data in database
CN104346466B (en) * 2014-11-12 2018-03-23 中国建设银行股份有限公司 The method and apparatus for the data that Added New Attribute in database
CN106940715A (en) * 2017-03-09 2017-07-11 星环信息科技(上海)有限公司 A kind of method and apparatus of the inquiry based on concordance list
CN106940715B (en) * 2017-03-09 2019-11-15 星环信息科技(上海)有限公司 A kind of method and apparatus of the inquiry based on concordance list

Also Published As

Publication number Publication date
CN100517318C (en) 2009-07-22

Similar Documents

Publication Publication Date Title
CN100517318C (en) Index for accessing XML data
US7499915B2 (en) Index for accessing XML data
CN100545835C (en) Retaining hierarchical information in the mapping between XML document and relation data
US7440954B2 (en) Index maintenance for operations involving indexed XML data
US7885980B2 (en) Mechanism for improving performance on XML over XML data using path subsetting
US7305414B2 (en) Techniques for efficient integration of text searching with queries over XML data
US7840590B2 (en) Querying and fragment extraction within resources in a hierarchical repository
US7590650B2 (en) Determining interest in an XML document
US7644066B2 (en) Techniques of efficient XML meta-data query using XML table index
CA2570462C (en) Efficient extraction of xml content stored in a lob
US6836778B2 (en) Techniques for changing XML content in a relational database
CN100541493C (en) The apparatus and method that are used for structured document management
US8650182B2 (en) Mechanism for efficiently searching XML document collections
US20070250527A1 (en) Mechanism for abridged indexes over XML document collections
CA2561734C (en) Index for accessing xml data
CN100440218C (en) Efficient extraction of XML content stored in a LOB
JP4866844B2 (en) Efficient extraction of XML content stored in a LOB
US20080147615A1 (en) Xpath based evaluation for content stored in a hierarchical database repository using xmlindex
CN117743360A (en) Data query method and electronic equipment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant