US20040093329A1 - Database system and query optimiser - Google Patents

Database system and query optimiser Download PDF

Info

Publication number
US20040093329A1
US20040093329A1 US10/470,716 US47071603A US2004093329A1 US 20040093329 A1 US20040093329 A1 US 20040093329A1 US 47071603 A US47071603 A US 47071603A US 2004093329 A1 US2004093329 A1 US 2004093329A1
Authority
US
United States
Prior art keywords
data
elements
tree
type
database
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.)
Abandoned
Application number
US10/470,716
Inventor
Axel Von Bergen
Arne Schwarz
Volker Sauermann
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.)
SAP SE
Original Assignee
Individual
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 Individual filed Critical Individual
Assigned to SAP AKTIENGESELLSCHAFT reassignment SAP AKTIENGESELLSCHAFT ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: VON BERGEN, AXEL, SAUERMANN, VOLKER, SCHWARZ, ARNE
Publication of US20040093329A1 publication Critical patent/US20040093329A1/en
Assigned to SAP AG reassignment SAP AG CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: SAP AKTIENGESELLSCHAFT
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F16/24545Selectivity estimation or determination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Definitions

  • the invention relates to information storage systems, such as database systems.
  • data is stored in and retrieved from some medium, such as a memory and a hard disk drive.
  • the most common way to approach a database is via a database query, for example in the form of a SQL statement.
  • a database query is practically always in a compound form, i.e. that it requires at least two conditions to be fulfilled.
  • a search for data that conforms to the query can be done in a number of ways.
  • a query optimiser is used, for example a rule based optimiser or a cost based optimiser.
  • the rule based optimiser uses a set of predefined rules.
  • the cost based optimiser uses statistical information about the data to structure queries, by estimating the selectivity of each query component and leading the search path along the most selective components first. Even though using the known optimisers can shorten the average response time, the need exists for optimisers that optimise each specific query.
  • the data is stored in a data structure such as for example a structure based on the relational model.
  • a data structure such as for example a structure based on the relational model.
  • data stored using the known data storage systems can be stored, searched and retrieved, the time required for the retrieval can be considerable, especially in case of complex queries.
  • constructing an efficient database structure is complicated and therefore costly. If the design of the database is not up to par, more or less severe performance penalties can easily result. Also, once a database layout or data model is defined, later alterations are difficult to implement, and almost always lead to loss of performance. Therefore the need exists for a database system that can be implemented and altered without introducing unwanted performance restraints.
  • the first goal is met by providing a query optimiser according to claim 1 .
  • a search path decision By basing a search path decision on a number of hits for each section of a compound query, a search can be guided through the least number of hits first, thus increasing the chance for a quick return of a result for the query.
  • the optimiser can not only take in account the number of hits of a certain query section but also distil those keys for the search that are most selective.
  • FIG. 1 shows a database with a table
  • FIG. 2 shows an example of a tree structure according to the invention
  • FIG. 3 shows another example of a tree structure according to the invention
  • FIG. 4 shows an example of a data structure according to the invention
  • FIG. 5 shows a detail of a data structure according to the invention.
  • FIG. 6 shows schematically a data element according to the invention.
  • FIG. 1 a first example of an embodiment of the invention is shown.
  • a data source DS (which can be for example a database or an application) containing data is shown, with a small portion of stored data in the form of a table C with columns A and B, comprised of data elements.
  • the data source DS can be of any kind, and that the table C is shown as an example.
  • an external data structure E is formed as shown in FIG. 2.
  • the data structure E is called a search data structure, as it will be used to perform searches on it to analyse the structure based on a data query.
  • the elements of the respective columns A and B are organised in a binary tree structure.
  • the elements of the trees are shown as circles in the FIG. 2, with in the upper left part the value of the attribute (VAL), in the upper right part a unique identification of the type of element (ID) and in the lower part a number (COUNT) that at least represents how many-elements are present in the branches below the respective element. Note that in this example the lower number is inclusive of the respective element itself. If in the column A or B, multiple entries exist for a certain instance, then these are accounted for by increasing the number COUNT with the number of respective entries. When elements are added or deleted from the tree, the COUNT numbers have to be updated in the tree.
  • the data can be transferred from the data source DS to the implementation of the program of the invention in any suitable way, for example via a data communication link, such as the Internet, and the data structure to the invention can be build in any suitable way.
  • the search data structure is stored in a memory that can be randomly accessed, such as for example RAM, which gives fast access times.
  • a very small section of a data source DS is shown.
  • a great number of columns are used (and therefore also a corresponding number of trees), and similar a great number of tables or similar constructions are used.
  • the trees will be in the implementation accessible through some means, for example a linking element such as a pointer, that is positioned in hierarchy over the tree structures.
  • the linking means itself can be part of a further configuration to facilitate access to the tree structures.
  • a query optimiser When a query for a search in the data source DS is requested in the form of a compound query for example Q1 AND Q2 AND Q3 (wherein the conditions Q1, Q2, Q3 are sections that are each a more or less selective statement for a search in the database), a query optimisation according to the invention will conduct a search on the data structure E as follows. For each section of the query (i.e. Q1, Q2, Q3), the number of hits is determined by descending along a path the respective braches of the tree A, B until the required element or elements have been found, and the number of hits can be calculated from the respective values COUNT.
  • the number of elements that meet the criterion can be obtained straightforward from the COUNT parameter of the element found itself, or by simple addition and/or subtraction of multiple elements found. It is therefore not necessary to traverse the complete tree to the end to obtain the data required. Note that searching through a (binary) tree as such is known in the art, as well are searches for ranges in a (binary) tree.
  • the number of hits for each respective component Q1, Q2, Q3 are known; based on this information the optimiser can select an order in which to execute the query, preferably starting with the component that has the lowest number of hits, as this is potentially the most selective condition.
  • the number of hits per component can also be used in any other way for optimising, including combining or using it together with other criteria.
  • the structure E is updated in real-time.
  • the structure E can be updated periodically, like for example hourly or daily.
  • an error is introduced as not the exact actual number of hits for the data source DS is calculated, but if the error is kept within predetermined ranges the estimate can be effectively used.
  • a periodical update has the advantage that it does not require so many resources as a real-time update would cost.
  • FIG. 3 In a further embodiment of the invention, not only the number of elements, but also the relations between elements is included into the structure, now shown in FIG. 3 as E′.
  • the linking elements H are shown by dotted lines and represent the data as incorporated for example in a record; the dotted line represents the connection between the fields of a record.
  • the linking element can for example be implemented as a pointer.
  • a further tree F is shown, this tree represents a further column of the table C. As is shown in FIG. 3, the subsequent columns of the table C are arranged in a tree structure, being sorted over the respective ID numbers. This has the advantage that access to the respective trees A, B, F can be made very fast and efficient.
  • the query optimiser When analysing the query components, not only the number of hits can be calculated, but also the most selective keys can be found, wherein any key can be selected.
  • the query optimiser would as result return query components in an optimum order, wherein the query components are not necessarily the same as those in the original query. With the new query, the data source DS can be searched. By using this implementation a quick and efficient way to get the optimum query keys is provided.
  • every tree is identified by an integer value for its identification (ID), and also its elements are preferably identified by an integer or other simple identifier type. This has the advantage that during the search only relatively simple (and therefore fast) comparisons have to be made.
  • a binary tree in fact it is not essential to have a binary tree; the invention can also be applied for example with AVL trees, 2-3 trees, B-trees, and splay trees, and in principle any data structure that allows range searching.
  • AVL trees 2-3 trees
  • B-trees B-trees
  • splay trees any data structure that allows range searching.
  • a binary tree and in particular a balanced tree
  • the invention was used together with a separate data source. This has certain benefits, such as the fact that an already existing database system can be used, and the application can be used separately from the main data source.
  • the search database of the second example is augmented with certain features to obtain a database structure in which data can be stored and retrieved, while incorporating the advantages of the fast query optimiser.
  • each column is organised in a binary tree, preferably a balanced AVL tree.
  • the tree is composed of cells that contain the data of the table.
  • the connection between individual cells in the respective trees that is the connection that makes up a line (or data record) in the table, is made via the structure H′.
  • This structure H′ for example made out of pointers, connects the respective cells of neighbouring trees.
  • the structure H′ also forms a tree that is sorted over the identity of the respective trees that represent columns of the table.
  • each cell is provided with a COUNT parameter, shown as a box next to each cell.
  • the COUNT parameter represents how many elements are present in the branches below the respective element.
  • data can be stored in a database without imposing rigid structures in the form of keys.
  • the structure according to the invention can be expanded, amended and revised by simply adding trees and connections, without compromising performance.
  • the parameters needed for the quick search routine are included in the data structure, and therefore the abovementioned examples of query optimisers can be used without restriction on the database structure. There is no need to build a secondary search database structure.
  • the elements of a tree are all different. Although this can be the case for some applications, most data to be stored will have multiple identical entries.
  • the construction as shown in FIG. 5 is used.
  • the entry Bob occurs three times.
  • each successive cell for Bob is put next to the cell already there and connected to the others via a pointer ring, or so called self-ring.
  • the pointer ring is bi-directiional; a unidirectional ring would suffice, but a bi-directional architecture has advantages in the navigation through the ring.
  • the cell that was added latest is directly part of the tree structure.
  • each cell is provided with a variable as shown in the lower section of the cells in FIG. 5.
  • the value 0 indicates in this case that the cell does not have neighbours, i.e. no multiple occurrences are present.
  • each cell within a ring maintains its link to the next tree, as indicated by the dotted lines. In this way the structure fully maintains all data information.
  • the COUNT parameter has to be adjusted for any multiple occurrences due to a ring, so to maintain that the COUNT parameter represents how many cells are present in the branches below the respective cell.
  • the COUNT parameter can also include the number of elements in a self-ring.
  • the self-ring configuration can also be used with the search method shown in the first two examples.
  • linking elements that point towards the upper or start section of the respective tree. Pointers are an efficient way to implement these linking elements.
  • the linking elements provide a ring structure to the trees and make navigating through the structure easier to implement, and in case pointers are used prevent that nil pointers occur.
  • FIG. 6 To implement the data structure use can be made of a data element G according to the invention as shown in FIG. 6. This data element can be used universally throughout the data structure, and can be changed to leave out features or include extra features when required. Note that the invention is not limited to this specific data type, and that other implementations can be used.
  • the data element is shown schematically in FIG. 6.
  • the element G is provided with three pairs of pointers and a single pointer.
  • the pointers of the first pair are labelled LVR and RVR (Left Vertical Ring, respectively Right vertical Ring)
  • the pointers of the second pair are labelled LHR and RHR (Left Horizontal Ring, respectively Right Horizontal Ring)
  • the pointers of the third pair are labelled LSR and RSR (Left Self Ring, respectively Right Self Ring)
  • the single pointer is labelled IF (Information bridge).
  • the LVR/RVR pair can be used for the tree structure for that incorporates elements of the same type.
  • the LHR/RHR pair can be used to connect an element to neighbouring trees.
  • the LSR/RSR pair can be used to include similar elements into a self-ring structure.
  • the pointers 30 point to the data element itself.
  • the pointers are redirected so that a ring configuration is maintained, so that every pointer in the structure has a valid address, and cases of a non-defined pointer (nil pointer) are avoided.
  • the data element can be provided with several parameter values.
  • the IF pointer can be used for connections with any other instance within the data structure; for example an other element of the same or another tree or even elements of one or more levels higher in hierarchy.
  • the IF pointer can be used for example as an InfoBridge; that is a connection element that looks like a Y-adapter. This InfoBridge can be cascaded and/or be bi-directional. With the InfoBridge, any internal data structure can be build within the context of the data structure of the invention.
  • the implementation of the data structure and method according to the invention is not limited to the example shown, but can be achieved using any known and suitable manner.
  • the invention will be implemented as a computer program that is stored in a computer memory or on a data carrier.
  • the program has program code sections that when run on a computer system will perform the steps of the method according to the invention.
  • the implementation of the system as described above can be made using any known and suitable method and programming language. It is helpful if the language of the implementation supports pointers. It is also useful if the programming language is object orientated, for example C++, which language has the additional benefits of availability of pointers, objects, and object classes. For most implementations additional control structures would be necessary, comprising temporary elements. However, such implementation details as such are known and are within reach of the person skilled in the art.
  • the data structure according to the invention can be implemented in particularly in a memory that can be randomly accessed (such as for example a memory of the RAM type), wherein the addresses can be randomly accessed.
  • a random access memory also has the advantage that changes to the data structure do not effect efficiency in any way.
  • the invention is preferably implemented in a memory with random access, the implementation is not limited to this form, and other implementations in memory devices are possible.

