EP1353278A2 - Comparison of source files - Google Patents

Comparison of source files Download PDF

Info

Publication number
EP1353278A2
EP1353278A2 EP02024709A EP02024709A EP1353278A2 EP 1353278 A2 EP1353278 A2 EP 1353278A2 EP 02024709 A EP02024709 A EP 02024709A EP 02024709 A EP02024709 A EP 02024709A EP 1353278 A2 EP1353278 A2 EP 1353278A2
Authority
EP
European Patent Office
Prior art keywords
database
queries
database queries
query
comparison
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
EP02024709A
Other languages
German (de)
French (fr)
Other versions
EP1353278B1 (en
EP1353278A3 (en
Inventor
Ralf Neumann
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.)
Software Engineering GmbH
Original Assignee
Software Engineering GmbH
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 Software Engineering GmbH filed Critical Software Engineering GmbH
Priority to CA002482142A priority Critical patent/CA2482142A1/en
Priority to PCT/EP2003/003698 priority patent/WO2003085552A2/en
Priority to US10/410,316 priority patent/US20030195878A1/en
Priority to AU2003227457A priority patent/AU2003227457A1/en
Publication of EP1353278A2 publication Critical patent/EP1353278A2/en
Publication of EP1353278A3 publication Critical patent/EP1353278A3/en
Application granted granted Critical
Publication of EP1353278B1 publication Critical patent/EP1353278B1/en
Anticipated expiration legal-status Critical
Expired - Lifetime 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/21Design, administration or maintenance of databases
    • G06F16/217Database tuning

Definitions

  • the invention relates to a method for comparing two Source files containing database queries in which the Database queries determined from the two source files and in which the determined database queries a first source file with the determined Database queries of a second source file compared become. Furthermore, the invention relates to a Read comparison device with source files Readers and with database queries from source files extracting extractants.
  • Databases For access to databases, especially relational ones Databases, such as DB2 from IBM, are database queries from external programs using the databases interact, generated. These database queries will via a standardized interface, the Structured Query Language (SQL) interface. in this connection are SQL queries of the programs to the database transmitted and processed in the database. These SQL queries can be from a variety of query parameters exist, for example the parameters "Cursor Name ",” Statement Type “(Select, Insert, Update, Delete), “Tables”, “Joins”, “Predicates”, “Select, Update and Insert-Columns ",” Select Option Text “and” Select Option Columns "can be used.
  • SQL queries can be from a variety of query parameters exist, for example the parameters "Cursor Name ",” Statement Type “(Select, Insert, Update, Delete), “Tables”, “Joins”, “Predicates”, “Select, Update and Insert-Columns ",” Select Option Text “and” Select Option Columns "can be used.
  • the Database actions triggered which are the answering enable the database query.
  • the response times of the Database queries can be chosen depending on the Query parameters vary widely. It is desirable that the SQL queries are optimized and if possible enable short response times.
  • the conventional Database queries of the original program and the of the new program compared. This will sequentially each database query of the original Program identified in the same place in the database query and the new program String of database queries compared. Frequently however, the database queries in the Program versions only shifted in their position. This means that a database query that is in a old program showed up at the beginning of the program in a new program, possibly at the end of the program shows up. With the conventional method one can do not determine such offset of the database query because conventionally, a first database query in one old program with the first database query in the new program and in the same way the following Database queries are checked.
  • Database queries are traditionally necessary to all found changes manually to investigate what due to the search problems outlined above after changing database queries, a significant one Effort means.
  • a syntax analysis is, for example, with the help of a Parser program carried out.
  • the syntactic elements of the database query determined.
  • all database queries become one first source file broken down into its syntactic elements, all database queries of a second source file in your disassembled syntactic elements and all syntaxes of the Database queries of the first source file with all Syntaxes of the database queries of the second source file compared. Differences that occur can now be better be evaluated because of changes in positioning of the syntactic elements within one Database query can be recognized. Changes in the String does not change the Syntax, which is why changed strings when comparing are not taken into account.
  • the sources for determining the syntax can for example the source code of the source files, the Database request module (DBRM) of the source files, the DB2 Catalog information and any other Access modules of the source files.
  • DBRM Database request module
  • a database query is made up of syntactic ones Elements together, the different categories can be assigned. To ensure that at a comparison of syntactic elements of the corresponding Categories will be compared with each other suggested that syntactic elements of the Database queries are saved categorized.
  • the syntax of a database query is combined with its syntactic element preferably in a table saved. To access this table too the syntax-specific identifier in the Saved table. Furthermore, the database query can be accessed immediately and their position in the Source file to be determined when the mapping identifier is saved. Finally, by saving a comparison result can be determined whether in the second source file a similar or the same Database query has been found. For example when comparing a database query to a first one Source file with all database queries from a second Source file first in the first step an absolute different database query found. The comparison result is saved as a comparison value.
  • the next step is a database query in the second source file found that has some similarity with the database query of the first source file, taking this similarity as a comparison result is saved because it is higher than the previous one found similarity.
  • Another object of the invention is a Comparison device, in particular with a previously described procedures with reading source files Readers and with database queries from source files extracting extractants.
  • the reading materials are functional blocks that read the source files, so determine their content.
  • Extractants are functional Blocks from the content of the source files Extract database queries.
  • the syntax analysis means analyzing a database query are provided and the syntactic elements of the Comparative means for comparing database queries are provided.
  • the analysis means for example a Parsers are functional blocks that query the database analyze and extract their syntax. You can do that Analysis means the syntax into syntactic elements disassemble and thus available for comparison put. Comparison means each receive two syntaxes and compare them with each other. With the help of Comparative means it is possible to query every database the first source file with every database query second source file regarding the syntactical elements to compare.
  • Storage means are preferably provided, with their Help syntactic elements of database queries get saved.
  • Storage means are Functional units that store data. With the help of Storage medium is such a later access to the syntactic elements of every database query possible.
  • the weighting means are functional units that Combine and serve results with factors to the syntactic elements valences assigned. These values refer to to what extent a syntactic element relates to a Response time of a database when querying a database effect.
  • the excretions are functional elements the individual database queries have a similarity value assign. With the help of the elimination agent it is possible to make similar from dissimilar database queries distinguish and thus the number of examined Narrow database queries.
  • Fig. 1 shows a database 2, which a variety of Data. This data can be taken from the database Structured Query Language (SQL) queries be extracted. Programs 4 work with the database 2 using the SQL queries. Depending on the in the The SQL queries containing programs 4 vary Processing times in the programs 4 from each other. Becomes an old program 4a with a new program 4b replaced, it is desirable if the differences in the SQL queries between programs 4a, 4b would be determinable and thus an analysis of the changed SQL queries would be possible.
  • SQL Structured Query Language
  • the respective program is in step 6 4a, 4b analyzed and all SQL queries extracted. This is first carried out for the old program 4a and in follow it up for the new program 4b.
  • the sources for the extraction in step 6 can, for example, the Program 4 source codes, the database request modules (DBRM) Interfaces of programs 4, the DB2 Catalog information (Collection, Package and Version) as well as any other sources that come from different Access modules can be read out.
  • DBRM database request modules
  • All extracted SQL queries are in step 8 in disassembled their syntactic elements.
  • Parser to use that the SQL queries in their disassembled respective syntactic elements.
  • Table 8a created the syntactic elements categorically saved.
  • Step 10 in a storage table 10a per SQL Key of parser table 8a, the position of the SQL query in program 4a, 4b and a switch whether the SQL has already been assigned to another SQL stored.
  • step 12 the individual SQL queries that are in Table 8a have been compared. All SQL queries from an old program 4a compared with the SQL queries of the new program 4b. For example, the syntactic elements Coursor Name, Statement Type, Tables, Joins, Predicates, Select, update and insert columns, select option text and Select Option Columns are compared. For any combination of SQL queries from the old program 4a with SQL queries of the new program 4b becomes one Hit accuracy determined.
  • step 14 a percentage for all pairs Deviation and a weighted evaluation determined. at The percentage deviation is the difference absolutely considered between the individual SQL queries.
  • the weighted evaluation is for individual syntactic elements have different weights determined and occurring differences based on this Weighted weights. That means the individual syntactic elements have a minor impact on the weighted deviation than others. This is because that different syntactic elements of an SQL query different effects on the Performance of the SQL query. For example a change in the order of the Select Columns query an imperceptible change in the performance of the SQL query, whereas a changed where condition in an SQL query makes a big change in the performance of the SQL query causes.
  • step 14 After in step 14 the differences between the individual SQL queries of program 4a with those of program 4b these differences will be carried out evaluated. There are pairs of SQL queries in programs 4a and 4b that are not different from each other deviate, their difference is shown as 0 and these pairs are matched in step 16 marked. The pairs marked as matching can remain unconsidered in further consideration. The new program 4b is different from the old one Program 4a in relation to an SQL query found in this way not changed.
  • step 18 All as inconsistent - their difference is greater than 0 - marked pairs are in step 18 evaluated, whereby for each SQL query of the old Program 4a the SQL query of the new program 4b that matches the closest match.
  • step 20 After all SQL queries are examined and the best pairs are determined in step 18, in step 20 a threshold comparison was carried out.
  • Threshold is defined, which is the lowest deviation between pairs found determined that rated as no longer consistent become. All SQL queries that have changed in part have, but the amount of the deviation is smaller than that Threshold is considered to be partially consistent in the Step 20a and can be used in the analysis of the Programs 4a and 4b are initially disregarded.
  • this SQL pair is in step 20b as deleted or re-evaluated and marked. All SQL queries, that in a program 4b versus the SQL queries show considerable differences in program 4a or no longer exist, are thus considered new or erased and flagged so that these SQL queries when analyzing the new program 4b first can be taken into account.
  • Programs 4a and 4b work on one Database 2, in particular a DB2 database from IBM, with the help of SQL queries. If a new program 4b introduced and an old program 4a replaced, so it comes often that the performance of the new Program 4b significantly compared to the old program 4a changed.
  • a comparison device 22 is proposed.
  • the reading means 24 access the SQL queries of the Programs 4 via interfaces 24a, 24b.
  • the through the Reading means 24 determined SQL queries of the respective Programs 4 are in their by the extraction means 26 disassembled syntactic elements.
  • For each SQL query in storage means 28 a table with the ordered ones syntactical elements of the respective SQL query stored.
  • Comparison means 30 access the storage means 28 and read the tables of the SQL queries. With help the comparison means 30 become SQL queries of the program 4a compared with SQL queries of the program 4b. At the All SQL queries of the two programs are compared compared with each other. Are by the means of comparison Found 30 SQL queries related to their syntactic elements correspond to each other, they become SQL queries using the elimination means 32 as identified identically. Identical identified SQL queries need to analyze for differences between programs 4a and 4b no longer be taken into account.
  • the determined by the comparison means 30 Differences in the SQL queries are determined using the Weighting means 34 weighted. It means that Differences in the individual syntactic elements be evaluated differently. After a weighting all differences have been carried out, the Searched for pairs of SQL queries that reside in the two Programs 4a and 4b are most similar. In the Elimination means 32 becomes the measure of similarity evaluated between the pairs found and with a Threshold compared. Are pairs of SQL queries similar to each other, d. H. lie their weighted Differences below a certain threshold, so will they are shown as partially identical. SQL queries, that are hardly similar, d. H. their weighted value the distinction is above the threshold, are considered reported new or deleted.

Abstract

Method for comparison of two source files containing database queries, in which the two database queries are extracted from the source files and compared. Accordingly the syntax of each query is analyzed using syntax analysis tools, then the syntax of the database queries are compared with each other and the results of the comparison are output.

Description

Die Erfindung betrifft ein Verfahren zum Vergleich zweier Datenbankabfragen aufweisenden Quelldateien, bei dem die Datenbankabfragen aus den zwei Quelldateien ermittelt werden, und bei dem die ermittelten Datenbankabfragen einer ersten Quelldatei mit den ermittelten Datenbankabfragen einer zweiten Quelldatei verglichen werden. Des Weiteren betrifft die Erfindung eine Vergleichsvorrichtung mit Quelldateien lesenden Lesemitteln und mit Datenbankabfragen aus Quelldateien extrahierenden Extrahiermitteln.The invention relates to a method for comparing two Source files containing database queries in which the Database queries determined from the two source files and in which the determined database queries a first source file with the determined Database queries of a second source file compared become. Furthermore, the invention relates to a Read comparison device with source files Readers and with database queries from source files extracting extractants.

Für den Zugriff auf Datenbanken, insbesondere relationale Datenbanken wie DB2 von IBM, werden Datenbankabfragen von externen Programmen, die mit den Datenbanken interagieren, generiert. Diese Datenbankabfragen werden über eine standardisierte Schnittstelle, die Structured Query Language (SQL) Schnittstelle, durchgeführt. Hierbei werden SQL-Abfragen der Programme an die Datenbank übermittelt und in der Datenbank abgearbeitet. Diese SQL-Abfragen können aus einer Vielzahl von Abfrageparametern bestehen, wobei beispielsweise die Parameter "Cursor Name", "Statement Typ" (Select, Insert, Update, Delete), "Tabellen", "Joins", "Predicates", "Select-, Update- und Insert-Columns", "Select Option Text" und "Select Option Columns" genutzt werden können. For access to databases, especially relational ones Databases, such as DB2 from IBM, are database queries from external programs using the databases interact, generated. These database queries will via a standardized interface, the Structured Query Language (SQL) interface. in this connection are SQL queries of the programs to the database transmitted and processed in the database. These SQL queries can be from a variety of query parameters exist, for example the parameters "Cursor Name "," Statement Type "(Select, Insert, Update, Delete), "Tables", "Joins", "Predicates", "Select, Update and Insert-Columns "," Select Option Text "and" Select Option Columns "can be used.

Bei der Abfrage einer Datenbank mittels SQL werden in der Datenbank Aktionen angestoßen, welche die Beantwortung der Datenbankabfrage ermöglichen. Die Antwortzeiten der Datenbankabfragen können in Abhängigkeit der gewählten Abfrageparameter stark variieren. Dabei ist es erwünscht, dass die SQL-Abfragen optimiert sind und möglichst geringe Antwortzeiten ermöglichen.When querying a database using SQL, the Database actions triggered which are the answering enable the database query. The response times of the Database queries can be chosen depending on the Query parameters vary widely. It is desirable that the SQL queries are optimized and if possible enable short response times.

Programme, die mit den Datensätzen der Datenbanken arbeiten, werden im Laufe der Zeit verändert. Bei einer Veränderung der Programme kann es zu einer Veränderung der SQL-Abfragen kommen, die eventuell zu veränderten Antwortzeiten führen können. In manchen Fällen kommt es dazu, dass die Antwortzeiten negativ beeinflusst werden und nicht mehr tolerabel sind. Dann ist es notwendig, dass diejenigen SQL-Abfragen ermittelt wird, die unter anderem für die verlängerten Antwortzeiten verantwortlich sind.Programs that work with the records of the databases work, will change over time. At a Change in programs can lead to change of the SQL queries that may have to be changed Response times can lead. In some cases it happens to have a negative impact on response times and are no longer tolerable. Then it is necessary that those SQL queries that are found under responsible for the extended response times are.

Herkömmlich werden in einem solchen Fall die Datenbankabfragen der ursprünglichen Programms und die des neuen Programms miteinander verglichen. Dazu wird sequenziell jede Datenbankabfrage des ursprünglichen Programms ermittelt, die an der gleichen Stelle in dem neuen Programm stehende Datenbankabfrage gesucht und die Zeichenfolge der Datenbankabfragen verglichen. Häufig sind jedoch die Datenbankabfragen in den Programmversionen lediglich in ihrer Position verschoben. Dies bedeutet, dass eine Datenbankabfrage, die in einem alten Programm zu Beginn des Programms auftauchte, in einem neuen Programm eventuell am Ende des Programms auftaucht. Mit der herkömmlichen Methode lässt sich ein solcher Versatz der Datenbankabfrage nicht ermitteln, da herkömmlicher weise eine erste Datenbankabfrage in einem alten Programm mit der ersten Datenbankabfrage in dem neuen Programm und in der gleichen Weise die folgenden Datenbankabfragen überprüft werden.In such a case, the conventional Database queries of the original program and the of the new program compared. This will sequentially each database query of the original Program identified in the same place in the database query and the new program String of database queries compared. Frequently however, the database queries in the Program versions only shifted in their position. This means that a database query that is in a old program showed up at the beginning of the program in a new program, possibly at the end of the program shows up. With the conventional method one can do not determine such offset of the database query because conventionally, a first database query in one old program with the first database query in the new program and in the same way the following Database queries are checked.

Auch kann es vorkommen, dass die Zeichenfolge einer Datenbankabfrage verändert worden ist, ihre Semantik jedoch nicht. Bei herkömmlichen Vergleichen wird dies jedoch nicht erkannt und der Vergleich ergibt, dass sich die Datenbankabfragen verändert haben. Schließlich kann es sein, dass sich Datenbankabfragen nur geringfügig in ihrer Semantik, jedoch erheblich in ihrer Syntax geändert haben, weshalb diese durch herkömmlich Methoden als verändert aufgezeigt wird.It can also happen that the string is a Database queries have changed their semantics However not. With conventional comparisons, this will however not recognized and the comparison shows that have changed the database queries. Finally, can database queries are only slightly different their semantics, but changed significantly in their syntax have, which is why by conventional methods as is shown changed.

Zum Auffinden der die langen Antwortzeiten verursachenden Datenbankabfragen ist es herkömmlich notwendig, alle gefundenen Veränderungen manuell zu untersuchen, was aufgrund der oben aufgezeigten Probleme bei der Suche nach veränderten Datenbankabfragen einen erheblichen Aufwand bedeutet.To find the one causing the long response times Database queries are traditionally necessary to all found changes manually to investigate what due to the search problems outlined above after changing database queries, a significant one Effort means.

Daher ergibt sich das erfindungsgemäße technische Problem, einem effizienten Vergleich von Quelldateien, die Datenbankabfragen enthalten, zur Verfügung zu stellen.Hence the technical result according to the invention Problem, an efficient comparison of source files, that contain database queries put.

Das zuvor hergeleitete technische Problem wird erfindungsgemäß dadurch gelöst, dass die Syntax jeder Datenbankabfrage mit Hilfe einer Syntaxanalyse ermittelt wird und die Syntaxen der Datenbankabfragen der Quelldateien miteinander verglichen werden. The technical problem previously derived will solved according to the invention in that the syntax of everyone Database query determined using a syntax analysis and the syntax of the database queries of the Source files are compared with each other.

Die Syntax einer Datenbankabfrage gibt die einzelnen Elemente der Datenbankabfrage bezüglich ihrer grammatikalischen Regeln, ihrer Zusammenstellung, wieder. Die Bedeutung der Elemente ist unerheblich. Änderungen in der Syntax bedeute eine geänderte Zusammenstellung oder Reihenfolge von Elementen. Dies muss jedoch nicht zwangsläufig zu einer geänderten Semantik führen.The syntax of a database query gives the individual Elements of the database query regarding their grammatical rules, their compilation, again. The meaning of the elements is irrelevant. Changes in the syntax means a changed compilation or Order of elements. However, this does not have to be inevitably lead to changed semantics.

Eine Syntaxanalyse wird beispielsweise mit Hilfe eines Parserprogramms durchgeführt. Hierbei werden die syntaktischen Elemente der Datenbankabfrage ermittelt. Erfindungsgemäß werden alle Datenbankabfragen einer ersten Quelldatei in ihre syntaktischen Elemente zerlegt, alle Datenbankabfragen einer zweiten Quelldatei in ihre syntaktischen Elemente zerlegt und alle Syntaxen der Datenbankabfragen der ersten Quelldatei mit allen Syntaxen der Datenbankabfragen der zweiten Quelldatei verglichen. Auftretende Unterschiede können nun besser bewertet werden, da Veränderungen in der Positionierung der syntaktischen Elemente innerhalb einer Datenbankabfrage erkannt werden. Veränderungen in der Zeichenfolge führen nicht zu einer Veränderung der Syntax, weshalb geänderte Zeichenfolgen beim Vergleich nicht berücksichtigt werden.A syntax analysis is, for example, with the help of a Parser program carried out. Here, the syntactic elements of the database query determined. According to the invention, all database queries become one first source file broken down into its syntactic elements, all database queries of a second source file in your disassembled syntactic elements and all syntaxes of the Database queries of the first source file with all Syntaxes of the database queries of the second source file compared. Differences that occur can now be better be evaluated because of changes in positioning of the syntactic elements within one Database query can be recognized. Changes in the String does not change the Syntax, which is why changed strings when comparing are not taken into account.

Die Quellen für die Ermittlung der Syntaxen können beispielsweise der Source Code der Quelldateien, der Database-Request-Module (DBRM) der Quelldateien, die DB2 Kataloginformationen sowie beliebige andere Zugriffsmodule der Quelldateien sein.The sources for determining the syntax can for example the source code of the source files, the Database request module (DBRM) of the source files, the DB2 Catalog information and any other Access modules of the source files.

Um zu gewährleisten, dass jede Datenbankabfrage der ersten Quelldatei mit jeder Datenbankabfragen der zweiten Quelldatei verglichen wird, wird vorgeschlagen, dass jede Datenbankabfrage der ersten Quelldatei mit jeder Datenbankabfrage der zweiten Quelldatei kombiniert wird.To ensure that every database query of the first source file with each database query the second Source file is compared, it is suggested that each Database query of the first source file with everyone Database query of the second source file is combined.

Der Zugriff auf die ermittelten Datenbankabfragen wird erleichtert, wenn die Syntaxen der Datenbankabfragen gespeichert werden.Access to the determined database queries is relieved when the syntax of the database queries get saved.

Eine Datenbankabfrage setzt sich aus syntaktischen Elementen zusammen, die verschiedenen Kategorien zugeordnet werden können. Um zu gewährleisten, dass bei einem Vergleich syntaktische Elemente der entsprechenden Kategorien miteinander verglichen werden, wird vorgeschlagen, dass syntaktische Elemente der Datenbankabfragen kategorisiert gespeichert werden.A database query is made up of syntactic ones Elements together, the different categories can be assigned. To ensure that at a comparison of syntactic elements of the corresponding Categories will be compared with each other suggested that syntactic elements of the Database queries are saved categorized.

In diesem Zusammenhang ist es auch vorteilhaft, wenn die einander entsprechenden syntaktischen Elemente der kombinierten Datenbankabfragen miteinander verglichen werden. Hierbei werden beispielsweise einzelne Teile einer SQL-Abfrage miteinander verglichen. Gemäß der SQL-Spezifikationen werden Abfragen und Parameter bestimmten Kategorien zugeordnet. Wird die Zeichenfolge der Datenbankabfrage untersucht, werden die einzelnen Abfrageparameter, die syntaktischen Elemente, ermittelt und deren Zuordnung zu den einzelnen Kategorien durchgeführt.In this context, it is also advantageous if the corresponding syntactic elements of the combined database queries compared become. Here, for example, individual parts an SQL query compared. According to the SQL specifications will determine queries and parameters Assigned to categories. Will the string of the Database query examined, the individual Query parameters, the syntactic elements, determined and their assignment to the individual categories carried out.

Bei der Durchführung einer Datenbankabfrage, insbesondere einer SQL-Datenbankabfrage, bewirken verschiedene Parameter unterschiedliche Antwortzeiten. Ein veränderten Select-Befehl hat geringere Auswirkungen als ein geänderter Where-Befehl. Daher wird vorgeschlagen, dass den syntaktischen Elemente Wertigkeiten zugeordnet werden. Hierbei kann es vorteilhaft sein, wenn ein Unterschied zwischen den syntaktischen Elementen der kombinierten Datenbankabfragen mit Hilfe der Wertigkeit gewichtet wird. Das bedeutet, dass Veränderungen in dem syntaktischen Elementen, die geringe Auswirkung auf die Antwortzeit haben, geringer gewichtet werden können als solche, die große Auswirkung auf die Antwortzeit haben. Dadurch wird es möglich, festzustellen, ob gefundene Veränderungen tatsächlich auch Auswirkungen auf die Performance einer Datenbankabfrage haben.When performing a database query, in particular an SQL database query, different Parameters different response times. A changed one Select command has less effect than a changed where command. It is therefore proposed that assignments to the syntactic elements become. It can be advantageous here if a Difference between the syntactic elements of the combined database queries using the valency is weighted. That means changes in that syntactic elements that have little impact on the Response time, can be weighted less than those that have a major impact on response time. This makes it possible to determine if any are found Changes actually affect the Have the performance of a database query.

Um die Iteration durch die Datenbankabfragen schnell durchführen zu können und einen direkten Zugriff auf die gefundenen Datenbankabfragen sowie deren Syntaxen zu haben, wird vorgeschlagen, dass in einer Tabelle für jede ermittelte Datenbankabfrage eine diese zugehörige Syntax bezeichnende Kennung gespeichert wird. Auch kann eine die Datenbankabfrage der Quelldatei zuordnenden Zuordnungskennung gespeichert werden. Zusätzlich kann ein Vergleichswert der ein Vergleichsergebnis mit einer anderen Datenbankabfrage wiedergibt gespeichert werden.To iterate through the database queries quickly to be able to perform and direct access to the found database queries and their syntaxes have, it is suggested that in a table for each determined database query using this associated syntax identifying identifier is stored. Also one can Assign database query to the source file Allocation identifier can be saved. In addition, a Comparison value of a comparison result with a another database query is stored.

Die Syntax einer Datenbankabfrage wird zusammen mit ihrem syntaktischen Element vorzugsweise in einer Tabelle gespeichert. Um auf diese Tabelle zurückgreifen zu können, wird die die Syntax bezeichnende Kennung in der Tabelle gespeichert. Ferner kann auf die Datenbankabfrage sofort zugegriffen werden und deren Position in der Quelldatei bestimmt werden, wenn die Zuordnungskennung gespeichert wird. Schließlich kann durch das Speichern eines Vergleichsergebnisses ermittelt werden, ob in der zweiten Quelldatei eine ähnliche oder gleiche Datenbankabfrage gefunden worden ist. Beispielsweise wird beim Vergleich einer Datenbankabfrage einer ersten Quelldatei mit allen Datenbankabfragen einer zweiten Quelldatei zunächst im ersten Schritt eine absolut verschiedene Datenbankabfrage gefunden. Das Vergleichsergebnis wird als Vergleichswert gespeichert. Im nächsten Schritt wird eine Datenbankabfrage in der zweiten Quelldatei gefunden, die eine gewisse Ähnlichkeit mit der Datenbankabfrage der ersten Quelldatei aufweist, wobei diese Ähnlichkeit als Vergleichsergebnis gespeichert wird, da sie höher ist, als die zu vor gefundene Ähnlichkeit. Schließlich wird eine Datenbankabfrage in der zweiten Quelldatei gefunden, die vollkommen mit der Datenbankabfrage der ersten Quelldatei übereinstimmt. Da die Ähnlichkeit dieser beiden Quelldateien wiederum größer ist als die zuvor gefundene Ähnlichkeit, wird dieser Vergleichswert gespeichert.The syntax of a database query is combined with its syntactic element preferably in a table saved. To access this table too the syntax-specific identifier in the Saved table. Furthermore, the database query can be accessed immediately and their position in the Source file to be determined when the mapping identifier is saved. Finally, by saving a comparison result can be determined whether in the second source file a similar or the same Database query has been found. For example when comparing a database query to a first one Source file with all database queries from a second Source file first in the first step an absolute different database query found. The The comparison result is saved as a comparison value. The next step is a database query in the second source file found that has some similarity with the database query of the first source file, taking this similarity as a comparison result is saved because it is higher than the previous one found similarity. Eventually one will Database query found in the second source file, the complete with the database query of the first source file matches. Because the similarity of these two Source files are larger than those found previously Similarity, this comparison value is saved.

Durch das Speichern des Vergleichswertes lässt sich diejenige Datenbankabfrage in der zweiten Quelldatei finden, welche die größte Ähnlichkeit mit der Datenbankabfrage der ersten Quelldatei aufweist.By saving the comparison value you can the database query in the second source file find the one that is most similar to the Has database query of the first source file.

Da verschiedene syntaktische Elemente unterschiedliche Wertigkeiten aufweisen, wird vorgeschlagen, dass jede Kombination von Datenbankabfragen mit Hilfe der gewichteten Unterschiede ein Ähnlichkeitswert zugeordnet wird. Unterschieden sich die zwei Datenbankabfragen in syntaktischen Elementen, die nur geringe Auswirkung auf die Antwortzeit haben, führt dies dazu, dass sie dennoch ähnlich sind. Wird ein Unterschied in einem syntaktischen Element gefunden, welches eine große Auswirkung auf eine Antwortzeit haben kann, führt dies dazu, dass die Datenbankabfragen eine geringere Ähnlichkeit aufweisen. Das bedeutet, dass nur geringe Veränderungen in der Zeichenfolge, die jedoch syntaktische Elemente beinhaltet, die wesentliche Auswirkung auf die Antwortzeit haben, zu einer geringen Ähnlichkeit der Datenbankabfragen führen, welche auf den ersten Blick ähnlich erscheinen können.Because different syntactic elements are different Have valences, it is suggested that each Combination of database queries using the weighted differences are assigned a similarity value becomes. The two database queries differ in syntactic elements that have little impact on have the response time, it causes them to nonetheless are similar. There will be a difference in a syntactic Found an element that has a great impact on a Response time, this causes the Database queries are less similar. That means that only minor changes in the String, however, syntactic elements involves the major impact on the Response time have little similarity to the Database queries, which at first glance may appear similar.

Um nun die Fehlerkontrolle zu erleichtern, wird vorgeschlagen, dass zunächst identische kombinierte Datenbankabfragen als identisch ausgewiesen werden. Alle Datenbankabfragen der ersten Quelldatei, zu denen als identisch bewertete Datenbankabfragen in der zweiten Quelldatei gefunden worden sind - und umgekehrt -, werden als identisch ausgewiesen. Diese müssen dann nicht mehr kontrolliert werden, da sie keine Auswirkung auf veränderte Antwortzeiten der Datenbank haben.To make it easier to check errors, suggested that initially combined identical Database queries are identified as identical. All Database queries of the first source file, to which as identically rated database queries in the second Source file have been found - and vice versa - will be identified as identical. Then they no longer have to be checked as they have no effect on have changed database response times.

Auch sehr ähnliche Datenbankabfragen haben nur geringe Auswirkung auf die Antwortzeit der Datenbank, weshalb vorgeschlagen wird, das äquivalente kombinierte Datenbankabfragen als identisch ausgewiesen werden. Äquivalent bedeutet, dass lediglich syntaktische Elemente, die nur geringe Auswirkung auf die Antwortzeit haben, die Datenbankabfragen unterscheiden. Diese Datenbankabfragen können auch als identisch ausgewiesen werden.Very similar database queries also have only a small number Impact on database response time, why it is proposed that the equivalent combined Database queries are identified as identical. Equivalent means that only syntactic Items that have little impact on response time that distinguish database queries. This Database queries can also be identified as identical become.

Schließlich wird vorgeschlagen, dass ähnliche kombinierte Datenbankabfragen mit ihrem Ähnlichkeitswert ausgewiesen werden.Finally, it is suggested that similar combined Database queries are shown with their similarity value become.

Um nun die Anzahl der zu überprüfenden Datenbankabfragen begrenzen zu können, wird vorgeschlagen, dass ein Grenzwert bestimmt und der Ähnlichkeitswert am Grenzwert gemessen wird. Dann kann mit Hilfe des Grenzwertes die Datenbankabfragen als ähnlich oder unähnlich ausgewiesen werden. Überschreitet der Ähnlichkeitswert eines Paares von Datenbankabfragen den Grenzwert, so werden diese Datenbankabfragen als ähnlich ausgewiesen. Liegt der Ähnlichkeitswert unterhalb eines Grenzwertes, so kann geschlossen werden, dass diese Datenbankabfragen nicht ähnlich sind und als neu oder gelöscht ausgewiesen werden können.Now the number of database queries to be checked to be able to limit it is proposed that a Limit determined and the similarity value at the limit is measured. Then with the help of the limit value Database queries identified as similar or dissimilar become. Exceeds the similarity value of a couple of database queries, the limit will be Database queries identified as similar. Is the Similarity value below a limit, so can can be concluded that these database queries are not are similar and shown as new or deleted can.

Schließlich ist es hilfreich, wenn die zwei Quelldateien in ihrer Gesamtheit miteinander verglichen werden können, wozu vorgeschlagen wird, dass die Gesamtabweichung der Datenbankabfragen der ersten Quelldatei von der zweiten Quelldatei ermittelt wird. Diese Gesamtabweichung ist ein Maß dafür, wie viele und in welchem Maße sich die Datenbankabfragen in einer zweiten Quelldatei von einer ersten Quelldatei geändert haben.Finally, it is helpful if the two source files can be compared in their entirety, for which it is proposed that the total deviation of the Database queries of the first source file from the second Source file is determined. This total deviation is a Measure of how many and to what extent Database queries in a second source file from one changed the first source file.

Ein weiterer Gegenstand der Erfindung ist eine Vergleichsvorrichtung, insbesondere mit einem zuvor beschriebenen Verfahren, mit Quelldateien lesenden Lesemitteln und mit Datenbankabfragen aus Quelldateien extrahierenden Extrahiermitteln. Die Lesemittel sind funktionelle Blöcke, die die Quelldateien lesen, also ihren Inhalt ermitteln. Extrahiermittel sind funktionelle Blöcke, die aus dem Inhalt der Quelldateien die Datenbankabfragen extrahieren.Another object of the invention is a Comparison device, in particular with a previously described procedures with reading source files Readers and with database queries from source files extracting extractants. The reading materials are functional blocks that read the source files, so determine their content. Extractants are functional Blocks from the content of the source files Extract database queries.

Ein effizientes und genaues Ermitteln von geänderten Datenbankabfragen wird dadurch erreicht, dass die Syntax einer Datenbankabfrage analysierende Analysemittel vorgesehen sind und die syntaktischen Elemente der Datenbankabfragen vergleichende Vergleichsmittel vorgesehen sind. Die Analysemittel, beispielsweise ein Parser, sind funktionelle Blöcke die die Datenbankabfrage analysieren und deren Syntax extrahieren. Dazu können die Analysemittel die Syntax in syntaktische Elemente zerlegen und so den Vergleichsmitteln zur Verfügung stellen. Vergleichsmittel empfangen jeweils zwei Syntaxen und vergleichen diese miteinander. Mit Hilfe der Vergleichsmittel ist es möglich, jede Datenbankabfrage der ersten Quelldatei mit jeder Datenbankabfrage der zweiten Quelldatei bezüglich der syntaktischen Elemente zu vergleichen.An efficient and accurate determination of changed Database queries is achieved by the syntax analysis means analyzing a database query are provided and the syntactic elements of the Comparative means for comparing database queries are provided. The analysis means, for example a Parsers are functional blocks that query the database analyze and extract their syntax. You can do that Analysis means the syntax into syntactic elements disassemble and thus available for comparison put. Comparison means each receive two syntaxes and compare them with each other. With the help of Comparative means it is possible to query every database the first source file with every database query second source file regarding the syntactical elements to compare.

Vorzugsweise sind Speichermittel vorgesehen, mit deren Hilfe syntaktische Elemente der Datenbankabfragen gespeichert werden. Speichermittel sind Funktionseinheiten, die Daten speichern. Mit Hilfe der Speichermittel ist so ein späterer Zugriff auf die syntaktischen Elemente jeder Datenbankabfrage möglich.Storage means are preferably provided, with their Help syntactic elements of database queries get saved. Storage means are Functional units that store data. With the help of Storage medium is such a later access to the syntactic elements of every database query possible.

Ferner wird vorgesehen, dass die Ergebnisse der Vergleichsmittel wichtende Wichtungsmittel vorgesehen sind. Die Wichtungsmittel sind Funktionseinheiten, die Ergebnisse mit Faktoren kombinieren können und dienen dazu, den syntaktischen Elementen Wertigkeiten zuzuordnen. Diese Wertigkeiten beziehen sich darauf, inwiefern sich ein syntaktisches Element auf eine Antwortzeit einer Datenbank bei einer Datenbankabfrage auswirkt.It is also envisaged that the results of the Comparative weighting weighting means are provided are. The weighting means are functional units that Combine and serve results with factors to the syntactic elements valences assigned. These values refer to to what extent a syntactic element relates to a Response time of a database when querying a database effect.

Schließlich wird vorgeschlagen, dass die gewichteten Ergebnisse bewertende Ausscheidungsmittel vorgesehen sind. Die Ausscheidungsmittel sind funktionelle Elemente, die einzelnen Datenbankabfragen einen Ähnlichkeitswert zuordnen. Mit Hilfe der Ausscheidungsmittel ist es möglich, ähnliche von unähnlichen Datenbankabfragen zu unterscheiden und somit die Anzahl der zu untersuchenden Datenbankabfragen einzugrenzen.Finally, it is suggested that the weighted Results evaluating excrement means provided are. The excretions are functional elements the individual database queries have a similarity value assign. With the help of the elimination agent it is possible to make similar from dissimilar database queries distinguish and thus the number of examined Narrow database queries.

Nachfolgend wird die Erfindung anhand einer Ausführungsbeispiele zeigenden Zeichnung näher erläutert. In der Zeichnung zeigen:

Fig. 1
den Ablauf eines erfindungsgemäßen Verfahrens;
Fig. 2
eine erfindungsgemäße Vorrichtung
The invention is explained in more detail below with reference to a drawing showing exemplary embodiments. The drawing shows:
Fig. 1
the sequence of a method according to the invention;
Fig. 2
a device according to the invention

Fig. 1 zeigt eine Datenbank 2, die eine Vielzahl von Daten aufweist. Diese Daten können aus der Datenbank mit Hilfe von Structured Query Language (SQL) Abfragen extrahiert werden. Programme 4 arbeiten mit der Datenbank 2 mit Hilfe der SQL-Abfragen. Abhängig von den in den Programmen 4 enthaltenden SQL-Abfragen variieren die Verarbeitungszeiten in den Programmen 4 voneinander. Wird ein altes Programm 4a durch ein neues Programm 4b ersetzt, so ist es wünschenswert, wenn die Unterschiede in den SQL-Abfragen zwischen den Programmen 4a,4b ermittelbar wären und somit eine Analyse der geändert SQL-Abfragen möglich wäre.Fig. 1 shows a database 2, which a variety of Data. This data can be taken from the database Structured Query Language (SQL) queries be extracted. Programs 4 work with the database 2 using the SQL queries. Depending on the in the The SQL queries containing programs 4 vary Processing times in the programs 4 from each other. Becomes an old program 4a with a new program 4b replaced, it is desirable if the differences in the SQL queries between programs 4a, 4b would be determinable and thus an analysis of the changed SQL queries would be possible.

Hierzu wird in einem Schritt 6 das jeweilige Programm 4a,4b analysiert und alle SQL-Abfragen extrahiert. Dies wird zunächst für das alte Programm 4a durchführt und im Anschluss daran für das neue Programm 4b. Die Quellen für das Extrahieren im Schritt 6 können beispielsweise die Source-Codes der Programme 4, die Database-Request-Module (DBRM) Schnittstellen der Programme 4, die DB2 Kataloginformationen (Collection, Package and Version) sowie beliebige andere Quellen, die über verschiedene Zugriffsmodule ausgelesen werden können, sein. For this purpose, the respective program is in step 6 4a, 4b analyzed and all SQL queries extracted. This is first carried out for the old program 4a and in Follow it up for the new program 4b. The sources for the extraction in step 6 can, for example, the Program 4 source codes, the database request modules (DBRM) Interfaces of programs 4, the DB2 Catalog information (Collection, Package and Version) as well as any other sources that come from different Access modules can be read out.

Alle extrahierten SQL-Abfragen werden im Schritt 8 in ihre syntaktischen Elemente zerlegt. Hierbei kommt ein Parser zum Einsatz, der die SQL-Abfragen in ihrer jeweiligen syntaktischen Elemente zerlegt. Für jede in dem Programm 4a und 4b enthaltene SQL-Abfrage wird eine Tabelle 8a angelegt, in der die syntaktischen Elemente kategorisiert abgespeichert werden. Außerdem ist ein Verweis auf die Position der SQL-Abfrage in den Programmen 4 vermerkt.All extracted SQL queries are in step 8 in disassembled their syntactic elements. Here comes one Parser to use that the SQL queries in their disassembled respective syntactic elements. For everyone in the SQL query contained in program 4a and 4b is a Table 8a created the syntactic elements categorically saved. In addition, is a Reference to the position of the SQL query in the Programs 4 noted.

Nachdem im Schritt 8 alle SQL-Abfragen zerlegt und in den einzelnen Tabellen 8a gespeichert worden sind, wird im Schritt 10 in einer Speichertabelle 10a pro SQL der Schlüssel der Parser-Tabelle 8a, die Position der SQL-Abfrage im Programm 4a,4b und ein Schalter, ob das SQL bereits einer anderen SQL zugeordnet worden ist, abgelegt.After all SQL queries were broken down in step 8 and into the individual tables 8a have been saved Step 10 in a storage table 10a per SQL Key of parser table 8a, the position of the SQL query in program 4a, 4b and a switch whether the SQL has already been assigned to another SQL stored.

Im Schritt 12 werden die einzelnen SQL-Abfragen, die in Tabelle 8a abgelegt worden sind, miteinander verglichen. Dabei werden alle SQL-Abfragen eines alten Programms 4a mit den SQL-Abfragen des neuen Programm 4b verglichen. Hierbei können beispielsweise die syntaktischen Elemente Coursor Name, Statement Typ, Tabellen, Joins, Predicates, Select-, Update- und Insert-Columns, Select Option Text und Select Option Columns miteinander verglichen werden. Für jede Kombination von SQL-Abfragen des alten Programms 4a mit SQL-Abfragen des neuen Programms 4b wird eine Treffergenauigkeit ermittelt.In step 12, the individual SQL queries that are in Table 8a have been compared. All SQL queries from an old program 4a compared with the SQL queries of the new program 4b. For example, the syntactic elements Coursor Name, Statement Type, Tables, Joins, Predicates, Select, update and insert columns, select option text and Select Option Columns are compared. For any combination of SQL queries from the old program 4a with SQL queries of the new program 4b becomes one Hit accuracy determined.

Im Schritt 14 werden für alle Paare eine prozentuale Abweichung sowie eine gewichtete Bewertung ermittelt. Bei der prozentualen Abweichung werden die Unterschiede zwischen den einzelnen SQL-Abfragen absolut betrachtet. Bei der gewichteten Bewertung werden für einzelne syntaktische Elemente unterschiedliche Wichtungen festgelegt und auftretende Unterschiede anhand dieser Wichtungen gewichtet. Das bedeutet, das einzelne syntaktische Elemente eine geringer Auswirkung auf die gewichtete Abweichung haben als andere. Das rührt daher, dass verschiedene syntaktische Elemente einer SQL-Abfragen unterschiedliche Auswirkungen auf die Performance der SQL-Abfrage haben. Beispielsweise bewirkt eine Veränderung der Reihenfolge der Select Columns-Abfrage eine unmerkliche Änderung der Performance der SQL-Abfrage, wohingegen eine geänderte Where-Bedingung in eine SQL-Abfrage eine große Änderung der Performance der SQL-Abfrage bewirkt.In step 14, a percentage for all pairs Deviation and a weighted evaluation determined. at The percentage deviation is the difference absolutely considered between the individual SQL queries. The weighted evaluation is for individual syntactic elements have different weights determined and occurring differences based on this Weighted weights. That means the individual syntactic elements have a minor impact on the weighted deviation than others. This is because that different syntactic elements of an SQL query different effects on the Performance of the SQL query. For example a change in the order of the Select Columns query an imperceptible change in the performance of the SQL query, whereas a changed where condition in an SQL query makes a big change in the performance of the SQL query causes.

Nachdem im Schritt 14 die Unterschiede der einzelnen SQL-Abfragen des Programms 4a mit denen des Programms 4b durchgeführt worden sind, werden diese Unterschiede ausgewertet. Finden sich jeweils Paare von SQL-Abfragen in den Programmen 4a und 4b, die nicht voneinander abweichen, so wird deren Differenz als 0 ausgewiesen und diese Paare werden im Schritt 16 als übereinstimmend markiert. Die als übereinstimmend markierten Paare können bei der weiteren Betrachtung unberücksichtigt bleiben. Das neue Programm 4b hat sich gegenüber dem alten Programm 4a in Bezug auf eine so gefundene SQL-Abfrage nicht geändert.After in step 14 the differences between the individual SQL queries of program 4a with those of program 4b these differences will be carried out evaluated. There are pairs of SQL queries in programs 4a and 4b that are not different from each other deviate, their difference is shown as 0 and these pairs are matched in step 16 marked. The pairs marked as matching can remain unconsidered in further consideration. The new program 4b is different from the old one Program 4a in relation to an SQL query found in this way not changed.

Alle als nicht übereinstimmend - ihre Differenz ist größer 0 - markierten Paare werden im Schritt 18 ausgewertet, wobei für jede SQL-Abfrage des alten Programms 4a die SQL-Abfrage des neuen Programms 4b gesucht wird, die die größte Übereinstimmung aufweist. All as inconsistent - their difference is greater than 0 - marked pairs are in step 18 evaluated, whereby for each SQL query of the old Program 4a the SQL query of the new program 4b that matches the closest match.

Nachdem alle SQL-Abfragen untersucht und die besten Paare im Schritt 18 ermittelt worden sind, wird im Schritt 20 ein Schwellwertvergleich durchgeführt.After all SQL queries are examined and the best pairs are determined in step 18, in step 20 a threshold comparison was carried out.

Hierzu wird ein Schwellwert festgelegt, der die niedrigste Abweichung zwischen gefundenen Paaren bestimmt, die als nicht mehr übereinstimmend bewertet werden. Alle SQL-Abfragen, die sich zum Teil geändert haben, deren Höhe der Abweichung jedoch kleiner als der Schwellwert ist, werden als teilweise übereinstimmend im Schritt 20a ausgewiesen und können bei der Analyse der Programme 4a und 4b zunächst unberücksichtigt bleiben.For this purpose, a threshold value is defined, which is the lowest deviation between pairs found determined that rated as no longer consistent become. All SQL queries that have changed in part have, but the amount of the deviation is smaller than that Threshold is considered to be partially consistent in the Step 20a and can be used in the analysis of the Programs 4a and 4b are initially disregarded.

Hierbei spielt die Wichtung der syntaktischen Elemente der SQL-Abfrage eine entscheidende Rolle. Zwar kann sich die Zeichenfolge einer SQL-Anfrage in einem Programm 4b von einem Programm 4a erheblich unterscheiden, jedoch unterscheiden sich diese beiden SQL-Abfragen nur in einem syntaktischen Element, welches geringe Auswirkung auf die Performance des Programms hat. Eine solche Abweichung kann unberücksichtigt bleiben.Here the weighting of the syntactic elements plays the SQL query plays a crucial role. Although can the string of an SQL query in a program 4b differ significantly from a program 4a, however these two SQL queries differ only in one syntactic element which has little impact on the Performance of the program. Such a deviation can be disregarded.

Wird in dem Schwellwertvergleich 20 eine Abweichung in einem vorher als bestmöglich übereinstimmend gefundenen Paar festgestellt, die über dem festgelegten Schwellwert liegt, so wird dieses SQL-Paar im Schritt 20b als gelöscht bzw. neu bewertet und markiert. Alle SQL-Abfragen, die in einem Programm 4b gegenüber den SQL-Abfragen im Programm 4a erhebliche Unterschiede aufweisen oder nicht mehr vorhanden sind, werden somit als neu oder gelöscht ausgewiesen und markiert, so dass diese SQL-Abfragen bei der Analyse des neuen Programms 4b zunächst berücksichtigt werden können. If there is a deviation in the threshold value comparison 20 one previously found to be the best possible match Couple found that above the set threshold lies, this SQL pair is in step 20b as deleted or re-evaluated and marked. All SQL queries, that in a program 4b versus the SQL queries show considerable differences in program 4a or no longer exist, are thus considered new or erased and flagged so that these SQL queries when analyzing the new program 4b first can be taken into account.

Es besteht eine große Wahrscheinlichkeit, dass SQL-Abfragen, die sich erheblich geändert haben, die Performance eines neuen Programms 4b gegenüber dem alten Programm 4a eher verändern als diejenigen SQL-Abfragen, die sich nur unwesentlich oder überhaupt nicht geändert haben. Durch den erfindungsgemäßen Vergleich wird es möglich, eine Vorauswahl der SQL-Abfragen zu gewährleisten, die die Analyse eines neuen Programms gegenüber einem alten Programm erleichtern.There is a high probability that SQL queries, that have changed significantly, that Performance of a new program 4b compared to the old one Change program 4a rather than those SQL queries, which changes only insignificantly or not at all to have. The comparison according to the invention makes it possible to preselect the SQL queries ensure the analysis of a new program compared to an old program.

In Fig. 2 ist eine erfindungsgemäße Vergleichsvorrichtung dargestellt. Programme 4a und 4b arbeiten auf einer Datenbank 2, insbesondere einer DB2 Datenbank von IBM, mit Hilfe von SQL-Abfragen. Wird ein neues Programm 4b eingeführt und ein altes Programm 4a ersetzt, so kommt es häufig dazu, dass sich die Performance des neuen Programms 4b gegenüber dem alten Programm 4a erheblich verändert. Dies liegt unter anderem daran, dass sich die SQL-Abfragen vom Programm 4a zum Programm 4b geändert haben. Um eine Analyse der SQL-Abfragen zu erleichtern, wird eine Vergleichsvorrichtung 22 vorgeschlagen.2 is a comparison device according to the invention shown. Programs 4a and 4b work on one Database 2, in particular a DB2 database from IBM, with the help of SQL queries. If a new program 4b introduced and an old program 4a replaced, so it comes often that the performance of the new Program 4b significantly compared to the old program 4a changed. One of the reasons for this is that the Changed SQL queries from program 4a to program 4b to have. To facilitate an analysis of the SQL queries, a comparison device 22 is proposed.

Die Lesemittel 24 greifen auf die SQL-Abfragen der Programme 4 über Schnittstellen 24a,24b zu. Die durch die Lesemittel 24 ermittelten SQL-Abfragen der jeweiligen Programme 4 werden durch die Extraktionsmittel 26 in ihre syntaktischen Elemente zerlegt. Für jede SQL-Abfrage wird in Speichermitteln 28 eine Tabelle mit den geordneten syntaktischen Elementen der jeweiligen SQL-Abfrage abgespeichert. Somit liegen in den Speichermitteln 28 für die beiden Programme 4a und 4b Tabellen mit allen SQL-Abfragen vor, wobei die Tabellen die SQL-Abfragen nach syntaktischen Elementen geordnet abspeichern. The reading means 24 access the SQL queries of the Programs 4 via interfaces 24a, 24b. The through the Reading means 24 determined SQL queries of the respective Programs 4 are in their by the extraction means 26 disassembled syntactic elements. For each SQL query in storage means 28 a table with the ordered ones syntactical elements of the respective SQL query stored. Thus there are 28 in the storage means the two programs 4a and 4b tables with all SQL queries before, the tables the SQL queries for Store syntactical elements in an orderly manner.

Vergleichsmittel 30 greifen auf die Speichermittel 28 zu und lesen die Tabellen der SQL-Abfragen aus. Mit Hilfe der Vergleichsmittel 30 werden SQL-Abfragen des Programms 4a mit SQL-Abfragen des Programms 4b verglichen. Beim Vergleich werden alle SQL-Abfragen der beiden Programme miteinander verglichen. Werden durch die Vergleichsmittel 30 SQL-Abfragen gefunden, die bezüglich ihrer syntaktischen Elemente einander entsprechen, werden diese SQL-Abfragen mit Hilfe der Ausscheidungsmittel 32 als identisch ausgewiesen. Identische ausgewiesene SQL-Abfragen müssen bei einer Analyse auf Unterschieden zwischen den Programmen 4a und 4b nicht mehr berücksichtigt werden.Comparison means 30 access the storage means 28 and read the tables of the SQL queries. With help the comparison means 30 become SQL queries of the program 4a compared with SQL queries of the program 4b. At the All SQL queries of the two programs are compared compared with each other. Are by the means of comparison Found 30 SQL queries related to their syntactic elements correspond to each other, they become SQL queries using the elimination means 32 as identified identically. Identical identified SQL queries need to analyze for differences between programs 4a and 4b no longer be taken into account.

Die durch die Vergleichsmittel 30 ermittelten Unterschiede in den SQL-Abfragen werden mit Hilfe der Wichtungsmittel 34 gewichtet. Das bedeutet, dass Unterschiede in den einzelnen syntaktischen Elementen unterschiedlich bewertet werden. Nachdem eine Wichtung aller Unterschiede durchgeführt worden ist, werden die Paare von SQL-Abfragen gesucht, die sich in den beiden Programmen 4a und 4b am ähnlichsten sind. In den Ausscheidungsmitteln 32 wird das Maß der Ähnlichkeit zwischen den gefundenen Paaren ausgewertet und mit einem Schwellwert verglichen. Sind Paare von SQL-Abfragen einander ähnlich, d. h. liegen ihre gewichteten Unterschiede unter einem gewissen Schwellwert, so werden sie als teilweise identisch ausgewiesen. SQL-Abfragen, die sich kaum ähnlich sind, d. h. ihr gewichteter Wert der Unterscheidung liegt über dem Schwellwert, werden als neu bzw. gelöscht ausgewiesen. The determined by the comparison means 30 Differences in the SQL queries are determined using the Weighting means 34 weighted. It means that Differences in the individual syntactic elements be evaluated differently. After a weighting all differences have been carried out, the Searched for pairs of SQL queries that reside in the two Programs 4a and 4b are most similar. In the Elimination means 32 becomes the measure of similarity evaluated between the pairs found and with a Threshold compared. Are pairs of SQL queries similar to each other, d. H. lie their weighted Differences below a certain threshold, so will they are shown as partially identical. SQL queries, that are hardly similar, d. H. their weighted value the distinction is above the threshold, are considered reported new or deleted.

Bei einer Analyse auf Unterschiede zwischen den Programmen 4a und 4b müssen zunächst die als neu bzw. gelöscht ausgewiesenen SQL-Abfragen untersucht werden. Dadurch ist es möglich, schnell und effizient Unterscheide zwischen zwei Programmversionen zu ermitteln und eventuell auftretende Performance-Probleme schnell beheben zu können. When analyzing for differences between the Programs 4a and 4b must first be defined as new or deleted SQL queries are examined. This makes it possible to do it quickly and efficiently Distinguish between two program versions and any performance problems that arise quickly to be able to fix.

BezugszeichenlisteLIST OF REFERENCE NUMBERS

22
DatenbankDatabase
4a,b4a, b
Abfrageprogrammequery programs
66
ExtrahierenExtract
88th
Zerlegendismantle
8a8a
Parser TabellenParser tables
1010
Hauptspeichermain memory
10a10a
HauptspeichertabelleMain memory map
1212
Vergleichento compare
1414
Ermittlung von UnterschiedenDetermining differences
1616
Markierung als ÜbereinstimmenMark as match
1818
Ermittlung von besten PaarenFinding the best pairs
2020
Schwellwertvergleichthresholding
2222
Vergleichsvorrichtungcomparison means
22a22a
Schnittstelleninterfaces
2424
Lesemittelreading means
2626
Extraktionsmittelextracting agent
2828
Speichermittelstorage means
3030
Vergleichsmittelcomparison means
3232
Ausscheidungsmittelclearing agents
3434
WichtungsmittelWeighting means

Claims (17)

Verfahren zum Vergleich zweier Datenbankabfragen aufweisenden Quelldateien, bei dem die Datenbankabfragen aus den zwei Quelldateien ermittelt werden, und bei dem die ermittelten Datenbankabfragen einer ersten Quelldatei mit den ermittelten Datenbankabfragen einer zweiten Quelldatei verglichen werden, dadurch gekennzeichnet, dass die Syntax jeder Datenbankabfrage mit Hilfe einer Syntaxanalyse ermittelt wird, dass die Syntaxen der Datenbankabfragen der Quelldateien miteinander verglichen werden, und dass ein Vergleichsergebnis ausgegeben wird. Method for comparing two source files containing database queries, in which the database queries are determined from the two source files, and in which the ascertained database queries of a first source file are compared with the ascertained database queries of a second source file, characterized in that that the syntax of each database query is determined using a syntax analysis, that the syntaxes of the database queries of the source files are compared, and that a comparison result is output. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass jede Datenbankabfrage der ersten Quelldatei mit jeder Datenbankabfrage der zweiten Quelldatei kombiniert wird.A method according to claim 1, characterized in that each database query of the first source file is combined with each database query of the second source file. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass Syntaxen der Datenbankabfragen gespeichert werden.Method according to claim 1 or 2, characterized in that syntaxes of the database queries are stored. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass syntaktische Elemente der Datenbankabfrage kategorisiert gespeichert werden. Method according to one of claims 1 to 3, characterized in that syntactic elements of the database query are categorized. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die einander entsprechenden syntaktischen Elemente der kombinierten Datenbankabfragen miteinander verglichen werden.Method according to one of claims 1 to 4, characterized in that the corresponding syntactic elements of the combined database queries are compared with one another. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass den syntaktischen Elementen Wertigkeiten zugeordnet werden und dass ein Unterschied zwischen den syntaktischen Elementen der kombinierten Datenbankabfragen mit Hilfe der Wertigkeit gewichtet wird.Method according to one of claims 1 to 5, characterized in that weights are assigned to the syntactic elements and that a difference between the syntactic elements of the combined database queries is weighted using the weight. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass in einer Tabelle für jede ermittelte Datenbankabfrage eine die dazugehörige Syntax bezeichnende Kennung, eine die Datenbankabfrage der Quelldatei zuordnenden Zuordnungskennung und ein ein Vergleichsergebnis mit einer anderen Datenbankabfrage wiedergebender Vergleichswert gespeichert wird.Method according to one of Claims 1 to 6, characterized in that an identifier identifying the associated syntax, an association identifier assigning the database query to the source file and a comparison value representing a comparison result with another database query are stored in a table for each database query determined. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass jeder Kombination von Datenbankabfragen mit Hilfe der gewichteten Unterschiede ein Ähnlichkeitswert zugeordnet wird.Method according to one of Claims 1 to 7, characterized in that each combination of database queries is assigned a similarity value with the aid of the weighted differences. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass identische kombinierte Datenbankabfragen als identisch ausgewiesen werden. Method according to one of claims 1 to 8, characterized in that identical combined database queries are identified as identical. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass äquivalente kombinierte Datenbankabfragen als identisch ausgewiesen werden.Method according to one of claims 1 to 9, characterized in that equivalent combined database queries are identified as identical. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, dass ähnliche kombinierte Datenbankabfragen mit ihrem Ähnlichkeitswert ausgewiesen werden.Method according to one of claims 1 to 10, characterized in that similar combined database queries are shown with their similarity value. Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, dass ein Grenzwert bestimmt und der Ähnlichkeitswert am Grenzwert gemessen wird und mit Hilfe des Grenzwertes die Datenbankabfragen als ähnlich oder unähnlich ausgewiesen werden.Method according to one of claims 1 to 11, characterized in that a limit value is determined and the similarity value is measured at the limit value and with the aid of the limit value the database queries are identified as similar or dissimilar. Verfahren nach einem der Ansprüche 1 bis 12, dadurch gekennzeichnet, dass die Gesamtabweichung der Datenbankabfragen der ersten Quelldatei von der zweiten Quelldatei ermittelt wird.Method according to one of claims 1 to 12, characterized in that the total deviation of the database queries of the first source file from the second source file is determined. Vergleichsvorrichtung, insbesondere mit einem Verfahren nach einem der Ansprüche 1 bis 13, mit Quelldateien lesenden Lesemitteln, und mit Datenbankabfragen aus Quelldateien extrahierenden Extrahiermitteln,    dadurch gekennzeichnet, dass die Syntax einer Datenbankabfrage analysierende Analysemittel vorgesehen ist, und dass die syntaktischen Elemente der Datenbankabfragen vergleichende Vergleichsmittel vorgesehen sind. Comparison device, in particular with a method according to one of claims 1 to 13, with reading means reading source files, and with database queries extracting extractors from source files, characterized, that the syntax of a database query analyzing analysis means is provided, and that comparative comparison means are provided for the syntactic elements of the database queries. Vergleichsvorrichtung nach Anspruch 14, dadurch gekennzeichnet, dass syntaktische Elemente der Datenbankabfragen speichernde Speichermittel vorgesehen sind.Comparison device according to claim 14, characterized in that storage means storing syntactic elements of the database queries are provided. Vergleichsvorrichtung nach Anspruch 14 oder 15, dadurch gekennzeichnet, dass die Ergebnisse der Vergleichsmittel wichtende Wichtungsmittel vorgesehen sind.Comparison device according to claim 14 or 15, characterized in that the results of the comparison means weighting weighting means are provided. Vergleichsvorrichtung nach einem der Ansprüche 15 bis 16, dadurch gekennzeichnet, dass die gewichteten Ergebnisse bewertende Ausscheidungsmittel vorgesehen sind.Comparison device according to one of claims 15 to 16, characterized in that the weighted results evaluating excretion means are provided.
EP02024709A 2002-04-10 2002-11-06 Comparison of source files Expired - Lifetime EP1353278B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CA002482142A CA2482142A1 (en) 2002-04-10 2003-04-09 Comparison of source files
PCT/EP2003/003698 WO2003085552A2 (en) 2002-04-10 2003-04-09 Comparison of source files
US10/410,316 US20030195878A1 (en) 2002-04-10 2003-04-09 Comparison of source files
AU2003227457A AU2003227457A1 (en) 2002-04-10 2003-04-09 Comparison of source files

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10215852 2002-04-10
DE10215852A DE10215852B4 (en) 2002-04-10 2002-04-10 Method for comparing two database queries having source files and comparison device

Publications (3)

Publication Number Publication Date
EP1353278A2 true EP1353278A2 (en) 2003-10-15
EP1353278A3 EP1353278A3 (en) 2005-01-12
EP1353278B1 EP1353278B1 (en) 2005-09-07

Family

ID=28051240

Family Applications (1)

Application Number Title Priority Date Filing Date
EP02024709A Expired - Lifetime EP1353278B1 (en) 2002-04-10 2002-11-06 Comparison of source files

Country Status (4)

Country Link
EP (1) EP1353278B1 (en)
AT (1) ATE304193T1 (en)
DE (2) DE10215852B4 (en)
ES (1) ES2249529T3 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009271A (en) * 1996-10-28 1999-12-28 Bmc Software, Inc. Method of retrieving data from a relational database
US6081805A (en) * 1997-09-10 2000-06-27 Netscape Communications Corporation Pass-through architecture via hash techniques to remove duplicate query results
WO2000049526A1 (en) * 1999-02-16 2000-08-24 Hewlett-Packard Company Similarity searching by combination of different data-types
WO2001002996A1 (en) * 1999-07-02 2001-01-11 Telstra New Wave Pty Ltd Search system
US6240409B1 (en) * 1998-07-31 2001-05-29 The Regents Of The University Of California Method and apparatus for detecting and summarizing document similarity within large document sets

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5794050A (en) * 1995-01-04 1998-08-11 Intelligent Text Processing, Inc. Natural language understanding system
US6535492B2 (en) * 1999-12-01 2003-03-18 Genesys Telecommunications Laboratories, Inc. Method and apparatus for assigning agent-led chat sessions hosted by a communication center to available agents based on message load and agent skill-set
DE19907341A1 (en) * 1999-02-20 2000-08-31 Lutz H Karolus Processing data as query information involves comparing original and alternative data files with data in connected database, outputting coinciding data to local data processing machine

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009271A (en) * 1996-10-28 1999-12-28 Bmc Software, Inc. Method of retrieving data from a relational database
US6081805A (en) * 1997-09-10 2000-06-27 Netscape Communications Corporation Pass-through architecture via hash techniques to remove duplicate query results
US6240409B1 (en) * 1998-07-31 2001-05-29 The Regents Of The University Of California Method and apparatus for detecting and summarizing document similarity within large document sets
WO2000049526A1 (en) * 1999-02-16 2000-08-24 Hewlett-Packard Company Similarity searching by combination of different data-types
WO2001002996A1 (en) * 1999-07-02 2001-01-11 Telstra New Wave Pty Ltd Search system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BAXTER I D ET AL: "Clone detection using abstract syntax trees" SOFTWARE MAINTENANCE, 1998. PROCEEDINGS., INTERNATIONAL CONFERENCE ON BETHESDA, MD, USA 16-20 NOV. 1998, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 16. November 1998 (1998-11-16), Seiten 368-377, XP010318609 ISBN: 0-8186-8779-7 *

Also Published As

Publication number Publication date
DE10215852B4 (en) 2006-11-30
ATE304193T1 (en) 2005-09-15
EP1353278B1 (en) 2005-09-07
DE50204176D1 (en) 2005-10-13
ES2249529T3 (en) 2006-04-01
EP1353278A3 (en) 2005-01-12
DE10215852A1 (en) 2003-10-30

Similar Documents

Publication Publication Date Title
DE69829074T2 (en) IDENTIFICATION OF LANGUAGE AND SYMBOLS FROM TEXT-REPRESENTATIVE DATA
DE69911842T2 (en) Method and device for retrieving information and corresponding storage medium
EP1665132B1 (en) Method and system for collecting data from a plurality of machine readable documents
DE69934371T2 (en) Apparatus and method for processing a natural language
DE60118973T2 (en) METHOD FOR INQUIRING A STRUCTURE OF COMPRESSED DATA
DE4232507A1 (en) Identification process for locating and sorting document in different languages - processing information by comparing sequences of characters with those of a reference document
DE19959758A1 (en) Establishment method for type and accuracy of local variables for computer sub routines,
DE102007049802A1 (en) Method for producing an FMEA data sheet and apparatus for automatically generating an FMEA data sheet
EP1347599B1 (en) Protocol analyzer and method for decoding data based on a protocol description
EP1276056A1 (en) Method for managing a Database
US20030195878A1 (en) Comparison of source files
WO2003094093A2 (en) Comparison of processing protocols
DE10048478C2 (en) Method of accessing a storage unit when searching for substrings
EP1353278B1 (en) Comparison of source files
WO2018073635A1 (en) Method for transferring a word sequence written in a source language into a word sequence in a target language at least partly by machine
DE3104881A1 (en) Programmable computer
WO2001006347A1 (en) Stack of operands and method for stacking of operands
DE4213533A1 (en) System for automated analysis of compound words
EP1361525B1 (en) Comparison of processing protocols
EP1336922B1 (en) Method and apparatus for the automatic generation of a Datawarehouse
DE19804603A1 (en) Method for determining words in a speech signal
EP0563077B1 (en) Method of detecting, by computing machine, identical data elements in two data sequences
EP3531301A1 (en) Computer-implemented method for querying data
DE102020208884A1 (en) Hierarchizing a search on time-series data to speed it up
CH660242A5 (en) ARRANGEMENT AND METHOD FOR INVERSE ASSEMBLING.

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LI LU MC NL PT SE SK TR

AX Request for extension of the european patent

Extension state: AL LT LV MK RO SI

PUAL Search report despatched

Free format text: ORIGINAL CODE: 0009013

AK Designated contracting states

Kind code of ref document: A3

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LI LU MC NL PT SE SK TR

AX Request for extension of the european patent

Extension state: AL LT LV MK RO SI

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

17P Request for examination filed

Effective date: 20050111

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LI LU MC NL PT SE SK TR

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20050907

Ref country code: NL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20050907

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20050907

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20050907

Ref country code: TR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20050907

Ref country code: IE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20050907

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20050907

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

Free format text: NOT ENGLISH

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

AKX Designation fees paid

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LI LU MC NL PT SE SK TR

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

Free format text: LANGUAGE OF EP DOCUMENT: GERMAN

REF Corresponds to:

Ref document number: 50204176

Country of ref document: DE

Date of ref document: 20051013

Kind code of ref document: P

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CY

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20051106

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LU

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20051130

Ref country code: MC

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20051130

Ref country code: BE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20051130

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BG

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20051207

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20051207

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20051207

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20051207

REG Reference to a national code

Ref country code: CH

Ref legal event code: NV

Representative=s name: TROESCH SCHEIDEGGER WERNER AG

GBT Gb: translation of ep patent filed (gb section 77(6)(a)/1977)

Effective date: 20060104

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20060207

NLV1 Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents act
REG Reference to a national code

Ref country code: ES

Ref legal event code: FG2A

Ref document number: 2249529

Country of ref document: ES

Kind code of ref document: T3

REG Reference to a national code

Ref country code: IE

Ref legal event code: FD4D

ET Fr: translation filed
PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed

Effective date: 20060608

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: IT

Payment date: 20061130

Year of fee payment: 5

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20061221

Year of fee payment: 5

BERE Be: lapsed

Owner name: SOFTWARE ENGINEERING G.M.B.H.

Effective date: 20051130

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20080603

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IT

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20071106

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: AT

Payment date: 20101125

Year of fee payment: 9

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20101103

Year of fee payment: 9

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: ES

Payment date: 20110223

Year of fee payment: 9

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20111213

Year of fee payment: 10

Ref country code: CH

Payment date: 20111129

Year of fee payment: 10

REG Reference to a national code

Ref country code: ES

Ref legal event code: FD2A

Effective date: 20130603

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

REG Reference to a national code

Ref country code: AT

Ref legal event code: MM01

Ref document number: 304193

Country of ref document: AT

Kind code of ref document: T

Effective date: 20121106

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 20121106

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: AT

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20121106

Ref country code: ES

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20111107

Ref country code: CH

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20121130

Ref country code: LI

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20121130

REG Reference to a national code

Ref country code: FR

Ref legal event code: ST

Effective date: 20130731

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FR

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20121130

Ref country code: GB

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20121106