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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/217—Database 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.
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.
\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.
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)
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 |
-
2002
- 2002-04-10 DE DE10215852A patent/DE10215852B4/de not_active Expired - Fee Related
- 2002-11-06 AT AT02024709T patent/ATE304193T1/de active
- 2002-11-06 ES ES02024709T patent/ES2249529T3/es not_active Expired - Lifetime
- 2002-11-06 DE DE50204176T patent/DE50204176D1/de not_active Expired - Fee Related
- 2002-11-06 EP EP02024709A patent/EP1353278B1/de not_active Expired - Lifetime
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) | 문자열 비교 방법 및 문자열 비교를 이용한 정보 검색 장치 |