Abstract

Method for optimising a query with respect to a database structure. Database information is received with respect to a specific data source, a search database structure is generated for the data source, based on the received data source information, a query request is received for the data source, the search database structure is analyzed by counting a number of hits for respective sections of the query request, and an optimized query request is calculated based on the analysis performed.

Description

  • This application claims priority from the German patent application DE 101 04 831.9, the text of which is herewith incorporated by reference. [0001]
  • The invention relates to information storage systems, such as database systems. In such computer based data storage systems, data is stored in and retrieved from some medium, such as a memory and a hard disk drive. The most common way to approach a database is via a database query, for example in the form of a SQL statement. Such a database query is practically always in a compound form, i.e. that it requires at least two conditions to be fulfilled. A search for data that conforms to the query can be done in a number of ways. Often a query optimiser is used, for example a rule based optimiser or a cost based optimiser. The rule based optimiser uses a set of predefined rules. The cost based optimiser uses statistical information about the data to structure queries, by estimating the selectivity of each query component and leading the search path along the most selective components first. Even though using the known optimisers can shorten the average response time, the need exists for optimisers that optimise each specific query. [0002]
  • In known systems, the data is stored in a data structure such as for example a structure based on the relational model. Although data stored using the known data storage systems can be stored, searched and retrieved, the time required for the retrieval can be considerable, especially in case of complex queries. Furthermore, constructing an efficient database structure is complicated and therefore costly. If the design of the database is not up to par, more or less severe performance penalties can easily result. Also, once a database layout or data model is defined, later alterations are difficult to implement, and almost always lead to loss of performance. Therefore the need exists for a database system that can be implemented and altered without introducing unwanted performance restraints. [0003]
  • The first goal is met by providing a query optimiser according to [0004] claim 1. By basing a search path decision on a number of hits for each section of a compound query, a search can be guided through the least number of hits first, thus increasing the chance for a quick return of a result for the query. By providing the search structure with additional links that represent data record relations according to claim 4, the optimiser can not only take in account the number of hits of a certain query section but also distil those keys for the search that are most selective.
  • By providing a data structure according to [0005] claim 6, a database structure is achieved that can be implemented without performance restraints, and can be used with the abovementioned query optimiser method. Later alterations are easily achieved without risk of sacrificing performance. By using the data structure of the invention, all advantages of the query optimiser are integrated within the data structure itself. This eliminates the need for a separate search data structure.
  • Additional features and advantages will become apparent in the following description of a number of embodiments of the invention. Advantageous variants of the invention are subject of the dependent claims.[0006]
  • FIG. 1 shows a database with a table, [0007]
  • FIG. 2 shows an example of a tree structure according to the invention, [0008]
  • FIG. 3 shows another example of a tree structure according to the invention, [0009]
  • FIG. 4 shows an example of a data structure according to the invention, [0010]
  • FIG. 5 shows a detail of a data structure according to the invention, and [0011]
  • FIG. 6 shows schematically a data element according to the invention.[0012]
  • In FIG. 1 a first example of an embodiment of the invention is shown. A data source DS (which can be for example a database or an application) containing data is shown, with a small portion of stored data in the form of a table C with columns A and B, comprised of data elements. Note that the data source DS can be of any kind, and that the table C is shown as an example. [0013]
  • According to the invention, an external data structure E is formed as shown in FIG. 2. For convenience the data structure E is called a search data structure, as it will be used to perform searches on it to analyse the structure based on a data query. In the data structure E, the elements of the respective columns A and B are organised in a binary tree structure. The elements of the trees are shown as circles in the FIG. 2, with in the upper left part the value of the attribute (VAL), in the upper right part a unique identification of the type of element (ID) and in the lower part a number (COUNT) that at least represents how many-elements are present in the branches below the respective element. Note that in this example the lower number is inclusive of the respective element itself. If in the column A or B, multiple entries exist for a certain instance, then these are accounted for by increasing the number COUNT with the number of respective entries. When elements are added or deleted from the tree, the COUNT numbers have to be updated in the tree. [0014]
  • The data can be transferred from the data source DS to the implementation of the program of the invention in any suitable way, for example via a data communication link, such as the Internet, and the data structure to the invention can be build in any suitable way. Preferably, the search data structure is stored in a memory that can be randomly accessed, such as for example RAM, which gives fast access times. [0015]
  • In this example, only a very small section of a data source DS is shown. In practice, a great number of columns are used (and therefore also a corresponding number of trees), and similar a great number of tables or similar constructions are used. Furthermore, the trees will be in the implementation accessible through some means, for example a linking element such as a pointer, that is positioned in hierarchy over the tree structures. The linking means itself can be part of a further configuration to facilitate access to the tree structures. [0016]
  • When a query for a search in the data source DS is requested in the form of a compound query for example Q1 AND Q2 AND Q3 (wherein the conditions Q1, Q2, Q3 are sections that are each a more or less selective statement for a search in the database), a query optimiser according to the invention will conduct a search on the data structure E as follows. For each section of the query (i.e. Q1, Q2, Q3), the number of hits is determined by descending along a path the respective braches of the tree A, B until the required element or elements have been found, and the number of hits can be calculated from the respective values COUNT. The number of elements that meet the criterion can be obtained straightforward from the COUNT parameter of the element found itself, or by simple addition and/or subtraction of multiple elements found. It is therefore not necessary to traverse the complete tree to the end to obtain the data required. Note that searching through a (binary) tree as such is known in the art, as well are searches for ranges in a (binary) tree. [0017]
  • As a result the number of hits for each respective component Q1, Q2, Q3 are known; based on this information the optimiser can select an order in which to execute the query, preferably starting with the component that has the lowest number of hits, as this is potentially the most selective condition. The number of hits per component can also be used in any other way for optimising, including combining or using it together with other criteria. [0018]
  • In this example it is not required that the structure E is updated in real-time. Depending on the rate with which the data changes in the data source DS, the structure E can be updated periodically, like for example hourly or daily. By not having a fully up to date structure E, an error is introduced as not the exact actual number of hits for the data source DS is calculated, but if the error is kept within predetermined ranges the estimate can be effectively used. A periodical update has the advantage that it does not require so many resources as a real-time update would cost. [0019]
  • In a further embodiment of the invention, not only the number of elements, but also the relations between elements is included into the structure, now shown in FIG. 3 as E′. The linking elements H are shown by dotted lines and represent the data as incorporated for example in a record; the dotted line represents the connection between the fields of a record. The linking element can for example be implemented as a pointer. A further tree F is shown, this tree represents a further column of the table C. As is shown in FIG. 3, the subsequent columns of the table C are arranged in a tree structure, being sorted over the respective ID numbers. This has the advantage that access to the respective trees A, B, F can be made very fast and efficient. [0020]
  • When analysing the query components, not only the number of hits can be calculated, but also the most selective keys can be found, wherein any key can be selected. The query optimiser would as result return query components in an optimum order, wherein the query components are not necessarily the same as those in the original query. With the new query, the data source DS can be searched. By using this implementation a quick and efficient way to get the optimum query keys is provided. [0021]
  • Preferably, every tree is identified by an integer value for its identification (ID), and also its elements are preferably identified by an integer or other simple identifier type. This has the advantage that during the search only relatively simple (and therefore fast) comparisons have to be made. [0022]
  • Note that in fact it is not essential to have a binary tree; the invention can also be applied for example with AVL trees, 2-3 trees, B-trees, and splay trees, and in principle any data structure that allows range searching. However, a binary tree (and in particular a balanced tree) promises the fastest overall access time, and is relatively easy to implement and use. [0023]
  • In the previous shown examples, the invention was used together with a separate data source. This has certain benefits, such as the fact that an already existing database system can be used, and the application can be used separately from the main data source. In a further embodiment of the invention, the search database of the second example is augmented with certain features to obtain a database structure in which data can be stored and retrieved, while incorporating the advantages of the fast query optimiser. [0024]
  • In FIG. 4 a table K is shown with three columns, respectively first name, age, and weight. In the database structure according to the invention, each column is organised in a binary tree, preferably a balanced AVL tree. The tree is composed of cells that contain the data of the table. The connection between individual cells in the respective trees, that is the connection that makes up a line (or data record) in the table, is made via the structure H′. This structure H′, for example made out of pointers, connects the respective cells of neighbouring trees. Note that the structure H′ also forms a tree that is sorted over the identity of the respective trees that represent columns of the table. As in the previous example, each cell is provided with a COUNT parameter, shown as a box next to each cell. As before, the COUNT parameter represents how many elements are present in the branches below the respective element. [0025]
  • Using the structure according to the invention, data can be stored in a database without imposing rigid structures in the form of keys. The structure according to the invention can be expanded, amended and revised by simply adding trees and connections, without compromising performance. The parameters needed for the quick search routine are included in the data structure, and therefore the abovementioned examples of query optimisers can be used without restriction on the database structure. There is no need to build a secondary search database structure. [0026]
  • In the previous example, the elements of a tree are all different. Although this can be the case for some applications, most data to be stored will have multiple identical entries. For this situation, the construction as shown in FIG. 5 is used. In this example, the entry Bob occurs three times. During the construction of the data structure, each successive cell for Bob is put next to the cell already there and connected to the others via a pointer ring, or so called self-ring. In the shown example the pointer ring is bi-directiional; a unidirectional ring would suffice, but a bi-directional architecture has advantages in the navigation through the ring. The cell that was added latest is directly part of the tree structure. To distinguish between cells of the tree structure that have neighbours in a self-ring and those that do not, each cell is provided with a variable as shown in the lower section of the cells in FIG. 5. The [0027] value 0 indicates in this case that the cell does not have neighbours, i.e. no multiple occurrences are present. As shown in the FIG. 5, each cell within a ring maintains its link to the next tree, as indicated by the dotted lines. In this way the structure fully maintains all data information. Furthermore, the COUNT parameter has to be adjusted for any multiple occurrences due to a ring, so to maintain that the COUNT parameter represents how many cells are present in the branches below the respective cell. The COUNT parameter can also include the number of elements in a self-ring. The self-ring configuration can also be used with the search method shown in the first two examples.
  • To further make the data structure accessible, all the end elements of the tree structure are provided with linking elements that point towards the upper or start section of the respective tree. Pointers are an efficient way to implement these linking elements. The linking elements provide a ring structure to the trees and make navigating through the structure easier to implement, and in case pointers are used prevent that nil pointers occur. [0028]
  • To implement the data structure use can be made of a data element G according to the invention as shown in FIG. 6. This data element can be used universally throughout the data structure, and can be changed to leave out features or include extra features when required. Note that the invention is not limited to this specific data type, and that other implementations can be used. [0029]
  • The data element is shown schematically in FIG. 6. The element G is provided with three pairs of pointers and a single pointer. The pointers of the first pair are labelled LVR and RVR (Left Vertical Ring, respectively Right vertical Ring), the pointers of the second pair are labelled LHR and RHR (Left Horizontal Ring, respectively Right Horizontal Ring), the pointers of the third pair are labelled LSR and RSR (Left Self Ring, respectively Right Self Ring), and the single pointer is labelled IF (Information bridge). The LVR/RVR pair can be used for the tree structure for that incorporates elements of the same type. The LHR/RHR pair can be used to connect an element to neighbouring trees. The LSR/RSR pair can be used to include similar elements into a self-ring structure. [0030]
  • In the initial state as shown in FIG. 6 all [0031] pointers 30 point to the data element itself. When adding or inserting elements to the structure, the pointers are redirected so that a ring configuration is maintained, so that every pointer in the structure has a valid address, and cases of a non-defined pointer (nil pointer) are avoided. Additionally, the data element can be provided with several parameter values. The IF pointer can be used for connections with any other instance within the data structure; for example an other element of the same or another tree or even elements of one or more levels higher in hierarchy. The IF pointer can be used for example as an InfoBridge; that is a connection element that looks like a Y-adapter. This InfoBridge can be cascaded and/or be bi-directional. With the InfoBridge, any internal data structure can be build within the context of the data structure of the invention.
  • In this example, only a very small section of a data-base is shown. In practice, a great number of columns are used (and therefore also a corresponding number of trees), and similar a great number of tables or similar constructions are used. Furthermore, the trees will in the implementation be accessible through some means, for example a linking element such as a pointer, which linking means itself can be part of a further configuration to facilitate access to the tree structures. [0032]
  • The implementation of the data structure and method according to the invention is not limited to the example shown, but can be achieved using any known and suitable manner. Typically, the invention will be implemented as a computer program that is stored in a computer memory or on a data carrier. The program has program code sections that when run on a computer system will perform the steps of the method according to the invention. [0033]
  • The implementation of the system as described above can be made using any known and suitable method and programming language. It is helpful if the language of the implementation supports pointers. It is also useful if the programming language is object orientated, for example C++, which language has the additional benefits of availability of pointers, objects, and object classes. For most implementations additional control structures would be necessary, comprising temporary elements. However, such implementation details as such are known and are within reach of the person skilled in the art. [0034]
  • The data structure according to the invention can be implemented in particularly in a memory that can be randomly accessed (such as for example a memory of the RAM type), wherein the addresses can be randomly accessed. The use of a random access memory also has the advantage that changes to the data structure do not effect efficiency in any way. Although the invention is preferably implemented in a memory with random access, the implementation is not limited to this form, and other implementations in memory devices are possible. [0035]

