T 1003/09 (Virtual index changes/GOOGLE) 29-04-2015
Download und weitere Informationen:
A database system for viewing effects of changes to a[n] index for a query optimization plan
Amendments - added subject-matter (no)
Claims - clarity (yes)
Inventive step - (yes)
Summary of Facts and Submissions
I. The transfer of the European patent application no. 00960157.6 from Computer Associates Think, Inc. (legal predecessor of the current applicant) to Google Inc. (current applicant) was requested with letter dated 22 August 2012.
The registration of the transfer took effect on 23 August 2012, as confirmed by the communication of the EPO dated 21 September 2012.
In the following no distinction is made between the current applicant/appellant and its predecessor.
II. The applicant (appellant) appealed against the decision of the Examining Division refusing the European patent application no. 00960157.6.
III. In the contested decision, the Examining Division came, inter alia, to the conclusion that claim 1 of the main request, filed by telefax on 7 October 2008, violated Article 123(2) EPC because, by omitting features of the original claims, it contained subject-matter extending beyond the content of the application as filed. The same objection applied to claim 1 of the auxiliary requests 1 to 3, filed by telefax on 7 October 2008, which omitted the same features as claim 1 of the main request. Claim 1 of the auxiliary request 4, filed by telefax on 16 October 2008, violated Article 123(2) EPC because the claimed combination of features had no basis in the application as originally filed. Furthermore, the Examining Division decided not to admit the auxiliary request 5, filed at the oral proceedings held on 7 November 2008, because it appeared to violate Article 123(2) EPC.
IV. According to point 4. of the contested decision, the Examining Division declined to discuss the issues of clarity and inventive step at the oral proceedings, as requested by the applicant, since, due to the violation of Article 123(2) EPC and the "consequent lack of an effective filing date", it was not possible to determine the state of the art and discuss the inventiveness of the requests on file.
Nevertheless, under the heading "Obiter dicta" the Examining Division raised some questions concerning the clarity of claim 1 according to the main request then on file (Article 84 EPC) and the inventive step of the corresponding subject-matter under Article 56 EPC in view of the following prior art document:
D1: CHAUDHURI, Surajit; NARASAYYA, Vivek, "AutoAdmin "what-if" index analysis utility", ACM SIGMOD Record, ACM, 1998, pages 367-378.
V. With the notice of appeal, the appellant requested that the decision of the Examining Division be set aside in its entirety and a patent be granted on the basis of the main request filed with letter dated 7 October 2008.
VI. With the statement of grounds of appeal dated 27 April 2009, the appellant submitted a new main request and seven auxiliary requests.
In point 1.5 of the statement of grounds, the appellant requested that the Board also take a decision on the obiter dicta objections under Articles 84 and 56 EPC and grant a patent.
In point 9.2 of the statement of grounds, the appellant noted that despite the applicant's request for the Examining Division to raise all grounds of refusal in the decision, the Examining Division had not given any indication as to whether the requirements of Articles 84 and 56 EPC were satisfied by the first to third auxiliary requests considered in the decision (which conformed closely to the second to seventh auxiliary requests on file). In the event that the Board could not reach a favourable decision on any of the requests on file, the appellant requested that the application be remitted to the Examining Division for consideration of the second to seventh auxiliary requests.
VII. With letter dated 16 December 2014, the appellant was summoned to oral proceedings scheduled to take place on 29 April 2015.
VIII. In a communication dated 6 February 2015 pursuant to Article 15(1) RPBA, the Board made some preliminary observations relating to the appellant's requests and to the objections under Articles 123(2), 84 and 56 EPC raised in the contested decision.
IX. In reply to the Board's communication, the appellant made further submissions with letter dated 27 March 2015 addressing in particular the Board's clarity and inventive step objections.
X. With letter dated 27 April 2015, the Board was informed that the appellant and its representative would not be present at the oral proceedings.
XI. On 29 April 2015 oral proceedings were held as scheduled in the absence of the appellant. At the end of the proceedings, the Chairman pronounced the Board's decision.
XII. Claim 1 according to the main request reads as follows:
"A computer-implemented method for viewing changes to an original optimization plan for a query to a database (212), the database (212) having an original table (308) with data stored therein, and the query including a reference to the original table (308),
characterised by the method comprising:
defining (402) a virtual table (312) that is a copy of the original table (308) but which excludes data stored in the rows of the original table (308), wherein defining (402) a virtual table (312) includes copying the original table statistics to the virtual table (312), wherein the original table statistics include column statistics, histograms and segment storage;
defining (404) a virtual index, the virtual index being an index associated with the virtual table;
replacing (406), in the query, the reference to the original table (308) with a reference to the virtual table (312);
determining (408) a new optimization plan (324) for the query;
replacing (410), in the new optimization plan, a reference to the virtual table (312) with a reference to the original table; and
displaying (412) the new optimization plan (324)."
Claims 2 and 3 are dependent on claim 1.
Claim 4 reads as follows:
"A computer program product comprising instructions and data which, when executed by a suitable computer, cause the computer to perform the method of any one of claims 1 to 3."
Claim 5 reads as follows:
"An apparatus for viewing changes to an original optimization plan for a query to a database (212), the database (212) being suitable for having an original table (308) with data stored therein, and the query being suitable for including a reference to the original table (308),
characterised by the apparatus comprising:
means for defining a virtual table (312) that is a copy of the original table (308) but which excludes data stored in the rows of the original table (308), wherein the means for defining a virtual table (312) is operable to copy the original table statistics to the virtual table (312), wherein the original table statistics include column statistics, histograms and segment storage;
means for defining a virtual index, the virtual index being an index associated with the virtual table;
means for replacing, in the query, the reference to the original table (308) with a reference to the virtual table (312);
means for determining a new optimization plan (324) for the query;
means for replacing, in the new optimization plan, a reference to the virtual table (312) with a reference to the original table; and
means for displaying the new optimization plan."
Claims 6 and 7 are dependent on claim 5.
The first to seventh auxiliary requests are not relevant to the present decision and thus need not be further specified.
XIII. The appellant's arguments may be summarized as follows:
The main request submitted with the statement of grounds of appeal corresponded to the main request considered by the Examining Division, but with the independent claims having been amended to specify that the original table statistics included column statistics, histograms and segment storage. This amendment removed the objection of intermediate generalisation raised in the contested decision.
As to the Examining Division's view that the step of "adding, to the query, a reference to the virtual index" was presented as essential in the present application, it should be observed that most database queries did not contain a reference to an index. For instance page 13, lines 5 to 7 of the present application as published showed a database query that did not contain a reference to an index. Some database queries, however, contained a reference to an index in the form of a hint to the query optimiser (see page 13, lines 18 to 20). However, it was not necessary for a query to contain a reference to an index because database query optimisers were able to intelligently determine whether an index should be used when executing a query and, if so, to determine which indexes should be used.
As to the objection under Article 84 EPC raised in the Board's communication that claim 1 did not specify what was done with the "virtual index", the technical problem of providing an alternative method to preview the effects of a particular indexing design would be solved even if the optimiser decided not to use the virtual index because the user would be provided with the valuable information that the new index did not improve the efficiency of the query.
As to the question of inventive step, the objective technical problem solved by the present invention was simply to seek an alternative to the arrangement of D1. In fact, the claimed invention would not have been obvious to the skilled person having regard to D1 because:
- the claimed invention operated in a fundamentally different way from the arrangement of D1;
- D1 taught away from the claimed invention;
- the claimed feature of "defining a virtual table ... which excludes data" and "defining a virtual index ... associated with the virtual table" went against normal practice in the field of database management systems.
The arrangement of D1 allowed the test of hypothetical index configurations, but required a programmer to perform two difficult tasks: firstly the programmer had to reprogram the database management system to provide an extended "CREATE INDEX" statement (cf. D1, first paragraph of section 3.2.1 on page 370); and, secondly, the programmer had to reprogram the database management system (DBMS) and query optimiser to implement an "HC mode". These modifications would not only be difficult, but also require access to the source code of the DBMS. Rather than using the actual table of the database to be tested (which required the implementation of an "HC mode"), the claimed subject-matter used a copy of the original table (i.e. a "virtual table"). By using a copy, the effect of adding or dropping indexes could be tested without adversely affecting the operation of the original table. Furthermore, as the virtual table did not contain any rows, the creation of an index involved little or no effort because the row data of the table did not need to be sorted. Thus, by using the normal index creation routines of the database management system upon a table that contained no row data, indexes could be created quickly without requiring the "CREATE INDEX" statement to be extended by a "WITH STATISTICS_ONLY" argument.
Thus, the claimed subject-matter and D1 operated in a fundamentally different manner, since the former created a "real index" on an empty copy of a table, whereas the latter created a "hypothetical index" on a real table full of data.
D1 provided no pointer towards the claimed feature of a virtual table or any other teaching which would have given to the skilled person any incentive or motivation to implement a virtual table.
The Examining Division's assertion that the skilled person faced a "one way solution" was not supported by any evidence. Furthermore, the Examining Division was legally incorrect to argue that the claimed solution was obvious because it allegedly did not overcome "any particularly challenging technical implementation problems". In fact, it was completely irrelevant for the purpose of Article 56 EPC to consider whether it was easy to put a non-obvious concept into practice.
None of the documents cited by the Examining Division disclosed the claimed feature of defining a virtual table that excluded data stored in the rows of the original table, but which included the statistics of the original table. Given that the virtual table was not obvious, it was indisputable that all of the remaining features of the claim that made use of the virtual table were also not obvious.
In summary, the claimed subject-matter provided a non-obvious solution to the technical problem of providing an alternative method to preview the effects of a particular indexing design on the optimisation plan for a query.
Reasons for the Decision
1. The appeal is admissible.
Article 123(2) EPC
2. Claim 1 of the main request considered in the decision under appeal related to a "computer implemented-method for viewing changes to an original optimization plan for a query to a database".
Claim 1 specified the following features and steps:
(a) the database has an original table with data stored therein;
(b) the query includes a reference to the original table;
(c) defining a virtual table that is a copy of the original table but which excludes data stored in the rows of the original table,
(i) wherein defining a virtual table includes copying the original table statistics to the virtual table;
(d) defining a virtual index, the virtual index being an index associated with the virtual table;
(e) replacing, in the query, the reference to the original table with a reference to the virtual table;
(f) determining a new optimization plan for the query;
(g) replacing, in the new optimization plan, a reference to the virtual table with a reference to the original table; and
(h) displaying the new optimization plan.
2.2 According to the Examining Division, independent claims 1, 4 and 7 as originally filed referred to the step of "adding, to the query, a reference to the virtual index" (cf. claim 1) or to a query "comprising a reference to an original index" (cf. claims 4 and 7). That meant that a query had a reference to the virtual or the original index. In the light of the problem to be solved by the invention, a skilled person would realise that it was essential to have a reference to an index in the query, as this reference told the optimiser to use the index in the query optimisation plan, thus creating a link between the presence of the index and the query optimisation plan. Furthermore, the fact that the application as originally filed showed these features in the independent claims meant that the applicant considered these features as essential at the filing date. Thus, a skilled person would not directly and unambiguously derive that these features could be omitted. Since the applicant had deleted these features in claim 1 of the main request, this request violated Article 123(2) EPC.
2.3 Claim 1 according to the new main request filed with the statement of grounds of appeal differs from the main request considered by the Examining Division in that feature (c) comprises the following additional clause:
(ii) wherein the original table statistics include column statistics, histograms and segment storage.
2.4 As submitted by the appellant in paragraphs 1.1.1 and 1.2.14 of the statement of grounds, feature (ii) has a basis in the disclosure on page 10, lines 12 to 14 of the application as filed and aims at removing an objection of intermediate generalisation raised in the contested decision.
3. As to the omission of a feature recited in the original claim 1 from the present claim 1 which caused the contested refusal of the application, the appellant essentially argued that the Examining Division's reasoning was flawed and not in compliance with Article 123(2) EPC which required that an application might not be amended in such a way that it contained subject-matter extending beyond the content of the application as filed.
3.1 According to the appellant (see paragraph 1.2.2 of the statement of grounds), most database queries did not contain a reference to an index. In fact, it was not necessary for a query to contain a reference to an index because database query optimisers were able to intelligently determine whether an index should be used when executing a query and, if so, to determine which indexes should be used. The option to include a reference to an index in a query via hints was provided so that a database user could override the normal operation of the query optimiser by forcing it to use a particular index.
4. The independent claims as originally filed either included the step of "adding, to the query, a reference to the virtual index" (see claim 1) or specified the query as having "a reference to an original index" (claims 4 and 7), whereas claim 1 of the appellant's request does not comprise any of these limiting features.
4.1 In order to assess whether the subject-matter of an amended claim, which no longer comprises a feature that was recited in the original independent claim, meets the requirements of Article 123(2) EPC, all that needs to be examined is whether the subject-matter of the amended claim has been disclosed directly and unambiguously in the application as filed considered as a whole (T 910/03 of 7 July 2005, reasons 6). In other words, an amendment is allowable under Article 123(2) EPC if it does not change the technical information contained in the application as filed.
4.2 In the present case, the decisive question is whether it can be directly or indirectly inferred from the application documents that the method of the invention requires a reference in the SQL statement to the original or to the virtual index, or whether such reference may be understood as optional.
4.3 According to the first paragraph of page 1 of the published application, the "present invention relates generally to viewing the effect of changes to indexing designs for database tables. More particularly, the present invention relates to using virtual tables and virtual indexes for determining optimization plans for database queries when indexes for the database tables are changed".
In the section "Background" (page 3, line 27 to page 4, line 4), it is specified that an "optimization plan is automatically determined by the database for the SQL statement when the statement is parsed by the database. ... Specifically, the optimization plan shows, among other things, ... whether an index would be used and, if so, how that index would be interpreted".
In a passage of the description relating to a flow diagram of the method of the invention (see page 11, lines 12 to 21), it is noted that "if no original index 310 associated with original table 308 exists, virtual index 314 may be created and defined by the user ... . Also, in situations where the user wishes to experiment with no index, the user may simply choose to define virtual index 314 by deleting any indices present in original index 310, ... . In addition, any reference to original index 310 in SQL statement 320 is switched with the name of virtual index 314" (emphasis added).
4.4 In other words, already from the passages of the description cited above, the skilled reader can infer that an original table need not be associated with an original index. It goes without saying that in such case a query would not have a reference to an original index (as specified in claims 4 and 7 as originally filed). That a reference to an original index is to be understood as an optional feature of a query is further confirmed by the use of "any" in the expression "any reference to original index 310".
4.5 Furthermore, as pointed out by the appellant, the present application shows on page 13 both a database query with no reference to an index (lines 5 to 7) and a query which contains a reference to an index in the form of a hint to the query optimiser (lines 18 to 20).
4.6 A detailed embodiment of the claimed method, implemented as a software package PAFO ("Plan Analyzer for Oracle"), is illustrated in Figures 3 and 4 and described on pages 10 to 12 of the published application.
According to step 402 of Figure 4 (ibid. page 10, second paragraph), the procedure 316 identifies the original table 308, as referenced in the SQL statement 320, and copies the original table 308 to define the virtual table 312.
In step 404, the virtual index 314, to be associated with the virtual table 312, is defined. If any original index 310 associated with the original table 308 exists, the procedure 316 makes a copy of the original index 310 to define the virtual index 314 (ibid. page 11, first paragraph).
If no original index 310 associated with the original table 308 exists, the virtual index 314 may be created and defined by the user through the procedure 316 (ibid. page 11, third paragraph).
It is also pointed out on page 20, lines 12 to 15 that "[h]int parameters [in the SQL] statement may also need to be changed if the hints reference the table or an index on the table" (underlining added).
4.7 In summary, the skilled person reading the application as originally filed understands that modifications of an original optimisation plan for a query may be brought about according to the present invention by modifying the original index design of a database table and that this may involve replacing any reference to the original index in the SQL statement with a reference to a virtual index, adding a reference to virtual index, if no index was used in the original optimization plan, or dropping any reference to the original index (cf. application as published, page 5, lines 10 to 12).
4.8 In the Board's opinion, the step of "adding, to the query, a reference to the virtual index" cannot cover all embodiments disclosed in the original application and thus is not to be understood as a feature essential to the implementation of the method of the invention. Its deletion from the independent method claim is supported by the originally filed application and consequently does not violate Article 123(2) EPC.
Article 84 EPC
5. According to the Examining Division (see "Obiter dicta"), claim 1 of the main request then on file did not comply with Article 84 EPC because the overall technical function of the claimed method was unclear. In fact, according to dependent claim 4 the virtual statistics were simply obtained by copying the original index statistics, presumably after having copied the original index to the virtual index. However, if the original table and the virtual table had the same set of indexes, the resulting query optimisation plan would be identical and therefore the problem of viewing the effect of changes to an index topography on the original optimisation plan would not be solved by the features of claim 1.
5.1 According to the appellant, the fact that claim 1 might encompass the case of the original table and the virtual table having identical indexes was no ground for a clarity objection under Article 84 EPC.
6. Claim 1 according to the main request is directed to a method for "viewing changes to an original optimization plan for a query to a database". Its steps comprise, inter alia, the definition of a "virtual table", which is a copy of the original table of the database, and of a "virtual index" associated with the virtual table. As correctly pointed out by the Examining Division, defining the virtual index may include copying statistics associated with an original index associated with an original table (cf. claim 3 of the present main request and claim 4 of the main request considered in the contested decision). If it is assumed that the index design is the only factor which may influence the optimisation plan, a virtual index obtained by copying statistics associated with an original index may indeed fail to bring about any changes to the original optimisation plan.
6.1 However, even if the step of defining the virtual index according to claim 1 may include copying statistics associated with an original index, as specified in dependent claim 3, it does not exclude further steps which may then distinguish the virtual index from the original index and thus cause changes to the optimisation plan.
In fact, it is understood from the application as published that defining a virtual index by first copying the statistics associated with the original index into the virtual index aims at ensuring that the "virtual indices preferably have the same data structure as the original indices, including the same constraints and definitions" (page 11, lines 8 to 11).
According to the application "[n]ew indices may be added and existing indices may be dropped very quickly" (page 5, lines 27 to 29), or "the user may simply choose to define virtual index 314 by deleting any indices present in original index" (page 11, lines 14 to 16).
6.2 Hence, the Board considers that the feature that defining the virtual index includes copying statistics associated with an original index associated with the original table constitutes a preliminary step which may be carried out when a virtual index is defined. It does not imply that the virtual index has to be identical to the original index and that in these circumstances the method of the invention cannot show any changes to an original optimisation plan.
6.3 Moreover, the Board agrees with the appellant that viewing changes to an original optimisation plan in the sense of the present invention covers all information provided to a user concerning the selection of the optimisation plan when a different index design or no index is contemplated. In particular, also the information that no changes to the optimisation plan are visible after modification of an indexing design is a possible result of the claimed method and fulfils the purpose of viewing the effect of index changes.
6.4 In the opinion of the Board, the overall technical function of the claimed method of testing the effect of indexing by viewing changes to an optimisation plan of an SQL statement is clearly solved by the features recited in claim 1 of the appellant's request. Consequently, the objection under Article 84 EPC raised by the Examining Division was not justified.
7. In paragraph 1.4.11 of the statement of grounds and in the corresponding note 3, the appellant has stressed that an essential aspect of the present invention was the creation of a real index on an empty copy of a table, and that the virtual index was "real" in the sense that it was created by the standard index creation routines of the database management system and was fully visible to the database management system.
7.1 It can therefore be questioned whether it is appropriate to qualify as "virtual" an index which is effectively "real".
Claim 1 specifies that the virtual index is "an index associated with the virtual table". Thus, the term virtual does not imply that it is an index created with a special index creating tool, but merely that it is associated with a virtual table.
This interpretation of the term "virtual index" is sufficiently clear from the context of the claim and supported by the description.
7.2 In summary, the Board considers that claim 1 of the main request complies with Article 84 EPC.
Article 56 EPC
8. As explained in the background section of the description (application as published, page 1, third paragraph), in most databases, "data is externally structured into tables. Each table generally includes a series of fields which define columns of the table. Each row of the table comprises a single record".
A program referred to as a "Database Management System" ("DBMS") identifies and retrieves certain information objects in response to "queries" from a user (ibid. page 1, last paragraph).
8.1 To facilitate information retrieval from a database, information objects are "indexed", that is they are characterised by assigning descriptors to identify their content (ibid. page 2, lines 10 to 12).
According to the description (ibid. page 2, lines 15 to 29), the process of building an index for a large table generally consumes great amounts of time and resources as it requires the DBMS to scan the table, retrieve the data from every row and column and to add the data to the index, which is often in the form of a B-tree structure.
8.2 The gist of the present invention consists essentially in creating a "virtual table" by copying the original table, excluding any of the original data. By excluding data when copying the original table to define the "virtual table", the associated index, i.e. the "virtual index" may be easily and quickly modified or created, if it does not exist. By replacing in the query references to the original table with references to the "virtual table", changes to the original indexing design can be quickly tested and a new optimisation plan determined (cf. page 5, line 10 to page 6, line 14).
9. In the contested decision, the Examining Division, under the heading "Obiter dicta", raised objections relating to the inventive step of the subject-matter of claim 1 according to the main request then on file.
9.1 In particular, the Examining Division noted that the method known from the closest prior-art document D1 essentially achieved the same purpose as the present invention, in the sense that both supported a "what-if" analysis for query optimisation plans with respect to index changes. However, document D1 implemented this analysis as part of the DBMS software, using modifications of built-in SQL commands such as "CREATE INDEX", whereas the application proposed an alternative implementation on top of the DBMS, thus without requiring access to the DBMS source code.
9.2 In the Examining Division's view, third-party tool developers usually had no access to the DBMS source code, but often wanted to provide known tools for a particular DBMS software. Thus, the question to be considered was whether the implementation of a known tool on top of a DBMS by a third-party vendor involved an inventive step.
9.3 The Examining Division came to the conclusion that the implementation according to the claimed method was straightforward, as it merely involved copying table and index information for hypothetically changing the index topography, and using the existing tools for obtaining the query optimisation plan. In other words, the Examining Division considered that the claimed method was the result of routine software development.
9.4 Furthermore, the Examining Division observed that in an environment, in which the "CREATE INDEX" command could not be modified, the creation of a hypothetical index was also not possible. As the optimiser needed the metadata of the table indexes and statistics that would be present if the indexes had been changed for the "what-if" scenario, the skilled person knew that the required metadata had to be created. The straightforward way to do this was, in the Examining Division's opinion, to create a new "virtual" table having the same structure as the original table, but with a changed set of "virtual" indexes, and to provide the optimiser with the required table statistics and index statistics.
9.5 In summary, the Examining Division considered that a developer wishing to provide a third-party tool for adding a known functionality to a DBMS, faced a one-way situation leading directly to the claimed solution.
10. In the statement of grounds of appeal, the appellant agreed that the subject-matter of claim 1 and the arrangement of document D1 achieved the same technical effect. However, the appellant did not accept the formulation of the technical problem proposed by the Examining Division and disputed that the claimed solution would have been obvious to the skilled person.
10.1 In particular, the appellant submitted that the Examining Division was incorrect to have added the constraint that the source code of the DBMS could not be modified.
11. According to document D1, an important aspect of data administration that critically influences performance is the ability to select indexes for a database. In order to select the right indexes for a database, it is crucial for the database administrator (DBA) to be able to perform a quantitative analysis of the existing indexes. Furthermore, according to document D1, the DBA should have the ability to propose hypothetical ("what-if") indexes and quantitatively analyse their impact on the system performance (see abstract).
11.1 As pointed out in D1 (page 367, right-hand column, lines 5 to 19), the problem of picking the right set of indexes cannot be simply solved by a good search algorithm, but involves necessarily an analysis of the impact that the selection of a certain index would have on the performance of the database. Thus an index analysis utility is of great importance since it allows the DBA to propose hypothetical ("what-if") indexes and quantitatively analyse their impact on the system performance.
11.2 Figure 1 of document D1 gives an architecture overview of the known index analysis utility developed for the Microsoft SQL Server 7.0. As explained in the last paragraph on page 367, the term "configuration" refers to a set of indexes and the size of each table in the database. A "hypothetical configuration" may consist of existing (i.e. "real") indexes as well as hypothetical ("what-if") indexes. The "workload" is defined as a set of SQL statements. A "hypothetical configuration analysis (HCA) engine" supports an interface for simulating a hypothetical configuration and an interface for summary analysis on the data resulting from the simulation.
By evaluating a workload for a configuration, the cost of queries in the workload can be estimated if the indexes in the corresponding configuration were actually made real. In addition, it is possible to determine for each query which indexes in the configuration would be used to answer the query (see first paragraph on page 368).
11.3 According to D1 (page 370, left-hand column, last paragraph), the simplest option of simulating a hypothetical configuration by physically altering an existing configuration is not viable since it involves dropping and creating "real" indexes. An optimizer's decision on whether to use an index is solely based on the statistical information relating to the table columns in the index. These statistical measures can be efficiently gathered via sampling without compromising accuracy (D1, page 370, right-hand column, lines 9 to 16).
11.4 For the creation of hypothetical indexes, document D1 uses the "CREATE INDEX" command extended with the qualifier "WITH STATISTICS_ONLY" (see D1, section 3.2.1). As the hypothetical indexes are associated with actual database tables, there is a danger that these indexes could be used by other queries to the database. This problem is avoided in D1 by adding to the DBMS a so-called "HC mode" (D1, page 372, left-hand column, lines 5 to 15).
11.5 In summary, the method known from document D1 inter alia comprises the following steps:
(a) the database has an original table with data stored therein;
(b) the query includes a reference to the original table;
(c) defining a hypothetical index;
(d) determining a new optimization plan for the query;
(e) displaying the new optimization plan.
12. Claim 1 of the appellant's main request in particular differs from the arrangement known from document D1 in that it comprises the following steps:
- defining a virtual table that is a copy of the original table but which excludes data stored in the rows of the original table, wherein defining a virtual table includes copying the original table statistics to the virtual table;
- replacing, in the query, the reference to the original table with a reference to the virtual table;
- replacing, in the new optimization plan, a reference to the virtual table with a reference to the original table.
12.1 As explained by the appellant in the statement of grounds of appeal, an index to be tested can be created quickly, by using the normal index creation routines of the DBMS, because the virtual table does not contain any rows. Further, by using a copy of the original table, the effect of adding or dropping indexes can be tested without affecting the operation of the original table.
12.2 In summary, both document D1 and the present invention seek to provide a tool for analysing the impact of an index design on the operation of a database. D1 solves the problem at the level of the DBMS, whilst the invention proposes a solution on top of the DBMS.
13. The Board considers that document D1 clearly highlights the benefits of a tool for analysing the impact of different index designs so as to facilitate index selection. The mere idea of extending this functionality to a generic DBMS and of offering a tool that does not operate at the level of the DBMS and thus does not require for its development knowledge of the source code of the DBMS software cannot contribute to the inventive step because it reflects an obvious need, as shown in document D1.
13.1 Hence, the question to be considered is whether it would have been obvious to a person skilled in the art wishing to extend the functionality offered by the method of D1 to a generic DBMS to arrive at the claimed method.
13.2 The Examining Division's reasoning was based on the assumption that given the problem and knowing that the "CREATE INDEX" command could not be modified as suggested in D1, there could be only one solution suggested by the fact that the optimiser needed only the metadata of the database under the "what-if" scenario.
13.3 D1 realises that the optimiser's decision on whether to use an index or not is only based on the statistical information on the columns in the index, and makes use of the original table and of a special tool of the DBMS to create a hypothetical index. On the other hand, the present invention teaches that a copy of the original table without data, but including the original statistics, can be used in a normal DBMS environment to simulate new index designs and assess their performance.
13.4 None of the available prior art teaches copying a table without data to create a virtual table while keeping the statistics of the original table.
It may be, as held by the Examining Division, that there is only one solution to the problem of providing the functionality of the method according to document D1 without modifying the DBMS software. However, this does not imply that this solution is a straightforward application of the teaching of D1 or that it would be obvious to the skilled person.
In fact, in the Board's opinion, the alleged uniqueness of a solution to a known problem does not provide sufficient proof for a lack of inventive step. What matters is whether it would have been obvious to a skilled person to actually arrive at the solution.
13.5 According to the Examining Division, the skilled person was aware that the optimizer needed the metadata of the database under the "what-if" scenario, i.e. the metadata of the tables, indexes, statistics that would be present if the indexes were changed as foreseen by the "what-if" scenario. From this, the Examining Division concluded that the straightforward way was to create a new "virtual" table having the same schema as the original table with the changed set of virtual indexes and to provide the optimiser with the table statistics and index statistics. Since the concept of a "virtual table", as a copy of the original table which excludes data stored in the original table but includes the original table statistics, is not disclosed in any of the available prior art, the Board considers that a pointer to the invention is missing which would bridge the gap between the prior art and the present invention.
14. In summary the Board comes to the conclusion that the subject-matter of claim 1 according to the appellant's main request involves an inventive step.
Further matters
15. Claim 5 of the main request relates to an "apparatus for viewing changes to an original optimization plan for a query to a database".
The application as originally filed comprised only method claims 1 to 9. All the originally filed claims 1 to 9 were replaced with a new set of claims 1 to 21 with letter dated 25 April 2005, whereby claims 12 to 21 were directed to an apparatus. Under the heading "Summary of Amendments", the applicant merely noted that new apparatus claims 12 to 21, which corresponded to method claims 1 to 10 respectively, had been added, but did not identify any passages of the original application as basis for the introduction of the apparatus claims. This question, which does not appear to have been considered by the Examining Division, ought to be addressed before a patent may be granted.
15.1 The contested decision specifies as application documents for the main request sheets 1/4 to 4/4 of the application as published. However, the Board notes that the applicant filed with letter dated 8 January 2002 sheets 1/4 to 4/4 of formal drawings.
15.2 Finally, proper acknowledgement of the closest prior art document D1 and adaptation of the description are also required to fulfil the requirements of the EPC.
16. In view of the above, the Board comes to the conclusion that claim 1 of the main request fulfils the requirements of the EPC. Furthermore, the Board finds it appropriate to exercise its powers under Article 111(1) EPC and remit the case to the department of first instance for further prosecution.
Order
For these reasons it is decided that:
1. The decision under appeal is set aside.
2. The case is remitted to the department of first instance for further prosecution.