ES2249529T3 - Comparacion de archivos fuente. - Google Patents

Comparacion de archivos fuente.

Info

Publication number
ES2249529T3
ES2249529T3 ES02024709T ES02024709T ES2249529T3 ES 2249529 T3 ES2249529 T3 ES 2249529T3 ES 02024709 T ES02024709 T ES 02024709T ES 02024709 T ES02024709 T ES 02024709T ES 2249529 T3 ES2249529 T3 ES 2249529T3
Authority
ES
Spain
Prior art keywords
database
queries
query
combined
source file
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.)
Expired - Lifetime
Application number
ES02024709T
Other languages
English (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
Application granted granted Critical
Publication of ES2249529T3 publication Critical patent/ES2249529T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Procedimiento para la comparación de dos archivos fuente que presentan consultas a la base de datos, en el que - las consultas a la base de datos se determinan a partir de dos archivos fuente, - las consultas determinadas a la base de datos de un primer archivo fuente se comparan con las consultas determinadas a la base de datos de un segundo archivo fuente, - la sintaxis de cada consulta a la base de datos se determina con la ayuda de un análisis sintáctico, - se determinan elementos sintácticos de las sintaxis de las consultas a la base de datos, y - cada consulta a la base de datos del primer archivo fuente se combina con cada consulta a la base de datos del segundo archivo fuente para la realización de una consulta combinada a la base de datos, caracterizado porque - los elementos sintácticos de las consultas a la base de datos que han sido determinados a partir de los dos archivos fuente se memorizan de modo categorizado, - los elementos sintácticos correspondientes entre sí de las consultas combinadas a la base de datos se comparan entre sí, - a los elementos sintácticos se les asignan valores, - se determina una diferencia ponderada entre los elementos sintácticos de las consultas combinadas a la base de datos con la ayuda de los valores, - a cada combinación de consultas a la base de datos se le asigna con diferencias ponderadas un valor de similitud, - los valores de similitud de las consultas combinadas a la base de datos se comparan entre sí, - las consultas combinadas a la base de datos idénticas son descartadas del procesamiento posterior, - con la ayuda de los valores de similitud se determinan las mejores parejas de las consultas combinadas a la base de datos, y - se entrega un resultado de comparación.

Description

Comparación de archivos fuente.
La invención se refiere a un procedimiento para la comparación de dos archivos fuente que presentan consultas a la base de datos, en el que las consultas a la base de datos se determinan a partir de dos archivos fuente, y en el que las consultas determinadas a la base de datos de un primer archivo fuente se comparan con las consultas determinadas a la base de datos de un segundo archivo fuente. Además, la invención se refiere a un dispositivo de comparación con medios de lectura que leen archivos fuente y con medios de extracción que extraen consultas a la base de datos de archivos fuente.
Para el acceso a bases de datos, en particular a bases de datos relacionales como DB2 de IBM, se generan consultas a las bases de datos por parte de programas externos que interaccionan con las bases de datos. Estas consultas a las bases de datos se llevan a cabo por medio de una interfaz estandarizada, "Structured Query Language" (SQL; lenguaje estructurado de consulta). En este caso se transmiten las consultas SQL de los programas a la base de datos, y se procesan en la base de datos. Estas consultas SQL pueden estar formadas por una pluralidad de parámetros de consulta, pudiéndose usar, por ejemplo, los parámetros "Cursor Name" (nombre del cursor), "Statement Typ" (Select, Insert, Update, Delete) (tipo de sentencia (seleccionar, insertar, actualizar, borrar), tablas, "Joins" (cruces), "Predicates" (predicados), "Select-, Update- e Insert-Columns" (seleccionar, actualizar e insertar columnas), "Select Option Text" (seleccionar opción texto) y "Select Option Columns" (seleccionar opción columna).
En la consulta de una base de datos por medio de SQL se mandan acciones en la base de datos, que hacen posible la respuesta de las consultas a la base de datos. Los tiempos de respuesta pueden variar significativamente dependiendo de los parámetros de consulta seleccionados. En este caso se desea que las consultas SQL estén optimizadas y permitan tiempos de respuesta lo más reducidos posible.
Los programas que trabajan con los juegos de datos de las bases de datos se modifican a lo largo del tiempo. Al modificar los programas puede producirse una modificación de las consultas SQL, que eventualmente puede llevar a tiempos de respuesta modificados. En algunos casos sucede que los tiempos de respuesta son influidos negativamente, y dejan de ser tolerables. En este caso es necesario que se determinen las consultas SQL que, entre otras cosas, son responsables de los tiempos de respuesta prolongados.
Habitualmente, en un caso de este tipo se comparan entre sí las consultas a las bases de datos de los programas originales y la del nuevo programa. Para ello se determina de modo secuencial cada consulta a la base de datos del programa original, se busca la consulta a la base de datos que está en la misma posición en el nuevo programa, y se compara la secuencia de símbolos de las consultas a la base de datos. Habitualmente, sin embargo, las consultas a la base de datos están desplazadas únicamente en su posición en las versiones del programa. Esto significa que una consulta a la base de datos que se haya producido en un programa antiguo al comienzo del programa aparece eventualmente en un nuevo programa al final del programa. Con el procedimiento convencional no se puede determinar un desplazamiento de este tipo de la consulta de la base de datos, ya que convencionalmente se comprueba una primera consulta a la base de datos en un programa antiguo con la primera consulta a la base de datos en el nuevo programa, y del mismo modo se comprueban las consultas siguientes a la base de datos.
También puede suceder que la secuencia de símbolos de una consulta a la base de datos haya sido modificada, aunque no su semántica. En las comparaciones convencionales, sin embargo, esto no se reconoce, y la comparación da como resultado que las consultas a la base de datos han sido modificadas. Finalmente puede ser que las consultas a las bases de datos sólo se hayan modificado reducidamente en su semántica, habiéndose modificado, sin embargo, de un modo considerable en su sintaxis, razón por la que se muestran como modificadas mediante los procedimientos convencionales.
Para encontrar las consultas a la base de datos que provoca los prolongados tiempos de respuesta, es necesario habitualmente investigar manualmente todas las modificaciones encontradas, lo que, como consecuencia de los problemas mostrados anteriormente en la búsqueda de consultas modificadas a la base de datos, significa un coste considerable.
Debido a ello, el problema técnico conforme a la invención resulta en proporcionar una comparación eficiente de ficheros fuente que contienen consultas a la base de datos.
El problema técnico derivado anteriormente se soluciona conforme a la invención gracias al hecho de que la sintaxis de cada consulta a la base de datos se determine con la ayuda de un análisis sintáctico, y que se comparen entre sí las sintaxis de las consultas a la base de datos de los archivos fuente.
La sintaxis de una consulta a la base de datos reproduce los elementos individuales de la consulta a la base de datos por lo que se refiere a sus reglas gramaticales y su combinación. El significado de los elementos es irrelevante. Las modificaciones en la sintaxis significan una combinación u orden modificado de elementos. Esto, sin embargo, no ha de llevar forzosamente a una semántica modificada.
Un análisis sintáctico se lleva a cabo, por ejemplo, con la ayuda de un programa analizador de sintaxis. En este caso se determinan los elementos sintácticos de la consulta a la base de datos. Según la invención, todas las consultas a la base de datos de un primer archivo fuente se descomponen en sus elementos sintácticos, todas las consultas a la base de datos de un segundo fichero fuente se descomponen en sus elementos sintácticos, y todas las sintaxis de las consultas a la base de datos del archivo fuente se comparan con todas las sintaxis de las consultas a la base de datos del segundo archivo fuente. Las diferencias que se producen se pueden valorar ahora mejor, ya que las modificaciones en el posicionamiento de los elementos sintácticos se reconocen dentro de una consulta a la base de datos. Las modificaciones en la secuencia de símbolos no llevan a una modificación de la sintaxis, debido a lo cual las secuencias de símbolos modificadas no se tienen en cuenta en la compa-
ración.
Las fuentes para la determinación de las sintaxis pueden ser, por ejemplo, el código fuente de los archivos fuente, el módulo de petición a la base de datos (DBRM) de los archivos fuente, las informaciones de catálogo DB2, así como cualquier otro módulo de acceso de los archivos fuente.
Para garantizar que cada consulta a la base de datos del primer archivo fuente se compara con cada consulta a la base de datos del segundo archivo fuente, se propone que cada consulta a la base de datos del primer archivo fuente se combine con cada consulta a la base de datos del segundo archivo fuente.
El acceso a las consultas determinadas a la base de datos se facilita cuando se memorizan las sintaxis de las consultas a la base de datos.
Una consulta a la base de datos está formada por elementos sintácticos que pueden estar asignados a diferentes categorías. Para garantizar que en una comparación se comparan elementos sintácticos de las categorías correspondientes entre sí, se propone que los elementos sintácticos de las consultas a la base de datos se memoricen de modo categorizado.
En este contexto, también es ventajoso que los elementos sintácticos correspondientes entre sí de las consultas combinadas a la base de datos se comparen entre sí. En este caso se comparan, por ejemplo partes individuales de una consulta SQL entre sí. Según las especificaciones SQL se asignan consultas y parámetros a categorías determinadas. En caso de que se analice la secuencia de símbolos de la consulta a la base de datos, entonces se determinan los parámetros de consulta individuales, los elementos sintácticos, y se lleva a cabo su asignación a las categorías individuales.
En la realización de una consulta a la base de datos, en particular de una consulta a la base de datos SQL, los diferentes parámetros provocan diferentes tiempos de respuesta. Una orden de "select" (seleccionar) modificada tiene menos efectos que una orden de "where" (dónde) modificada. Debido a ello se propone que a los elementos sintácticos se les asignen valores. En este caso puede ser ventajoso que se pondere una diferencia entre los elementos sintácticos de las consultas combinadas a la base de datos con la ayuda del valor. Esto significa que las modificaciones en los elementos sintácticos que tienen un menor efecto en el tiempo de respuesta pueden estar menos ponderadas que las que tienen un efecto mayor en el tiempo de respuesta. Gracias a ello se hace posible constatar si las modificaciones encontradas también tienen efectos realmente en el rendimiento de una consulta a la base de datos.
Para poder llevar a cabo rápidamente la iteración a través de las consultas a la base de datos, y para tener un acceso directo a las consultas a la base de datos encontradas, así como a sus sintaxis, se propone que en una tabla para cada consulta a la base de datos determinada se memorice una identificación que designe esta sintaxis respectiva. También se puede memorizar una identificación de asignación asignada que asigna la consulta a la base de datos del archivo fuente. Adicionalmente se puede memorizar un valor de comparación que reproduce un resultado de comparación con otra consulta a la base de datos.
La sintaxis de una consulta a la base de datos se memoriza conjuntamente con su elemento sintáctico preferentemente en una tabla. Para volver a acceder a esta tabla, se memoriza en la tabla la identificación que designa la sintaxis. Adicionalmente, se puede acceder inmediatamente a la consulta a la base de datos y se puede determinar su posición en el archivo fuente cuando se memoriza la identificación de asignación. Finalmente, por medio de la memorización de un resultado de comparación se puede determinar si en el segundo archivo fuente se ha encontrado una consulta a la base de datos similar o igual. Por ejemplo, en la comparación de una consulta a la base de datos de un primer archivo fuente con todas las consultas a la base de datos de un segundo archivo fuente se encuentra en primer lugar en el primer paso una consulta a la base de datos totalmente diferente. Se memoriza el resultado de la comparación como valor de comparación. En el siguiente paso se encuentra una consulta a la base de datos en el segundo archivo fuente que presenta una cierta similitud con la consulta a la base de datos del primer archivo fuente, memorizándose esta similitud como resultado de la comparación, ya que es mayor que la similitud encontrada previamente. Finalmente se encuentra una consulta a la base de datos en el segundo archivo fuente que coincide completamente con la consulta a la base de datos del primer archivo fuente. Puesto que la similitud de estos dos archivos fuente, a su vez, es mayor que la similitud encontrada anteriormente, se memoriza este valor de comparación.
Por medio de la memorización del valor de comparación, se puede encontrar en el segundo archivo fuente la consulta a la base de datos que presente la mayor similitud con la consulta a la base de datos del primer archivo fuente.
Puesto que los diferentes elementos sintácticos presentan valores diferentes, se propone que a cada combinación de consultas a la base de datos se asigne con la ayuda de las diferencias ponderadas un valor de similitud. En el caso de que las dos consultas a la base de datos se diferencien en elementos sintácticos que tengan únicamente un efecto reducido en el tiempo de respuesta, entonces esto conduce a que estos sean similares, sin embargo. En el caso de que se encuentre una diferencia en un elemento sintáctico que pueda tener un efecto elevado en el tiempo de respuesta, entonces esto conduce a que las consultas a la base de datos presenten una similitud reducida. Esto significa que sólo las ligeras modificaciones en la secuencia de símbolos, que sin embargo contiene elementos sintácticos, que tienen el efecto fundamental en el tiempo de respuesta, llevan a una menor similitud de las consultas a la base de datos que a primera vista pueden parecer similares.
Para facilitar ahora el control de errores se propone que en primer lugar, las consultas combinadas a la base de datos de modo idéntico se muestren como idénticas. Todas las consultas a la base de datos del primer archivo fuente, para las que se han encontrado en el segundo archivo fuente consultadas a la base de datos evaluadas como idénticas - y viceversa - , se muestran como idénticas. Éstas ya no han de ser controladas, ya que no tienen ningún efecto en los tiempos de respuesta modificados de la base de datos.
También, las consultas a la base de datos muy similares tienen sólo un efecto reducido en el tiempo de respuesta de la base de datos, razón por la que se propone que las consultas combinadas a la base de datos de modo equivalente se muestren como idénticas. Equivalente significa que únicamente los elementos sintácticos que tienen únicamente un efecto reducido en el tiempo de respuesta diferencian las consultas a la base de datos. Estas consultas a la base de datos también se pueden mostrar como idénticas.
Finalmente, se propone que las consultas combinadas similares a la base de datos se muestren con su valor de similitud.
Para poder limitar el límite de las consultas a la base de datos que se pueden comprobar se propone que se determine un valor límite y que se mida el valor de similitud en el valor límite. Entonces se pueden mostrar con la ayuda del valor límite las consultas a la base de datos como similares o no similares. En caso de que el valor de similitud de una pareja de consultas a la base de datos sobrepase el valor límite, entonces estas consultas a la base de dato se muestran como similares. En caso de que el valor de similitud esté por debajo de un valor límite, entonces se puede concluir que estas consultas a la base de datos no son similares, y se pueden mostrar como nuevas o borradas.
Finalmente representa una ayuda que los dos archivos fuente se puedan comparar entre sí en su totalidad, para lo que se propone que se determine la desviación total de las consultas a la base de datos del primer archivo fuente respecto al segundo archivo fuente. Esta desviación total es una medida para saber en qué cantidad y en qué medida se han modificado las consultas a la base de datos en un segundo archivo fuente respecto a un primer archivo fuente.
Otro objeto de la invención es un dispositivo de comparación, en particular con un procedimiento descrito anteriormente, con medios de lectura que leen los archivos fuente y con medios de extracción que extraen consultas a la base de datos a partir de los archivos fuente. Los medios de lectura son bloques funcionales que leen los archivos fuente, es decir, que determinan su contenido. Los medios de extracción son bloques funcionales que a partir del contenido de los archivos fuente extraen las consultas a la base de datos.
Una determinación eficiente y precisa de consultas modificadas a la base de datos se consigue gracias al hecho de que esté prevista la sintaxis de un medio de análisis que analice las consultas a la base de datos, y que estén previstos los medios de comparación que comparan los elementos sintácticos de las consultas a la base de datos. Los medios de análisis, por ejemplo un programa analizador de sintaxis, son bloques funcionales que analizan las consultas a la base de datos y extraen su sintaxis. Para ello, los medios de análisis pueden descomponerte la sintaxis en elementos sintácticos, y de esta manera proporcionar los medios de comparación. Los medios de comparación reciben, respectivamente, dos sintaxis, y comparan éstas entre sí. Con la ayuda de los medios de comparación es posible comparar cada consulta a la base de datos del primer archivo fuente con cada consulta a la base de datos del segundo archivo fuente por lo que se refiere a los elementos sintácticos.
Preferentemente están previstos medios de memoria con cuya ayuda se memorizan elementos sintácticos de las consultas a la base de datos. Los medios de memoria son unidades de funcionamiento que memorizan datos. Con la ayuda de los medios de memoria, de esta manera, es posible un acceso posterior a los elementos sintácticos de cada consulta a la base de datos.
Adicionalmente está previsto que estén previstos los resultados de los medios de ponderación que ponderan los medios de comparación. Los medios de ponderación son unidades de funcionamiento que pueden combinar los resultados con factores, y sirven para asignar valores a los elementos sintácticos. Estos valores se refieren a la medida en la que un elemento sintáctico afecta a un tiempo de respuesta de una base de datos en una consulta a la base de datos.
Finalmente se propone que estén previstos medios de discriminación que valoran los resultados ponderados. Los medios de discriminación son elementos funcionales que asignan un valor de similitud a cada una de las consultas a la base de datos. Con la ayuda de los medios de discriminación es posible diferenciar consultas a la base de datos similares de aquellas que no son similares, y con ello limitar el número de las consultas a la base de datos que se han de analizar.
A continuación se explica con más detalle la invención a partir de un dibujo que muestra ejemplos de realización. En el dibujo se muestran:
Fig. 1 el transcurso de un procedimiento conforme a la invención;
Fig. 2 un dispositivo conforme a la invención.
La Fig. 1 muestra una base de datos 2 que presenta una pluralidad de datos. Estos datos pueden ser extraídos de una base de datos con la ayuda de consultas de "Structured Query Language" (SQL). Los programas 4 trabajan con la base de datos 2 con la ayuda de las consultas SQL. Dependiendo de las consultas SQL contenidas en los programas 4 varían entre sí los tiempos de procesamiento en los programas 4. En caso de que se reemplace un programa 4a antiguo por medio de un programa 4b nuevo, entonces es deseable que las diferencias en las consultas SQL entre los programas 4a, 4b se pudieran determinar, y con ello, que fuera posible un análisis de las consultas SQL modificadas.
Para ello se analiza en un paso 6 el programa 4a, 4b correspondiente, y se extraen todas las consultas SQL. Esto se lleva a cabo en primer lugar para el programa 4a antiguo, y a continuación para el programa 4b nuevo. Las fuentes para la extracción en el paso 6 pueden ser, por ejemplo, los códigos fuente de los programas 4, las interfaces de módulo de petición a la base de datos (DBRM) de los programas 4, las informaciones de catálogo DB2 ("Collection", "Package" y "Version"), así como cualquier otro tipo de fuentes que puedan ser leídas por medio de diferentes módulos de acceso.
Todas las consultas SQL extraídas se descomponen en el paso 8 en sus elementos sintácticos. En este caso se emplea un programa analizador de sintaxis que descompone las consultas SQL en sus elementos sintácticos correspondiente. Para cada consulta SQL contenida en el programa 4a y 4b se realiza una tabla 8a en la que se memorizan los elementos sintácticos de modo categorizado. Adicionalmente se indica en los programas 4 una referencia a la posición de la consulta SQL.
Después de que en el paso 8 hayan sido descompuestas todas las consultas SQL y hayan sido memorizadas en las tablas 8a individuales, en el paso 10 se deposita en una tabla de memoria 10a por SQL la clave de la tabla del programa analizador de sintaxis 8a, la posición de la consulta SQL en el programa 4a, 4b, y un conmutador que indica si el SQL ya ha sido asignado a otro SQL.
En el paso 12 se comparan entre sí las consultas SQL individuales que han sido depositadas en la tabla 8a. En este caso se comparan todas las consultas SQL de un programa 4a antiguo con las consultas SQL del nuevo programa 4b. En este caso se pueden comparar entre sí, por ejemplo, los elementos sintácticos "Coursor Name", "Statement Typ", tablas, "Joins"; "Predicates", "Select-", "Update e Insert-Columns", "Select Option Text" y "Select Option Columns". Para cada combinación de consultas SQL del programa 4a antiguo con consultas SQL del nuevo programa 4b se determina una precisión de resultado.
En el paso 14 se determina para todas las parejas una desviación porcentual, así como una valoración ponderada. En la desviación temporal se tienen en cuenta las diferencias entre las consultas SQL individuales de modo absoluto. En la valoración ponderada se determinan para los elementos sintácticos individuales diferentes ponderaciones, y se ponderan las diferencias que se produzcan a partir de estas ponderaciones. Esto significa que los elementos sintácticos individuales tienen un efecto menor en la desviación ponderada que otros. Esto es debido a que los diferentes elementos sintácticos de una consulta SQL tienen diferentes efectos en el rendimiento de una consulta SQL. Por ejemplo, una modificación del orden de la consulta de "Select Columns" (seleccionar columnas) provoca una modificación inapreciable del rendimiento de la consulta SQL, mientras que, por el contrario, una condición "Where" (dónde) modificada de una consulta SQL provoca una modificación considerable del rendimiento de la consulta SQL.
Después de que en el paso 14 hayan sido completadas las diferencias de las consultas SQL individuales del programa 4a con las del programa 4b, se evalúan entonces estas diferencias. En caso de que se encuentren, respectivamente, parejas de consultas SQL en los programas 4a y 4b que no difieran entre sí, entonces se muestra su diferencia como 0, y estas parejas se marcan en el paso 16 como coincidentes. Las parejas marcadas como coincidentes pueden dejar de ser consideradas en la siguiente observación. El programa 4b nuevo no se ha modificado respecto al programa 4a antiguo por lo que se refiere a una consulta SQL encontrada de esta manera.
Todas las parejas marcadas como no coincidentes - su diferencia es mayor que 0 - se evalúan en el paso 18, buscando para cada consulta SQL del programa 4a antiguo la consulta SQL del nuevo programa 4b que presenta la mayor coincidencia.
Después de que todas las consultas SQL hayan sido analizadas, y se hayan determinado las mejores parejas en el paso 18, en el paso 20 se lleva a cabo una comparación del valor umbral.
Para ello se fija un valor umbral que determina la menor desviación entre las parejas encontradas que son valoradas como parejas que ya no coinciden. Todas las consultas SQL que se han modificado parcialmente, cuya magnitud de la desviación, sin embargo, es menor que el valor umbral, se muestran como parcialmente coincidentes en el paso 20a, y en el análisis de los programas 4a y 4b pueden permanecer en primer lugar sin ser consideradas.
En este caso, la ponderación de los elementos sintácticos de la consulta SQL juega un papel fundamental. Ciertamente, la secuencia de símbolos de una consulta SQL en un programa 4b puede diferir sustancialmente de un programa 4a, si bien estas dos consultas SQL se diferencian sólo en un elemento sintáctico que tiene un efecto reducido en el rendimiento del programa. Una desviación de este tipo puede permanecer sin ser considerada.
En caso de que en la comparación del valor umbral 20 se constate una desviación en una pareja que previamente ha sido encontrada como coincidente en su mayor medida, que esté por encima del valor umbral fijado, entonces esta pareja SQL, en el paso 20b, se valora y se marca como borrada o bien como nueva. Todas las consultas SQL que presentan diferencias considerables en un programa 4b respecto a la consultas SQL en el programa 4a, o que ya no existen, se muestran y se marcan, con ello, como nuevas o borradas, de manera que estas consultas SQL, en el análisis del nuevo programa 4b, puedan ser consideradas en primer lugar.
Existe una probabilidad elevada de que las consultas SQL que se han modificado de un modo considerable modifiquen el rendimiento de un nuevo programa 4b respecto al programa 4a antiguo antes que aquellas consultas SQL que sólo se han modificado de un modo insignificante, o que no se hayan modificado en absoluto. Por medio de la comparación conforme a la invención se hace posible garantizar una selección previa de las consultas SQL que faciliten el análisis de un programa nuevo respecto a un programa antiguo.
En la Fig. 2 se representa un dispositivo de comparación conforme a la invención. Los programas 4a y 4b trabajan sobre una base de datos 2, en particular sobre una base de datos DB2 de IBM, con la ayuda de consultas SQL. En caso de que se introduzca un nuevo programa 4b y se sustituya un programa 4a antiguo, entonces habitualmente sucede que el rendimiento del nuevo programa 4b varía de modo significativo respecto al programa 4a antiguo. Esto es así, entre otras cosas, debido a que se han modificado las consultas SQL del programa 4a al programa 4b. Para facilitar un análisis de las consultas SQL se propone un dispositivo de comparación 22.
Los medios de lectura 24 acceden a las consultas SQL de los programas 4 por medio de interfaces 24a, 24b. Las consultas SQL determinadas por medio de los medios de lectura 24 de los programas 4 correspondientes se descomponen por medio de los medios de extracción 26 en sus elementos sintácticos. Para cada consulta SQL se memoriza en los medios de memoria 28 una tabla con los elementos sintácticos ordenados de la consulta SQL respectiva. Con ello, en los medios de memoria 28 para los dos programas 4a y 4b hay tablas con todas las consultas SQL, memorizando las tablas las consultas SQL de modo ordenado según sus elementos sintácticos.
Los medios de comparación 30 acceden a los medios de comparación 28 y leen las tablas de las consultas SQL. Con la ayuda de los medios de comparación 30 se comparan las consultas SQL del programa 4a con las consultas SQL del programa 4b. En la comparación se comparan entre sí todas las consultas SQL de los dos programas. En caso de que por medio de los medios de comparación 30 se encuentren consultas SQL que se correspondan entre sí por lo que se refiere a sus elementos sintácticos, entonces estas consultas SQL se muestran con la ayuda de los medios de discriminación 32 como idénticas. Las consultas SQL mostradas como idénticas ya no han de ser consideradas en un análisis de las diferencias entre los programas 4a y 4b.
Las diferencias determinadas mediante los medios de comparación 30 en las consultas SQL se ponderan con la ayuda de los medios de ponderación 34. Esto significa que las diferencias en los elementos sintácticos individuales se valoran de modo diferente. Después de que se haya llevado a cabo una ponderación de todas las diferencias, entonces se buscan las parejas de consultas SQL que presentan la mayor similitud en los dos programas 4a y 4b. En los medios de discriminación 32 se evalúa la medida de la similitud entre las parejas encontradas, y se compara con un valor umbral. En caso de que las parejas de consultas SQL sean similares entre sí, es decir, en caso de que sus diferencias ponderadas estén por debajo de un cierto valor umbral, entonces éstas se muestran como idénticas parcialmente. Las consultas SQL que apenas son similares, es decir, su valor ponderado de la diferenciación está por encima del valor umbral, se muestran como nuevas o borradas.
En un análisis de las diferencias entre los programas 4a y 4b, en primer lugar se han de analizar las consultas SQL mostradas como nuevas o borradas. Gracias a ello es posible determinar de un modo rápido y eficiente diferencias entre dos versiones del programa, y subsanar rápidamente problemas de rendimiento que se produzcan eventualmente.
Lista de símbolos de referencia
\dotable{\tabskip\tabcolsep#\hfil\+#\hfil\tabskip0ptplus1fil\dddarstrut\cr}{
 2 \+ Base de datos\cr  4a, b \+ Programas de consulta\cr  6 \+
Extracción\cr  8 \+ Descomposición\cr  8a \+ Tablas de programa
analizador de sintaxis\cr  10 \+ Memoria principal\cr  10a \+ Tabla
de memoria principal\cr  12 \+ Comparación\cr  14  \+ Determinación
de diferencias\cr  16 \+ Marcación como coincidentes\cr  18 \+
Determinación de las mejores parejas\cr  20 \+ Comparación del valor
umbral\cr  22 \+ Dispositivo de comparación\cr  22a \+ Interfaces\cr
 24 \+ Medios de lectura\cr  26 \+ Medios de extracción\cr  28 \+
Medios de memoria\cr  30 \+ Medios de comparación\cr  32 \+ Medios
de discriminación\cr  34 \+ Medios de
ponderación.\cr}

Claims (8)

1. Procedimiento para la comparación de dos archivos fuente que presentan consultas a la base de datos, en el que
-
las consultas a la base de datos se determinan a partir de dos archivos fuente,
-
las consultas determinadas a la base de datos de un primer archivo fuente se comparan con las consultas determinadas a la base de datos de un segundo archivo fuente,
-
la sintaxis de cada consulta a la base de datos se determina con la ayuda de un análisis sintáctico,
-
se determinan elementos sintácticos de las sintaxis de las consultas a la base de datos, y
-
cada consulta a la base de datos del primer archivo fuente se combina con cada consulta a la base de datos del segundo archivo fuente para la realización de una consulta combinada a la base de datos,
caracterizado porque
-
los elementos sintácticos de las consultas a la base de datos que han sido determinados a partir de los dos archivos fuente se memorizan de modo categorizado,
-
los elementos sintácticos correspondientes entre sí de las consultas combinadas a la base de datos se comparan entre sí,
-
a los elementos sintácticos se les asignan valores,
-
se determina una diferencia ponderada entre los elementos sintácticos de las consultas combinadas a la base de datos con la ayuda de los valores,
-
a cada combinación de consultas a la base de datos se le asigna con diferencias ponderadas un valor de similitud,
-
los valores de similitud de las consultas combinadas a la base de datos se comparan entre sí,
-
las consultas combinadas a la base de datos idénticas son descartadas del procesamiento posterior,
-
con la ayuda de los valores de similitud se determinan las mejores parejas de las consultas combinadas a la base de datos, y
-
se entrega un resultado de comparación.
2. Procedimiento según la reivindicación 1, caracterizado porque en una tabla se memoriza para cada consulta determinada a la base de datos una identificación que designa la sintaxis correspondiente, una identificación de asignación que asigna la consulta a la base de datos al archivo fuente y un valor de comparación que reproduce un resultado de comparación con otra consulta a la base de datos.
3. Procedimiento según una de las reivindicaciones 1 ó 2, caracterizado porque las consultas combinadas a la base de datos idénticas se muestran como idénticas.
4. Procedimiento según una de las reivindicaciones 1 a 3, caracterizado porque las consultas combinadas a la base de datos equivalentes se muestran como idénticas.
5. Procedimiento según una de las reivindicaciones 1 a 4, caracterizado porque las consultas combinadas a la base de datos similares se muestran con su valor de similitud.
6. Procedimiento según una de las reivindicaciones 1 a 5, caracterizado porque se determina un valor límite y se mide el valor de similitud en el valor límite, y con la ayuda del valor límite se muestran las consultas a la base de datos como similares o como no similares.
7. Procedimiento según una de las reivindicaciones 1 a 6, caracterizado porque se determina la desviación total de las consultas a la base de datos del primer archivo fuente respecto al segundo archivo fuente.
8. Dispositivo de comparación para la realización del procedimiento según una de las reivindicaciones 1 a 7,
-
con medios de lectura que leen los archivos fuente, y
-
con medios que extracción que extraen elementos sintácticos de las consultas a la base de datos a partir de archivos fuente,
-
con medios de memoria que memorizan los elementos sintácticos de la consulta a la base de datos de modo categorizado,
-
con medios de análisis que analizan la sintaxis de una consulta a la base de datos que están dispuestos de tal manera que cada consulta a la base de datos del primer archivo fuente se combina con cada consulta a la base de datos del segundo archivo fuente para la realización de una consulta combinada a la base de datos,
-
con medios de comparación que comparan los elementos sintácticos correspondientes entre sí de las consultas combinadas a la base de datos,
-
con medios de ponderación que asignan valores a los elementos sintácticos y que determinan una diferencia ponderada entre los elementos sintácticos de las consultas combinadas a la base de datos con la ayuda de los valores, y
-
con medios de discriminación que valoran los resultados ponderados que están dispuestos de tal manera que a cada combinación de consultas a la base de datos se le asigna un valor de similitud con la ayuda de diferencias ponderadas, los valores de similitud de las consultas combinadas a la base de datos se comparan entre sí, las consultas combinadas a la base de datos idénticas son descartadas del resto del procesamiento, y con la ayuda de los valores de similitud se determinan las mejores parejas de las consultas combinadas a la base de datos.
ES02024709T 2002-04-10 2002-11-06 Comparacion de archivos fuente. Expired - Lifetime ES2249529T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10215852 2002-04-10
DE10215852A DE10215852B4 (de) 2002-04-10 2002-04-10 Verfahren zum Vergleich zweier Datenbankabfragen aufweisenden Quelldateien und Vergleichsvorrichtung

Publications (1)

Publication Number Publication Date
ES2249529T3 true ES2249529T3 (es) 2006-04-01

Family

ID=28051240

Family Applications (1)

Application Number Title Priority Date Filing Date
ES02024709T Expired - Lifetime ES2249529T3 (es) 2002-04-10 2002-11-06 Comparacion de archivos fuente.

Country Status (4)

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

Family Cites Families (8)

* 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
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
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
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
GB9903451D0 (en) * 1999-02-16 1999-04-07 Hewlett Packard Co Similarity searching for documents
DE19907341A1 (de) * 1999-02-20 2000-08-31 Lutz H Karolus Verfahren zur Bearbeitung von Daten als Abfrageinformationen
AUPQ138199A0 (en) * 1999-07-02 1999-07-29 Telstra R & D Management Pty Ltd A search system

Also Published As

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

Similar Documents

Publication Publication Date Title
US7343371B2 (en) Queries-and-responses processing method, queries-and-responses processing program, queries-and-responses processing program recording medium, and queries-and-responses processing apparatus
US4775956A (en) Method and system for information storing and retrieval using word stems and derivative pattern codes representing familes of affixes
US5261087A (en) Electronic information retrieval system with relative difference analyzer
US6735559B1 (en) Electronic dictionary
CN106886509A (zh) 一种学位论文格式自动检测方法
US7676358B2 (en) System and method for the recognition of organic chemical names in text documents
KR970076347A (ko) 입력문자열 추측 인식장치
JPH02299068A (ja) 入力文字列からワードを分離する方法
JP4502114B2 (ja) データベース検索装置
ES2249529T3 (es) Comparacion de archivos fuente.
JP2002117027A (ja) 感情情報抽出方法および感情情報抽出プログラムの記録媒体
US20030195878A1 (en) Comparison of source files
Malouf et al. Lexical databases for computational analyses: A linguistic perspective
US7805430B2 (en) Evaluation of name prefix and suffix during a search
JP2000331023A (ja) 情報検索装置及び情報検索処理プログラムを記憶した記憶媒体
CN112579740A (zh) 用于医药检索的检索结果卡片化展示系统及方法
JPH05250416A (ja) データベースの登録・検索装置
JP3187671B2 (ja) 電子辞書表示装置
JPH0469768A (ja) 文書推敲支援方法
KR102278288B1 (ko) 음소 기반 텍스트 검색 장치 및 방법
JP3591109B2 (ja) キーワード設定装置
KR100248386B1 (ko) 인간 가독형 형태소 접속 정보와 자종(字種) 정보를 이용한 일본어 형태소 분석 장치 및 그 방법
JPH0554148B2 (es)
Earl Automatic determination of parts of speech of English words.
KR20010060249A (ko) 문자열 비교 방법 및 문자열 비교를 이용한 정보 검색 장치