Claims (11)

1. Method for optimising a query with respect to a database structure, comprising:
receiving database information with respect to a specific data source (DS),
generating a search database structure (E) for said data source (DS), based on said received data source information,
receiving a query request for said data source (DS),
analyzing the search database structure (E) by counting a number of hits for respective sections of said query request, and
calculating an optimized query request based on the analysis performed.
2. Method according to claim 1, further comprising
generating said search database structure by organizing data elements of the same type in respective tree structures (A, B).
3. Method according to claim 2, further comprising
providing each data element of a tree with a number (COUNT) representative of the number of data elements arranged in the tree structure (A, B) under said respective data element.
4. Method according to any of the preceding claims, further comprising
linking elements of a first tree (A) with elements of a second tree (B) via linking elements (H), wherein a linking element represents a data record relation.
5. Method according to claim 4, further comprising
determining a key set for the optimized query request.
6. Database structure, for storage of data within a computer system, comprising
data elements of a first type (G), representing database entries, and
data elements of a second type (H), associated with said data elements of the first type (G),
wherein the data elements of the first type (G) are arranged in a first tree structure, and
wherein the data elements of the second type (H) are arranged in a second tree structure.
7. Data structure according to claim 6, wherein end sections of the tree structures are connected via linking elements to a start section of the tree structure.
8. Data structure according to claim 6 or 7, wherein multiple occurrences of similar data elements of the first type (G) are arranged in a set of data elements that are mutually connected through linking elements, and wherein one data element of the set is directly part of the respective tree structure.
9. Data element for a database structure according to any of the preceding claims 6-8, comprising
a first pointer pair (LSR, RSR),
a second pointer pair (LHR, RHR),
a third pointer pair (LVR, RVR).
10. Data element according to claim 9, further comprising an IF pointer (IF).
11. Computer program product, comprising code portions for executing when loaded into a computer memory the steps of a method according to any of the claims 1-5.
US10/470,716 2001-02-01 2002-02-01 Database system and query optimiser Abandoned US20040093329A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10104831A DE10104831A1 (en) 2001-02-01 2001-02-01 Data structure for information systems
DE10104831.9 2001-02-01
PCT/EP2002/001027 WO2002061613A2 (en) 2001-02-01 2002-02-01 Database system and query optimiser

