A method and system for graphically representing a plan for a query in a relational database management system is disclosed. The method includes receiving and processing an input query to form a plurality of plans, selecting at least one plan of the plurality of plans, and transforming the selected plan into a self-describing formatted file which is platform independent. The method further includes generating a graph representing the selected plan from the self-describing formatted file.
|
1. A method for graphically representing a plan for an input query for a relational database management system comprising the steps of:
a) receiving an input query; b) processing the input query to form a plurality of structured plans; c) selecting at least one structured plan of the plurality of structured plans; d) transforming the selected structured plan into a self-describing formatted file, wherein the self-describing formatted file is platform independent; and e) generating a graph representing the selected structured plan from the self-describing formatted file.
14. A computer readable medium containing programming instructions for graphically representing a plan for an input query for a relational database management system, the programming instructions for:
a) receiving an input query; b) processing the input query to form a plurality of structured plans; c) selecting at least one structured plan of the plurality of structured plans; d) transforming the selected structured plan into a self-describing formatted file, wherein the self-describing formatted file is platform independent; and e) generating a graph representing the selected structured plan from the self-describing formatted file.
27. A system for graphically representing a plan for an input query to a relational database management system (rdbms), the system comprising:
a query compiler in the rdbms for processing the input query and generating a plurality of structured plans for the input query; means for selecting at least one structured plan of the plurality of structured plans; a self-describing formatted file generator coupled to the query optimizer for transforming the selected structured plan into a self-describing formatted file, wherein the self-describing formatted file is platform independent; and means for generating a graph representing the selected plan from the self-describing formatted file.
38. A method for graphically representing a query execution plan for an input query for a relational database management system comprising the steps of:
a) receiving an input query; b) compiling the input query to form a structured query execution plan; c) transforming the structured query execution plan into a file written in Extensible Markup Language (xml), wherein the xml file is platform independent; d) reading the xml file by an xml file processor; e) creating a plurality of nodes according to the xml file; f) collecting detailed information related to each node and associating the related information with each corresponding node, such that the related information is available if requested; and g) connecting the plurality of nodes with a plurality of arcs to generate a graph representing the query execution plan from the xml file.
2. The method of
3. The method of
d1) providing a document schema to define the xml file; and d2) utilizing the document schema to translate the selected plan into the xml file.
4. The method of
d2i) mapping the selected plan to the xml using the definitions provided in the document schema.
5. The method of
6. The method of
e1) reading the self-describing formatted file by a self-describing formatted file processor; e2) creating a plurality of nodes according to the self-describing formatted file; and e3) creating a plurality of arcs to connect the plurality of nodes according to the self-describing formatted file to form the graphical representation of the selected plan.
7. The method of
e4) collecting detailed information related to each node and associating the related information with each corresponding node, such that the related information is available if requested.
9. The method of
10. The method of
12. The method of
(f) displaying the graph on the monitor.
15. The computer readable medium of
16. The computer readable medium of
d1) providing document schema to define the xml file; and d2) utilizing the document schema to translate the selected plan into the xml file.
17. The computer readable medium of
d2i) mapping the selected plan to the xml using the definitions provided in the document schema.
18. The computer readable medium of
19. The computer readable medium of
e1) reading the self-describing formatted file by a self-describing formatted file processor; e2) creating a plurality of nodes according to the self-describing formatted file; and e3) creating a plurality of arcs to connect the plurality of nodes according to the self-describing formatted file to form the graphical representation of the selected plan.
20. The computer readable medium of
e4) collecting detailed information related to each node and associating the related information with each corresponding node, such that the related information is available if requested.
21. The computer readable medium of
22. The computer readable medium of
23. The computer readable medium of
24. The computer readable medium of
25. The computer readable medium of
(f) displaying the graph on the monitor.
26. The computer readable medium of
28. The system of
29. The system of
30. The system of
31. The system of
32. The system of
34. The system of
35. The system of
36. The system of
37. The system of
39. The method of
41. The method of
(h) displaying the graph on the monitor.
|
The present invention relates generally to database management systems and, more particularly, to a generic, platform independent, and extensible technique for graphically presenting the evaluation of a query in a database management system.
Information is frequently stored in computer processing systems in the form of a relational database. A relational database stores information as a collection of tables having interrelated columns and rows. A relational database management system (RDBMS) provides a user interface to store and retrieve the information and provides a query methodology that permits table operations to be performed on the data. One such query methodology is the Structure Query Language (SQL) interface, which permits users to formulate operations on the data tables either interactively, or through batch file processing, or embedded in host languages such as C, COBOL, and the like.
In general, SQL provides table operations with which users can request database information. The table operations are specified in SQL statements or queries. An example of an SQL statement or query is provided below in Table 1:
TABLE 1 | ||
SELECT | Mgrtabl.Name | |
FROM | Emptabl, Mgrtabl, Dbatabl | |
WHERE | Emptabl.Salary=Dbatabl.Salary AND | |
Emptabl.Dept=Dbatabl.Dept | ||
One of ordinary skill in the art will understand that "Mgrtabl.Name" indicates a Name column for Table Mgrtabl. Depending on the RDBMS platform, SQL statements will vary because the RDBMS platforms are defined differently and/or may offer different functionality.
While a query allows the user to specify the data desired, it does not detail how the data will be retrieved from the tables. In general, there may be several ways to retrieve the data that answers a given query. Accordingly, a query optimizer is utilized in the RDBMS to determine the most cost-effective way to retrieve the data.
The internal representation of the input query 300, in this case the QGM 320, undergoes various refinements during query processing. For instance, Query Global Semantics 330 and Query Rewrite Transform 340 are two typical processes that refine the QGM 320. At each stage of query processing, the evolving QGM 320 represents a transitional statement or plan (referred to as "QGM transition plans"), which can be written to a query EXPLAIN table 350, so that a developer can evaluate the QGM transition plans 320 at intermediary stages of query processing.
After the QGM 320 is refined, cost-based plan optimization 360 is performed whereby the QGM 320 is graphically traversed and a plurality of query execution plans (QEPs) are generated. The QEPs represent alternative ways of processing the data requested in the input query 300. Each QEP is compared to determine which of them is the most cost-efficient. The most cost-efficient query plan is referred to as the best QEP 370 or BQEP. The cost-based optimization process 360 can be performed using a number of different techniques, as is well known to one skilled in the art. For purposes of this discussion, however, the method utilized for cost-based optimization 360 is not material, and therefore, requires no further elaboration. After the BQEP 370 is selected, it is further refined by a threaded code generator 380. The threaded code generator 380 creates a plan section 390 of executable code for each input SQL statement 300. The plan section 390 is then executed by the RDBMS at run time.
While the graphical representation in
Moreover, while input queries 300 are typically written in SQL, the resulting plans, e.g., QGM transition plans, query execution plans and the BQEP 370, are platform dependent. The major database management system platforms supporting SQL, including DB2, SQL/DS, Oracle, Sybase, SQLbase, INFORMIX and CA-Openlngres (Ingres), each have their own enhancements, quirks and tricks, such that plans generated by each platform vary from one platform to the other based on platform specific formats. Therefore, any application that reads plans from different database management system platforms would be required to be customized in order to understand the plans. This type of maintenance is error-prone and unmanageable.
Accordingly, a need exists for a method and system for representing plans, including QGM transition plans and QEPs, in a graphical manner, such that the user can visualize the plans in a comprehensive manner. The method and system should be platform independent, so that plans generated by different database management system platforms can be presented to the user without regard to the system platform. The present invention addresses such a need.
A platform independent method and system for graphically representing a plan, including a query execution plan, for a query in a relational database management system is disclosed. The method includes receiving and processing an input query to form a plurality of plans, selecting at least one plan of the plurality of plans, and transforming the selected plan into a self-describing formatted file which is platform independent. The method further includes generating a graph representing the selected plan from the self-describing formatted file.
Through aspects of the present invention, any plan, including a best query execution plan for a query and QGM transition plans, generated from any RDBMS platform is represented as a self-describing formatted file, which is then used to generate a graph representing the plan. Because the self-describing formatted file is independent of the RDBMS platform, a graphing tool, which reads the self-describing formatted file, need not understand or differentiate between platforms. In essence, the RDBMS becomes transparent to the graphing tool. Thus, application software updates to the graphing tool in order to accommodate new database system platforms are eliminated. Moreover, because the present invention utilizes a self-describing file (i.e., extensible), nuances from each platform can be captured and conveyed to the graphing tool.
The present invention relates generally to database management systems and, more particularly, to a generic and extensible technique for capturing and saving a description of the BQEP in a platform-independent data exchange format, as well as, for graphically presenting the evaluation of a query in a database management system. The following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. Various modifications to the preferred embodiment and the generic principles and features described herein will be readily apparent to those skilled in the art. Thus, the present invention is not intended to be limited to the embodiment shown but is to be accorded the widest scope consistent with the principles and features described herein.
The server 120 includes a RDBMS 130 that manages access to data 132 stored in the relational database tables. The RDBMS 130 can be, for example, a DB2/390 system developed by International Business Machines, Corp., Armonk, N.Y. The RDBMS 130 includes an SQL compiler 134 that receives input queries 160 from client systems 110. The SQL compiler 134 includes a query optimizer 135 for evaluating the query 160 and producing a plurality of plans, including a BQEP 136. The SQL compiler 134 is coupled to a self-describing formatted file (SDF file) generator 138, which in turn is coupled to Explain Tables 137 and Catalog Tables and Statistics 139.
The client system 110 includes a graphing and display tool, such as a Visual Explain module 140, and a display monitor 150. The Visual Explain module 140 receives the SDF file 112 from the RDBMS 130 in response to its input query 160. The Visual Explain module 140 includes a SDF file processor 142, which analyzes the SDF file 112. The SDF file processor 142 is coupled to a graph generator 144, which is coupled to the client's display monitor 150.
To explain better the preferred embodiment of the present invention, please refer now to
The SDF file 112 is then sent to the client system 110 in step 250, where it is received by the SDF file processor 142 in the Visual Explain module 140, via step 260. The SDF file processor 142 reads and interprets the SDF file 112 and instructs the graph generator 144 to build the graphical representation of the BQEP 136 embodied in the SDF file 112, via step 270. In the final step 280, the graph is displayed to the user on the client system's monitor 150.
In the description above, the plan 136 passed to the SDF file generator 138 is the best query execution plan. Nonetheless, the present invention is not limited only to the best query execution plans. Rather, depending upon the desires of the user, other plans, such as QGM transition plans or QEPs which are not selected as the BQEP, could be passed from the optimizer 135 to the SDF file generator 138 and represented in an SDF file 112. Such information would be valuable to a developer designing the query optimizer 135 because then she could easily evaluate the plans generated at various stages of query processing.
In the preferred embodiment, the SDF file 112 is platform independent, that is, it is not written in the proprietary format particular to the RDBMS 130. Thus, when the SDF file 112 arrives at the client system 110, the Visual Explain module 140 has no idea, nor does it care, from which RDBMS platform 130 the SDF file 112 originated. In addition, the SDF file 112 is extensible so that it can describe the nuances presented by different RDBMS platforms.
In accordance with the preferred embodiment of the present invention, the SDF file 112 is preferably written in Extensible Markup Language (XML). XML is an open standard for describing data by means of tags that identify elements in a document and define what those elements contain. XML typically represents data of a hierarchical data structure ("tree structure"), i.e., data with a traditional direct parent-child relationship, where each child has a single parent. Thus, an XML document can be represented as a tree of elements.
XML is an extensible language because it allows the developer to define the tags. Thus, virtually any data item can be identified. While the tags are preferably defined in a document type definition (DTD), which can be embedded within an XML file or provided in a separate document, other document schema, such as XML schema, and RDF schema, could be utilized, as would be well known to those skilled in the art.
According to the present invention, the DTD provides a fixed set of tags that define common elements, such as nodes and arcs, to facilitate the development of common tools for plans. As stated above, nodes can represent an operator or an object, such as a table or an index. Thus, the element "Node" is defined by its name and operator/object 420. Furthermore, within each node, detailed information about the node, such as table statistics, can be specified by XML tags 430 in the DTD. Thus, the detailed information is defined and associated with the node and is easily accessible if needed.
The DTD defines an element "Arc" 440 as a paired list of the identification of a parent node and its child node, and allows control over the direction of the arc. The arc represents the flow of data from the table to the user. So, for example, consider the XML data in Table 2:
TABLE 2 | |
<node id=1> A </node> | |
<node id=2> K </node> | |
<node id=3> R </node> | |
<graph_arcs> | |
<from_node_id>2</from_node_id> | |
<to_node_id>1</to_node_id> | |
<from_node_id>3</from_node_id> | |
<to_node_id>1</to_node_id> | |
</graph_arcs> | |
The graphical representation would comprise three nodes (A, K and R), where nodes K and R are the children of node A.
As stated above, XML is an extensible language. The DTD can not only define the tags, but it can also specify whether the tags are fixed or open-ended, or some combination of the two. Thus, the DTD can accommodate evolving information about a plan, such as an execution plan. Furthermore, tags can be defined within the XML file, i.e. independent from the DTD. Such "self-describing" tags that are not explicitly specified in the DTD are treated simply as a label for the corresponding data. So, for instance, if the tag "cost" is not defined by a DTD, and the sequence "<cost>47.693</cost>" appears in the XML file, a display tool, such as the Visual Explain module 140, will simply use the tag string "cost" to label the number following it, and display:
Utilizing a self-describing file, such as the XML file, provides flexibility and reduces maintenance efforts. For example, the problem of old versions of the application becoming obsolete and incompatible with newer versions of the application (i.e., version obsolescence) is virtually eliminated because whatever element is not defined by the DTD will still be displayed.
Accordingly, by describing the plan in XML, a standard extensible language can be utilized to capture the nuances of a plan produced by any database management system. Because this allows the Visual Explain module 140 to be platform independent, new database management system platforms can be accommodated without product (e.g., software) updates.
As stated above, in the preferred embodiment of the present invention, the XML file describing the plan is generated by the SDF file generator 138 in the RDBMS 130. Referring to
TABLE 3 | |
SELECT SALARY FROM EMPTABL | |
WHERE SALARY = 200 OR SALARY = 50000 | |
The XML file processor (
Referring now to
Accordingly, through aspects of the present invention, XML is advantageously used as a lingua franca to describe a plan for a query generated from any RDBMS platform. Because the XML file is independent of the RDBMS platform, there is no need for the client system to understand or differentiate between platforms. In essence, the RDBMS becomes transparent to the client. Thus, application software updates to the client system in order to accommodate new database system platforms are unnecessary. Moreover, because the XML file is a self-describing document (i.e., extensible), nuances from each platform can be captured and conveyed to the client graphing and display tool (e.g., Visual Explain module) and incorporated into the graph displayed.
Although the present invention has been described in accordance with the embodiments shown, one of ordinary skill in the art will readily recognize that there could be variations to the embodiments and those variations would be within the spirit and scope of the present invention. For instance, the algorithm discussed for translating the plan into an XWL file is illustrative. One skilled in the art would readily recognize that other methods of translation are available, and those methods would fall within the scope of the present invention. Accordingly, many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the appended claims.
Lapis, George, Lohman, Guy Maring, Reinwald, Berthold, Couch, Tanya, Edlund, Stefan Bengt
Patent | Priority | Assignee | Title |
10282181, | Dec 06 2013 | Ab Initio Technology LLC | Source code translation |
10289396, | Dec 06 2013 | Ab Initio Technology LLC | Source code translation |
10318752, | May 26 2006 | Oracle International Corporation | Techniques for efficient access control in a database system |
10372796, | Sep 10 2002 | SQGO Innovations, LLC | Methods and systems for the provisioning and execution of a mobile software application |
10552520, | Sep 10 2002 | SQGO Innovations, LLC | System and method for provisioning a mobile software application to a mobile device |
10650080, | Oct 16 2006 | Oracle International Corporation | Managing compound XML documents in a repository |
10810359, | Sep 10 2002 | SQGO Innovations, LLC | System and method for provisioning a mobile software application to a mobile device |
10831987, | Sep 10 2002 | SQGO Innovations, LLC | Computer program product provisioned to non-transitory computer storage of a wireless mobile device |
10839141, | Sep 10 2002 | SQGO Innovations, LLC | System and method for provisioning a mobile software application to a mobile device |
11093223, | Jul 18 2019 | Ab Initio Software LLC; AB INITIO ORIGINAL WORKS LLC; Ab Initio Technology LLC | Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods |
11106440, | Dec 06 2013 | Ab Initio Technology LLC | Source code translation |
6947950, | Nov 06 2002 | Oracle International Corporation | Techniques for managing multiple hierarchies of data from a single interface |
6965903, | May 07 2002 | Oracle International Corporation | Techniques for managing hierarchical data with link attributes in a relational database |
7020653, | Nov 06 2002 | Oracle International Corporation | Techniques for supporting application-specific access controls with a separate server |
7028037, | Sep 28 2001 | Oracle International Corporation | Operators for accessing hierarchical data in a relational system |
7047250, | Sep 28 2001 | Oracle International Corporation | Indexing to efficiently manage versioned data in a database system |
7047253, | Sep 28 2001 | Oracle International Corporation | Mechanisms for storing content and properties of hierarchically organized resources |
7051033, | Sep 28 2001 | Oracle International Corporation | Providing a consistent hierarchical abstraction of relational data |
7051039, | Sep 28 2001 | Oracle International Corporation | Mechanism for uniform access control in a database system |
7092967, | Sep 28 2001 | Oracle International Corporation | Loadable units for lazy manifestation of XML documents |
7096224, | Sep 28 2001 | Oracle International Corporation | Mechanism for mapping XML schemas to object-relational database systems |
7146352, | Jun 23 2003 | Microsoft Technology Licensing, LLC | Query optimizer system and method |
7158981, | Sep 28 2001 | Oracle International Corporation | Providing a consistent hierarchical abstraction of relational data |
7167848, | Nov 07 2003 | Microsoft Technology Licensing, LLC | Generating a hierarchical plain-text execution plan from a database query |
7366708, | Feb 18 1999 | Oracle International Corporation | Mechanism to efficiently index structured data that provides hierarchical access in a relational database system |
7366735, | Apr 09 2004 | Oracle International Corporation | Efficient extraction of XML content stored in a LOB |
7406478, | Aug 11 2005 | Oracle International Corporation | Flexible handling of datetime XML datatype in a database system |
7440954, | Apr 09 2004 | Oracle International Corporation | Index maintenance for operations involving indexed XML data |
7461074, | Apr 09 2004 | Oracle International Corporation | Method and system for flexible sectioning of XML data in a database system |
7490093, | Aug 25 2003 | Oracle International Corporation | Generating a schema-specific load structure to load data into a relational database based on determining whether the schema-specific load structure already exists |
7493305, | Apr 09 2004 | Oracle International Corporation | Efficient queribility and manageability of an XML index with path subsetting |
7499909, | Jul 03 2006 | Oracle International Corporation | Techniques of using a relational caching framework for efficiently handling XML queries in the mid-tier data caching |
7499915, | Apr 09 2004 | Oracle International Corporation | Index for accessing XML data |
7516121, | Jun 23 2004 | Oracle International Corporation | Efficient evaluation of queries using translation |
7519577, | Jun 23 2003 | Microsoft Technology Licensing, LLC | Query intermediate language method and system |
7523131, | Feb 10 2005 | Oracle International Corporation | Techniques for efficiently storing and querying in a relational database, XML documents conforming to schemas that contain cyclic constructs |
7627547, | Nov 29 2004 | Oracle International Corporation | Processing path-based database operations |
7650608, | May 16 2002 | Oracle International Corporation | System and method for application and resource data integration |
7668806, | Aug 05 2004 | Oracle International Corporation | Processing queries against one or more markup language sources |
7685150, | Apr 19 2005 | Oracle International Corporation | Optimization of queries over XML views that are based on union all operators |
7730032, | Jan 12 2006 | Oracle International Corporation | Efficient queriability of version histories in a repository |
7797310, | Oct 16 2006 | Oracle International Corporation | Technique to estimate the cost of streaming evaluation of XPaths |
7802180, | Jun 23 2004 | Oracle International Corporation | Techniques for serialization of instances of the XQuery data model |
7827177, | Oct 16 2006 | Oracle International Corporation | Managing compound XML documents in a repository |
7836098, | Jul 13 2007 | Oracle International Corporation | Accelerating value-based lookup of XML document in XQuery |
7840609, | Jul 31 2007 | Oracle International Corporation | Using sibling-count in XML indexes to optimize single-path queries |
7849106, | Dec 03 2004 | Oracle International Corporation | Efficient mechanism to support user defined resource metadata in a database repository |
7885980, | Jul 02 2004 | Oracle International Corporation | Mechanism for improving performance on XML over XML data using path subsetting |
7921076, | Dec 15 2004 | Oracle International Corporation | Performing an action in response to a file system event |
7921101, | Apr 09 2004 | Oracle International Corporation | Index maintenance for operations involving indexed XML data |
7930277, | Apr 21 2004 | Oracle International Corporation | Cost-based optimizer for an XML data repository within a database |
7933928, | Dec 22 2005 | Oracle International Corporation | Method and mechanism for loading XML documents into memory |
7933935, | Oct 16 2006 | Oracle International Corporation | Efficient partitioning technique while managing large XML documents |
7937398, | Oct 16 2006 | Oracle International Corporation | Managing compound XML documents in a repository |
7949941, | Apr 22 2005 | Oracle International Corporation | Optimizing XSLT based on input XML document structure description and translating XSLT into equivalent XQuery expressions |
7958112, | Aug 08 2008 | Oracle International Corporation | Interleaving query transformations for XML indexes |
7991768, | Nov 08 2007 | Oracle International Corporation | Global query normalization to improve XML index based rewrites for path subsetted index |
8024368, | Dec 07 2005 | Oracle International Corporation | Generating XML instances from flat files |
8073841, | Oct 07 2005 | Oracle International Corporation | Optimizing correlated XML extracts |
8126932, | Dec 30 2008 | Oracle International Corporation | Indexing strategy with improved DML performance and space usage for node-aware full-text search over XML |
8131766, | Dec 15 2004 | Oracle International Corporation | Comprehensive framework to integrate business logic into a repository |
8166059, | Jul 08 2005 | Oracle International Corporation | Optimization of queries on a repository based on constraints on how the data is stored in the repository |
8176007, | Dec 15 2004 | Oracle International Corporation | Performing an action in response to a file system event |
8219563, | Dec 30 2008 | Oracle International Corporation | Indexing mechanism for efficient node-aware full-text search over XML |
8229932, | Sep 04 2003 | Oracle International Corporation | Storing XML documents efficiently in an RDBMS |
8250062, | Nov 09 2007 | Oracle International Corporation | Optimized streaming evaluation of XML queries |
8356053, | Oct 20 2005 | Oracle International Corporation | Managing relationships between resources stored within a repository |
8429196, | Jun 06 2008 | Oracle International Corporation | Fast extraction of scalar values from binary encoded XML |
8510292, | May 25 2006 | Oracle International Coporation | Isolation for applications working on shared XML data |
8543898, | Nov 09 2007 | Oracle International Corporation | Techniques for more efficient generation of XML events from XML data sources |
8554789, | Oct 07 2005 | Oracle International Corporation | Managing cyclic constructs of XML schema in a rdbms |
8566300, | Nov 22 2005 | Oracle International Corporation | Mechanism for efficient maintenance of XML index structures in a database system |
8694510, | Sep 04 2003 | Oracle International Corporation | Indexing XML documents efficiently |
8930348, | May 25 2006 | Oracle International Corporation | Isolation for applications working on shared XML data |
8949455, | Nov 21 2005 | Oracle International Corporation | Path-caching mechanism to improve performance of path-related operations in a repository |
9069878, | Oct 07 2005 | Oracle International Corporation | Flexible storage of XML collections within an object-relational database |
9135227, | Sep 10 2002 | SQGO Innovations, LLC | Methods and systems for enabling the provisioning and execution of a platform-independent application |
9183321, | Oct 16 2006 | Oracle International Corporation | Managing compound XML documents in a repository |
9229967, | Feb 22 2006 | Oracle International Corporation | Efficient processing of path related operations on data organized hierarchically in an RDBMS |
9342492, | Sep 10 2002 | SQGO Innovations, LLC | Methods and systems for the provisioning and execution of a mobile software application |
9367642, | Oct 07 2005 | Oracle International Corporation | Flexible storage of XML collections within an object-relational database |
9390191, | Sep 10 2002 | SQGO Innovations, LLC | Methods and systems for the provisioning and execution of a mobile software application |
9842090, | Dec 05 2007 | Oracle International Corporation | Efficient streaming evaluation of XPaths on binary-encoded XML schema-based documents |
9898545, | Nov 21 2005 | Oracle International Corporation | Path-caching mechanism to improve performance of path-related operations in a repository |
Patent | Priority | Assignee | Title |
5412804, | Apr 30 1992 | Oracle International Corporation | Extending the semantics of the outer join operator for un-nesting queries to a data base |
5495605, | Jan 12 1992 | Bull S.A. | Method to help in optimizing a query from a relational data base management system, and resultant method of syntactical analysis |
5546576, | Feb 17 1995 | International Business Machines Corporation | Query optimizer system that detects and prevents mutating table violations of database integrity in a query before execution plan generation |
5671403, | Dec 30 1994 | International Business Machines Corporation | Iterative dynamic programming system for query optimization with bounded complexity |
5878427, | May 31 1995 | Texas Instruments Incorporated | Method and system for assembling complex objects |
5956720, | Feb 06 1997 | AT&T Properties, LLC; AT&T INTELLECTUAL PROPERTY II, L P | Method and apparatus for web site management |
5963934, | Jun 30 1997 | International Business Machines Corporation | Intelligent compilation of scripting language for query processing systems |
5995961, | Nov 07 1995 | TAMIRAS PER PTE LTD , LLC | Information manifold for query processing |
6092062, | Jun 30 1997 | International Business Machines Corporation | Relational database query optimization to perform query evaluation plan, pruning based on the partition properties |
6154766, | Mar 23 1999 | MICROSTRATEGY INCORPORATED | System and method for automatic transmission of personalized OLAP report output |
6449620, | Mar 02 2000 | OPEN TEXT HOLDINGS, INC | Method and apparatus for generating information pages using semi-structured data stored in a structured manner |
6546381, | Nov 02 1998 | International Business Machines Corporation | Query optimization system and method |
6654734, | Aug 30 2000 | GOOGLE LLC | System and method for query processing and optimization for XML repositories |
20030018832, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Aug 09 2001 | COUCH, TANYA | IBM Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 012147 | /0340 | |
Aug 10 2001 | EDLUND, STEFAN BENGT | IBM Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 012147 | /0340 | |
Aug 10 2001 | LOHMAN, GUY MARING | IBM Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 012147 | /0340 | |
Aug 10 2001 | REINWALD, BERTHOLD | IBM Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 012147 | /0340 | |
Aug 20 2001 | LAPIS, GEORGE | IBM Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 012147 | /0340 | |
Aug 31 2001 | International Business Machines Corporation | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Jul 22 2004 | ASPN: Payor Number Assigned. |
Sep 19 2007 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jul 15 2011 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Sep 30 2015 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Apr 20 2007 | 4 years fee payment window open |
Oct 20 2007 | 6 months grace period start (w surcharge) |
Apr 20 2008 | patent expiry (for year 4) |
Apr 20 2010 | 2 years to revive unintentionally abandoned end. (for year 4) |
Apr 20 2011 | 8 years fee payment window open |
Oct 20 2011 | 6 months grace period start (w surcharge) |
Apr 20 2012 | patent expiry (for year 8) |
Apr 20 2014 | 2 years to revive unintentionally abandoned end. (for year 8) |
Apr 20 2015 | 12 years fee payment window open |
Oct 20 2015 | 6 months grace period start (w surcharge) |
Apr 20 2016 | patent expiry (for year 12) |
Apr 20 2018 | 2 years to revive unintentionally abandoned end. (for year 12) |