Relational database system providing XML query support
First Claim
1. A method for transforming Extensible Markup Language (XML) documents for querying using a database query, the method comprising:
- receiving an XML document;
transforming said XML document into a transformed object including information from said XML document together with an interface, said interface providing random access to information of interest within said transformed object; and
in response to a database query for information of interest, retrieving said information of interest from said transformed object.
3 Assignments
0 Petitions
Accused Products
Abstract
A system providing methods enabling data in Extensible Markup Language (“XML”) format to be extracted, transformed and stored in a database, file system or main memory is described. The extraction and transformation process is generalized and can be used on various types of XML data, enabling XML data to be stored and queried using standard database query methodologies. The system includes parse-time functionality to transform XML documents into a structure having an interface that enables efficient access to the underlying data. The system also includes query execution-time functionality providing greater efficiency by bringing only the relevant portions of transformed XML data into memory in response to a query. The system parses and translates queries into a structure that can be executed without the need to write custom application-specific navigation code to search XML data. The system also enables original XML documents (or portions thereof) to be recomposed when required.
280 Citations
73 Claims
-
1. A method for transforming Extensible Markup Language (XML) documents for querying using a database query, the method comprising:
-
receiving an XML document;
transforming said XML document into a transformed object including information from said XML document together with an interface, said interface providing random access to information of interest within said transformed object; and
in response to a database query for information of interest, retrieving said information of interest from said transformed object. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
providing an application programming interface (API) abstracting interaction with said transformed object to facilitate retrieval of information of interest from said transformed object.
-
-
20. A system for transforming Extensible Markup Language (XML) documents for storage in a database, the system comprising:
-
a parser event processing module for receiving a given XML document as input and verifying that said XML document is well formed;
a transformation module for transforming said given XML document into an object, said object including data from said given XML document and meta data structures to facilitate random access to said data; and
a database for storing said object. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37)
a query module for executing queries against said database containing said object.
-
-
37. The system of claim 36, wherein said query module returns results as an XML object.
-
38. A system for querying documents in Extensible Markup Language (XML) format using a database query, said system comprising:
-
a query parsing module for receiving and parsing a given database query into a logical tree;
a query translation module for translation of said logical tree into a query plan, said query plan comprising a format appropriate for execution against transformed XML documents; and
a query execution module for executing said query plan and returning results. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53)
a path processing module defining and implementing interaction between said query execution module and a data processing system containing transformed XML documents.
-
-
40. The system of claim 39, wherein said path processing module includes meta data structures to facilitate access to data in transformed XML documents.
-
41. The system of claim 39, wherein said path processing module regenerates an XML object in response to a query.
-
42. The system of claim 39, wherein said path processing module includes an application programming interface (API) abstracting interaction with said data processing system.
-
43. The system of claim 42, wherein said path processing module includes an implementation of said API including meta data structures to facilitate access to data in XML objects.
-
44. The system of claim 39, wherein said path processing module regenerates a portion of an XML object in response to a query.
-
45. The system of claim 38, wherein said query parsing module comprises an XQL parser.
-
46. The system of claim 38, wherein said query translation module receives a logical tree as input and generates a physical operator tree as output.
-
47. The system of claim 38, wherein said query execution module receives a physical operator tree as input and generates a result as output.
-
48. The system of claim 47, wherein said result is returned as an XML object.
-
49. The system of claim 38, further comprising:
a data structure containing transformed XML documents.
-
50. The system of claim 49, wherein said data structure includes meta data providing access to data in said transformed XML documents.
-
51. The system of claim 49, wherein said data structure includes parsed XML data.
-
52. The system of claim 38, further comprising:
a data store module for receiving XML documents as input and transforming said XML documents into transformed objects, said transformed objects including data from said XML documents and meta data enabling access to said data from said XML documents.
-
53. The system of claim 42, wherein said data store module includes an interface providing random access to data from said XML documents.
-
54. A method for transforming a document in tag delimited format to enable access to data in said object, the method comprising:
-
verifying that said document in tag delimited format is well formed;
transforming said document into a logical tree in which each element of said object is a node of said logical tree;
labeling each said node of said logical tree with a unique identifier; and
generating an interface facilitating random access to data in said logical tree. - View Dependent Claims (55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65)
storing said logical tree and interface in a database.
-
-
66. A method for transforming documents in Extensible Markup Language (XML) format to enable access to data in said documents, the method comprising:
-
receiving documents in XML format;
transforming said documents into a transformed object, said transformed object including data from said documents and meta data facilitating access to said data; and
in response to a request, providing data from said documents by performing the substeps of;
parsing said request for data into a logical tree;
transforming said logical tree into a physical plan for execution; and
executing said physical plan against said transformed object and returning data resulting from execution of said physical plan. - View Dependent Claims (67, 68, 69, 70, 71, 72, 73)
-
Specification