Publications (1)

Publication Number Publication Date
US20040093329A1 true US20040093329A1 (en) 2004-05-13

Family

ID=7672701

Family Applications (3)

Application Number Title Priority Date Filing Date
US10/470,716 Abandoned US20040093329A1 (en) 2001-02-01 2002-02-01 Database system and query optimiser
US10/470,720 Abandoned US20040088307A1 (en) 2001-02-01 2002-02-01 Data structure for information systems
US10/637,004 Expired - Lifetime US7257599B2 (en) 2001-02-01 2003-08-08 Data organization in a fast query system

Family Applications After (2)

Application Number Title Priority Date Filing Date
US10/470,720 Abandoned US20040088307A1 (en) 2001-02-01 2002-02-01 Data structure for information systems
US10/637,004 Expired - Lifetime US7257599B2 (en) 2001-02-01 2003-08-08 Data organization in a fast query system

Country Status (8)

Country Link
US (3) US20040093329A1 (en)
EP (2) EP1360616B1 (en)
JP (2) JP3959027B2 (en)
AT (2) ATE487186T1 (en)
AU (2) AU2002229734B2 (en)
CA (1) CA2434081C (en)
DE (3) DE10104831A1 (en)
WO (2) WO2002061613A2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070118510A1 (en) * 2005-11-18 2007-05-24 Microsoft Corporation Optimization of leaf-level multi-dimensional calculation using scripts
US20080162511A1 (en) * 2006-12-30 2008-07-03 Theobald Dietmar C Computer file system traversal
US20090037804A1 (en) * 2007-08-03 2009-02-05 Dietmar Theobald Annotation processing of computer files
US20110167088A1 (en) * 2010-01-07 2011-07-07 Microsoft Corporation Efficient immutable syntax representation with incremental change
US9781075B1 (en) * 2013-07-23 2017-10-03 Avi Networks Increased port address space
US10671630B2 (en) 2016-05-09 2020-06-02 Sap Se External access to database container artifacts

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785668B1 (en) * 2000-11-28 2004-08-31 Sas Institute Inc. System and method for data flow analysis of complex data filters
DE10104831A1 (en) 2001-02-01 2002-08-08 Sap Ag Data structure for information systems
JP2006508643A (en) 2002-07-01 2006-03-16 アーキオン ライフ サイエンシーズ エルエルシー ディー/ビー/エー バイオ−テクニカル リソーセズ ディビジョン Processes and materials for the production of glucosamine and N-acetylglucosamine
US7590683B2 (en) 2003-04-18 2009-09-15 Sap Ag Restarting processes in distributed applications on blade servers
WO2004092951A2 (en) 2003-04-18 2004-10-28 Sap Ag Managing a computer system with blades
DE60330955D1 (en) * 2003-07-08 2010-03-04 Sap Ag Method and computer system for query processing
EP1498828B1 (en) * 2003-07-17 2010-09-29 Sap Ag Method and computer system for storing multiple attribute values
EP1498829B1 (en) * 2003-07-18 2011-08-31 Sap Ag Method and computer system for aggregating information
US7310719B2 (en) 2003-07-24 2007-12-18 Sap Aktiengesellschaft Memory management tile optimization
US7337295B2 (en) 2003-07-24 2008-02-26 Sap Aktiengesellschaft Memory management frame handler
EP1503297A1 (en) * 2003-07-30 2005-02-02 Sap Ag Computer implemented methods of retrieving hit count data from a data base system and according computer program product
EP1510932A1 (en) * 2003-08-27 2005-03-02 Sap Ag Computer implemented method and according computer program product for storing data sets in and retrieving data sets from a data storage system
ATE368901T1 (en) 2003-08-27 2007-08-15 Sap Ag FORWARDING CHANGES IN A DATABASE
US20060101018A1 (en) * 2004-11-08 2006-05-11 Mazzagatti Jane C Method for processing new sequences being recorded into an interlocking trees datastore
US8706686B2 (en) * 2003-12-24 2014-04-22 Split-Vision Kennis B.V. Method, computer system, computer program and computer program product for storage and retrieval of data files in a data storage means
GB2431742A (en) * 2005-10-27 2007-05-02 Hewlett Packard Development Co A method of retrieving data from a data repository
US8738639B1 (en) * 2006-02-23 2014-05-27 Verizon Data Services Llc Methods and systems for an information directory providing audiovisual content
US7752229B2 (en) 2007-01-26 2010-07-06 International Business Machines Corporation Real-time identification of sub-assemblies containing nested parts
JP4834054B2 (en) * 2008-11-19 2011-12-07 新日鉄ソリューションズ株式会社 Information processing apparatus, information processing method, and program
US9009137B2 (en) * 2010-03-12 2015-04-14 Microsoft Technology Licensing, Llc Query model over information as a networked service
DE102011087843B4 (en) * 2011-12-06 2013-07-11 Continental Automotive Gmbh Method and system for selecting at least one data record from a relational database
US9870417B2 (en) 2014-04-22 2018-01-16 Business Objects Software Ltd. Merging business object hierarchies
US9838303B2 (en) * 2015-03-20 2017-12-05 Juniper Networks, Inc. PIM source discovery by last hop router
EP3091449B1 (en) * 2015-05-04 2018-07-25 Deloitte Consulting GmbH Operating a database system
US9998292B2 (en) 2015-09-30 2018-06-12 Juniper Networks, Inc. PIM source discovery by last hop router on shared tree
US11093443B2 (en) 2017-06-29 2021-08-17 Sap Se Database-level container group management
US10984021B2 (en) 2017-06-29 2021-04-20 Sap Se Deployment of independent database artifact groups
US10776330B2 (en) 2017-06-29 2020-09-15 Sap Se Optimized re-deployment of database artifacts
US10674438B2 (en) 2017-06-29 2020-06-02 Sap Se Restricting access to external schemas from within a database level container by whitelisting allowed schemas
US10657114B2 (en) 2017-11-28 2020-05-19 Sap Se Reserving key specifications
US11030164B2 (en) 2018-01-18 2021-06-08 Sap Se Artifact deployment for application managed service instances

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4829427A (en) * 1984-05-25 1989-05-09 Data General Corporation Database query code generation and optimization based on the cost of alternate access methods
US4956774A (en) * 1988-09-02 1990-09-11 International Business Machines Corporation Data base optimizer using most frequency values statistics
US5446886A (en) * 1992-03-12 1995-08-29 Ricoh Company, Ltd. System from optimizing query processing of multi-attribute distributed relations using local relation tuple numbers to choose semijoins
US5495605A (en) * 1992-01-12 1996-02-27 Bull S.A. Method to help in optimizing a query from a relational data base management system, and resultant method of syntactical analysis
US5548770A (en) * 1993-02-25 1996-08-20 Data Parallel Systems, Inc. Method and apparatus for improving retrieval of data from a database
US5581756A (en) * 1991-03-27 1996-12-03 Nec Corporation Network database access system to which builds a table tree in response to a relational query
US5598559A (en) * 1994-07-01 1997-01-28 Hewlett-Packard Company Method and apparatus for optimizing queries having group-by operators
US5659728A (en) * 1994-12-30 1997-08-19 International Business Machines Corporation System and method for generating uniqueness information for optimizing an SQL query
US5664172A (en) * 1994-07-19 1997-09-02 Oracle Corporation Range-based query optimizer
US5666528A (en) * 1993-06-30 1997-09-09 Borland International, Inc. System and methods for optimizing database queries
US5758146A (en) * 1994-05-20 1998-05-26 International Business Machines Corporation Method and apparatus for optimizing data retrieval using index scanning
US5819255A (en) * 1996-08-23 1998-10-06 Tandem Computers, Inc. System and method for database query optimization
US5822747A (en) * 1996-08-23 1998-10-13 Tandem Computers, Inc. System and method for optimizing database queries
US6021405A (en) * 1996-08-23 2000-02-01 Tandem Computers, Inc. System and method for optimizing database queries with improved performance enhancements
US6175835B1 (en) * 1996-07-26 2001-01-16 Ori Software Development, Ltd. Layered index with a basic unbalanced partitioned index that allows a balanced structure of blocks
US6175836B1 (en) * 1997-10-09 2001-01-16 International Business Machines Corporation Optimization of relational database queries

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4849905A (en) * 1987-10-28 1989-07-18 International Business Machines Corporation Method for optimized RETE pattern matching in pattern-directed, rule-based artificial intelligence production systems
US5257365A (en) * 1990-03-16 1993-10-26 Powers Frederick A Database system with multi-dimensional summary search tree nodes for reducing the necessity to access records
US5355473A (en) * 1991-06-20 1994-10-11 Lawrence Au Indexed record locating and counting mechanism
US5737732A (en) * 1992-07-06 1998-04-07 1St Desk Systems, Inc. Enhanced metatree data structure for storage indexing and retrieval of information
US5657437A (en) * 1993-12-10 1997-08-12 Lucent Technologies Inc. Data processing apparatus and method including proportional updating of data
US5557786A (en) * 1994-01-24 1996-09-17 Advanced Computer Applications, Inc. Threaded, height-balanced binary tree data structure
US5742806A (en) * 1994-01-31 1998-04-21 Sun Microsystems, Inc. Apparatus and method for decomposing database queries for database management system including multiprocessor digital data processing system
US5701400A (en) * 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
WO1999028505A1 (en) * 1997-12-03 1999-06-10 Curagen Corporation Methods and devices for measuring differential gene expression
US6675173B1 (en) * 1998-01-22 2004-01-06 Ori Software Development Ltd. Database apparatus
US7016910B2 (en) * 1999-12-30 2006-03-21 Decode Genetics Ehf. Indexing, rewriting and efficient querying of relations referencing semistructured data
DE10104831A1 (en) 2001-02-01 2002-08-08 Sap Ag Data structure for information systems

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4829427A (en) * 1984-05-25 1989-05-09 Data General Corporation Database query code generation and optimization based on the cost of alternate access methods
US4956774A (en) * 1988-09-02 1990-09-11 International Business Machines Corporation Data base optimizer using most frequency values statistics
US5581756A (en) * 1991-03-27 1996-12-03 Nec Corporation Network database access system to which builds a table tree in response to a relational query
US5495605A (en) * 1992-01-12 1996-02-27 Bull S.A. Method to help in optimizing a query from a relational data base management system, and resultant method of syntactical analysis
US5446886A (en) * 1992-03-12 1995-08-29 Ricoh Company, Ltd. System from optimizing query processing of multi-attribute distributed relations using local relation tuple numbers to choose semijoins
US5548770A (en) * 1993-02-25 1996-08-20 Data Parallel Systems, Inc. Method and apparatus for improving retrieval of data from a database
US5666528A (en) * 1993-06-30 1997-09-09 Borland International, Inc. System and methods for optimizing database queries
US5758146A (en) * 1994-05-20 1998-05-26 International Business Machines Corporation Method and apparatus for optimizing data retrieval using index scanning
US5598559A (en) * 1994-07-01 1997-01-28 Hewlett-Packard Company Method and apparatus for optimizing queries having group-by operators
US5664172A (en) * 1994-07-19 1997-09-02 Oracle Corporation Range-based query optimizer
US5659728A (en) * 1994-12-30 1997-08-19 International Business Machines Corporation System and method for generating uniqueness information for optimizing an SQL query
US6175835B1 (en) * 1996-07-26 2001-01-16 Ori Software Development, Ltd. Layered index with a basic unbalanced partitioned index that allows a balanced structure of blocks
US5819255A (en) * 1996-08-23 1998-10-06 Tandem Computers, Inc. System and method for database query optimization
US5822747A (en) * 1996-08-23 1998-10-13 Tandem Computers, Inc. System and method for optimizing database queries
US6021405A (en) * 1996-08-23 2000-02-01 Tandem Computers, Inc. System and method for optimizing database queries with improved performance enhancements
US6175836B1 (en) * 1997-10-09 2001-01-16 International Business Machines Corporation Optimization of relational database queries

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070118510A1 (en) * 2005-11-18 2007-05-24 Microsoft Corporation Optimization of leaf-level multi-dimensional calculation using scripts
US9367553B2 (en) * 2006-12-30 2016-06-14 Sap Se Computer file system traversal
US20080162511A1 (en) * 2006-12-30 2008-07-03 Theobald Dietmar C Computer file system traversal
US20090037478A1 (en) * 2007-08-03 2009-02-05 Dietmar Theobald Dependency processing of computer files
US20090037805A1 (en) * 2007-08-03 2009-02-05 Dietmar Theobald Annotation data filtering of computer files
US20090037577A1 (en) * 2007-08-03 2009-02-05 Dietmar Theobald Data listeners for type dependency processing
US9092408B2 (en) 2007-08-03 2015-07-28 Sap Se Data listeners for type dependency processing
US10509854B2 (en) 2007-08-03 2019-12-17 Sap Se Annotation processing of computer files
US20090037459A1 (en) * 2007-08-03 2009-02-05 Theobald Dietmar C Annotation data handlers for data stream processing
US8112388B2 (en) 2007-08-03 2012-02-07 Sap Ag Dependency processing of computer files
US20090037804A1 (en) * 2007-08-03 2009-02-05 Dietmar Theobald Annotation processing of computer files
US8806324B2 (en) 2007-08-03 2014-08-12 Sap Ag Annotation data filtering of computer files
US8954840B2 (en) 2007-08-03 2015-02-10 Sap Se Annotation processing of computer files
JP2013516701A (en) * 2010-01-07 2013-05-13 マイクロソフト コーポレーション Efficient invariant syntactic representation with gradual change
WO2011084876A3 (en) * 2010-01-07 2011-11-17 Microsoft Corporation Efficient immutable syntax representation with incremental change
US20110167088A1 (en) * 2010-01-07 2011-07-07 Microsoft Corporation Efficient immutable syntax representation with incremental change
US10564944B2 (en) 2010-01-07 2020-02-18 Microsoft Technology Licensing, Llc Efficient immutable syntax representation with incremental change
US9781075B1 (en) * 2013-07-23 2017-10-03 Avi Networks Increased port address space
US10148613B2 (en) * 2013-07-23 2018-12-04 Avi Networks Increased port address space
US10341292B2 (en) * 2013-07-23 2019-07-02 Avi Networks Increased port address space
US10671630B2 (en) 2016-05-09 2020-06-02 Sap Se External access to database container artifacts

Also Published As

Publication number Publication date
US20040139046A1 (en) 2004-07-15
AU2002229734B2 (en) 2005-05-05
WO2002061612A3 (en) 2003-11-27
JP2004518226A (en) 2004-06-17
EP1393206A2 (en) 2004-03-03
CA2434081A1 (en) 2002-08-08
US20040088307A1 (en) 2004-05-06
EP1360616A2 (en) 2003-11-12
WO2002061613A2 (en) 2002-08-08
ATE487186T1 (en) 2010-11-15
AU2002249161B2 (en) 2005-05-19
JP2004518225A (en) 2004-06-17
EP1360616B1 (en) 2010-11-03
EP1393206B1 (en) 2006-01-18
US7257599B2 (en) 2007-08-14
DE60238179D1 (en) 2010-12-16
CA2434081C (en) 2009-06-16
DE60208778T2 (en) 2006-09-07
DE60208778D1 (en) 2006-04-06
ATE316266T1 (en) 2006-02-15
WO2002061613A3 (en) 2003-09-04
JP3959027B2 (en) 2007-08-15
DE10104831A1 (en) 2002-08-08
WO2002061612A2 (en) 2002-08-08

Similar Documents

Publication Publication Date Title
EP1360616B1 (en) Database system and query optimiser
AU2002229734A1 (en) Database system and query optimiser
AU2002249161A1 (en) Data structure for information systems
KR100812378B1 (en) estDec+ method for finding frequent itemsets over data streams using compressed-Prefix trees
JP3771271B2 (en) Apparatus and method for storing and retrieving ordered collections of keys in a compact zero complete tree
US6366903B1 (en) Index and materialized view selection for a given workload
KR20040103495A (en) Positional access using a b-tree
CN109947904A (en) A kind of preference space S kyline inquiry processing method based on Spark environment
US7277892B2 (en) Database processing system, method, program and program storage device
EP1341098A2 (en) Getpage - Workload based Index Optimizer
EP1349082A1 (en) Method and apparatus for querying relational databases
US20060143206A1 (en) Interval tree for identifying intervals that intersect with a query interval
CN113609166A (en) Search method, search device, computer equipment and computer-readable storage medium
US6694324B1 (en) Determination of records with a specified number of largest or smallest values in a parallel database system
Wang et al. Regular expression matching on billion-nodes graphs
EP3506123B1 (en) Computer system and method for fast selection of names in a database of person data
KR100434718B1 (en) Method and system for indexing document
US11341147B1 (en) Finding dimensional correlation using hyperloglog
KR20100086860A (en) Method for deriving thesaurus database from statistics
KR100440906B1 (en) Method and system for indexing document
JP2004021797A (en) Database management method and device
Chen et al. On the query evaluation in search engines
JPH04337867A (en) Data base retrieval system
JPH05313971A (en) Key word managing system in relational data base
Chen et al. Efficient algorithm for determining the optimal execution strategy for path queries in OODBS

Legal Events

Date Code Title Description
AS Assignment

Owner name: SAP AKTIENGESELLSCHAFT, GERMANY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VON BERGEN, AXEL;SCHWARZ, ARNE;SAUERMANN, VOLKER;REEL/FRAME:015128/0136;SIGNING DATES FROM 20030915 TO 20030929

AS Assignment

Owner name: SAP AG,GERMANY

Free format text: CHANGE OF NAME;ASSIGNOR:SAP AKTIENGESELLSCHAFT;REEL/FRAME:017358/0778

Effective date: 20050609

Owner name: SAP AG, GERMANY

Free format text: CHANGE OF NAME;ASSIGNOR:SAP AKTIENGESELLSCHAFT;REEL/FRAME:017358/0778

Effective date: 20050609

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION