Herramienta informática para la identificación y ... · Herramienta informática para la...

12
Herramienta informática para la identificación y reparación de inconsistencias de estructura y datos entre bases de datos PostgreSQL. Ing. Eddy Figueredo Aguilar. Ing. Odisleysi Martinez Furones. Universidad de las Ciencias Informáticas. Facultad Regional Granma. Ave Camilo Cienfuegos,Granma, Cuba. Autor para la correspondencia: [email protected] . Resumen El manejo de los datos mundialmente se ha hecho eficiente con el surgimiento de las bases de datos (BD), dando paso a la necesidad de crear una forma para garantizar la seguridad de estos datos, de ahí surge el respaldo a la información almacenada. La redundancia de la información almacenada en las BD, es generalmente la principal causa de la ocurrencia de inconsistencias, incluyendo además los procesos de actualización o cualquier cambio que se haga en el estado de las mismas que no sea llevada a su respaldo. Mediante el presente trabajo se realiza un análisis del proceso de actualización en las BD y entre BD y su respaldo, con el objetivo de entender las causas de las apariciones de las inconsistencias y modelar una herramienta informática capaz de tratarlas, para luego implementarla. En la primera parte del mismo se realiza un estudio del estado del arte seleccionándose la estrategia para llevar a cabo la tarea. Se establece además una metodología para guiar el proceso de desarrollo del software, que incluye el desarrollo de los artefactos necesarios para implementar y probar la herramienta informática deseada. Palabras claves: Herramienta informática, inconsistencias, proceso de actualización, redundancia, respaldo. Summary The data management world has been efficient with the emergence of the databases (DB), giving way to the need to create a way to ensure the safety of these data, which raises backup for stored information. The redundancy of the information stored on the DB, is usually the main cause of the occurrence of inconsistencies, further comprising updating processes or any change made in the same state is not brought to a backup. Through this work, an analysis of the upgrade process in DB and between DB and backup, in order to understand the causes of the appearances of the inconsistencies and modeling tool capable of treating them, and then implement it. In the first part of it is a study of the state of the art selected strategy to perform the task. It also provides a methodology to guide the software development process, including the development of the artifacts necessary to implement and test the software tool desired. Keywords: Software tool, inconsistencies, updating process, redundancy, backup.

Transcript of Herramienta informática para la identificación y ... · Herramienta informática para la...

Herramienta informática para la identificación y reparación de inconsistencias de

estructura y datos entre bases de datos PostgreSQL.

Ing. Eddy Figueredo Aguilar. Ing. Odisleysi Martinez Furones.

Universidad de las Ciencias Informáticas. Facultad Regional Granma. Ave Camilo Cienfuegos,Granma, Cuba.

Autor para la correspondencia: [email protected] .

Resumen

El manejo de los datos mundialmente se ha hecho eficiente con el surgimiento de las bases de

datos (BD), dando paso a la necesidad de crear una forma para garantizar la seguridad de estos

datos, de ahí surge el respaldo a la información almacenada. La redundancia de la información

almacenada en las BD, es generalmente la principal causa de la ocurrencia de inconsistencias,

incluyendo además los procesos de actualización o cualquier cambio que se haga en el estado de

las mismas que no sea llevada a su respaldo. Mediante el presente trabajo se realiza un análisis

del proceso de actualización en las BD y entre BD y su respaldo, con el objetivo de entender las

causas de las apariciones de las inconsistencias y modelar una herramienta informática capaz de

tratarlas, para luego implementarla. En la primera parte del mismo se realiza un estudio del

estado del arte seleccionándose la estrategia para llevar a cabo la tarea. Se establece además una

metodología para guiar el proceso de desarrollo del software, que incluye el desarrollo de los

artefactos necesarios para implementar y probar la herramienta informática deseada.

Palabras claves:

Herramienta informática, inconsistencias, proceso de actualización, redundancia, respaldo.

Summary

The data management world has been efficient with the emergence of the databases (DB),

giving way to the need to create a way to ensure the safety of these data, which raises backup

for stored information. The redundancy of the information stored on the DB, is usually the main

cause of the occurrence of inconsistencies, further comprising updating processes or any change

made in the same state is not brought to a backup. Through this work, an analysis of the

upgrade process in DB and between DB and backup, in order to understand the causes of the

appearances of the inconsistencies and modeling tool capable of treating them, and then

implement it. In the first part of it is a study of the state of the art selected strategy to perform

the task. It also provides a methodology to guide the software development process, including

the development of the artifacts necessary to implement and test the software tool desired.

Keywords:

Software tool, inconsistencies, updating process, redundancy, backup.

Introducción.

En la actualidad el mundo se maneja a través de la información, la cual está creciendo

considerablemente en las instituciones y empresas. Un estudio de la Corporación Egan Marino

C. (EMC²) -corporación, fabricante mundial en soluciones de infraestructura de la información-,

asegura que en el 2010 la cantidad de información generada mundialmente estuvo cerca de 1,2

zettabytes. Un zettabyte equivale a 1 trillón gigabytes. En 2009, y en medio de la gran recesión

económica, la cantidad de información digital creció en un 62 %, en comparación con el 2008,

donde se lograron 800 billones gigabytes o 0,8 zettabytes, con una tasa de crecimiento anual del

60 %, el universo digital está creciendo rápidamente y se estima que la información digital

alcanzará los 1.8 zettabytes para el año 2011 (ANON. 2010 a)(EMC Corporation 2008). Para

contribuir a la organización y manipulación eficiente de la información se crearon los sistemas

gestores de bases de datos (en lo adelante SGBD), los cuales influyen en el rendimiento, en el

buen uso de las BD, en su correcto funcionamiento, y en su seguridad, ya que implican un

mayor control sobre las mismas (Sumathi, Esakkirajan 2007). Sin embargo algunos de los

inconvenientes o desventajas de los SGBD están dados por su tamaño, pues los SGBD son

programas que requieren una gran cantidad de espacio en disco y de memoria para trabajar de

forma eficiente. Otro de los inconvenientes es el costo económico que tienen, ya que varían en

dependencia de la funcionalidad que ofrezca, del entorno y el mantenimiento que suele ser un

porcentaje del precio del SGBD anualmente. Las prestaciones también constituyen otra de las

desventajas debido a que los SGBD están desarrollados para ser útiles en muchas aplicaciones.

Esto trae consigo que algunas de ellas no sean tan rápidas como en los sistemas de archivos. Los

SGBD también son vulnerables a los fallos, como todos los datos están centralizados el sistema

se hace más vulnerable ante los fallos que se produzcan. Otra de las afectaciones a las BD puede

ocurrir debido a que los archivos que mantienen almacenada la información son creados por

diferentes tipos de programas de aplicación y existe la posibilidad de que si no se controla

detalladamente el almacenamiento, se pueda originar un duplicado de información. Esto

aumenta los costos de almacenamiento y acceso a los datos, además de que origina la

inconsistencia de los datos, la cual ocurre cuando existe información contradictoria o

incongruente en la BD, es decir diversas copias de un mismo dato no concuerdan entre sí, por

ejemplo: se actualiza la dirección de un cliente en un archivo y que en otros archivos

permanezca la anterior (Martínez 2002). Se pueden identificar distintos tipos de inconsistencias,

dentro de las que se encuentra: de datos, estructurales, permisos, funciones y disparadores.

Encontrar estas diferencias es muy engorroso cuando se trata de una gran cantidad de

información por lo que sería necesaria una forma de facilitar la búsqueda de las mismas. Las BD

también pueden presentar afectaciones referentes a la pérdida de la información. Según la

Máquina Internacional de Negocio (IBM) el 17,5 % de la pérdida de la información se debe a

sabotajes o hechos terroristas, otro 17,5 a accidentes, un 14,0 a eventos atmosféricos, el 7,0 a

inundaciones, los terremotos representan un 10,5 % mientras que se reporta un 8,8 por errores

de software, 9,5 por caídas eléctricas o fallos eléctricos, otros factores definidos fueron por

fallos de red y roturas de conducción con 3,5 % respectivamente, en tanto, por errores de

hardware se identificó un 5,3 % y un 2,8 para otras eventualidades no definidas dentro de las

mencionadas (Espinosa 2009). Como se ha podido observar, las afectaciones que presenta una

BD son bastante diversas, y en su conjunto hacen que aumente la probabilidad de que la misma

presente fallos en algún momento. Debido a esto las empresas u organismos emplean

generalmente las copias de respaldo para evitar la pérdida total o parcial de la información.

Generalmente el contenido a salvaguardar se define de acuerdo con su importancia. Es

importante tener en cuenta que estas copias de respaldo deben tener la garantía de poder

recuperarlas una vez que ocurra un fenómeno determinado. Dentro de los mecanismos o tipos

de copias en función de la cantidad de información con la que se trabaje se encuentran: la copia

de seguridad total o íntegra, la copia de seguridad incremental, y la copia de seguridad

diferencial (ANON. 2010 b). Sin embargo, estos mecanismos, no garantizan la seguridad y

disponibilidad total de la información pues puede darse el caso de existir diferencias en la copia

de respaldo. Para identificar estas diferencias se han creado herramientas entre las que se

destacan EMS DB Comparer for PostgreSQL (EMS Software Development 2011) y

PostgreSQL Data Sync (SQL Maestro Group 2012 b). Estas herramientas están hechas para

Windows, comparan y sincronizan el contenido de la BD y no resuelven todos los tipos de

diferencias. PostgreSQL es uno de los SGBD más conocidos y está basado en POSTGRES:

sucesor del IGRES SGBD desarrollado durante el período comprendido entre los años 1975 a

1977 (Stonebraker, Rowe 1986), Versión 4.2, desarrollada en la Universidad de California

Berkeley en el Departamento de Informática. POSTGRES abrió camino a muchos conceptos

que solo se pusieron disponibles tiempo después en algunos sistemas de BD comerciales.

PostgreSQL es un descendiente del código-abierto del código original de Berkeley. Apoya en

gran parte al estándar SQL y ofrece muchos rasgos modernos. Además, el usuario puede crear

nuevos tipos de datos, funciones, así como operadores, entre otros. Debido a la licencia libre,

PostgreSQL puede usarse, puede modificarse, y puede distribuirse por todos de manera gratis

para cualquier propósito, sea privado, comercial, o académico (The PostgreSQL Global

Development Group 1996 a). Debido a sus prestaciones, a sus características y a su licencia, hoy

en día es uno de los SGBD más utilizados mundialmente. En la actualidad la versión más

utilizada en la facultad 3 de la Universidad de las Ciencias Informáticas (UCI) es la 8.4 debido a

que fue liberada en el 2009 con más de 250 mejoras respecto a sus anteriores versiones, dentro

de las que se encuentra: la restauración de BD en procesos paralelos acelerando la recuperación

de un respaldo hasta 8 veces, los privilegios por columna, la configuración de ordenamiento

configurable por BD, las nuevas herramientas de monitoreo de consultas que le otorgan a los

administradores mayor información sobre la actividad del sistema (León, Rodríguez, Veitia

2011). Por lo antes expuesto se enfrenta la siguiente situación problemática: ha aumentado el

volumen de la información almacenada, así como la complejidad de los mecanismos utilizados

para su almacenamiento, los SGBD y las herramientas de administración existentes no

garantizan la integridad de la información, todos los SGBD están propensos a la ocurrencia de

fallas que provoquen la pérdida total o parcial de la información y no existe una herramienta

informática libre que sea capaz de identificar y reparar las inconsistencias que se presentan entre

BD PostgreSQL.

Materiales y Métodos.

Con el objetivo de elaborar un marco teórico para lograr la investigación se emplearon los

siguientes métodos:

Método teórico análisis histórico-lógico: Para realizar la recopilación de la información sobre

las BD PostgreSQL, su trayectoria y comportamiento con respecto al fenómeno de la

inconsistencia de datos, además de la investigación de las leyes generales del funcionamiento y

desarrollo de este fenómeno. Método teórico modelación: Para realizar el diseño de una

propuesta de solución a la problemática planteada.

Método teórico Análisis-Sintético: Para analizar las teorías, documentos, estudiar la

bibliografía referente al tema, etc.

Método empírico entrevista: Para identificar la Problemática y el Problema a resolver se hizo

necesario utilizar este método haciéndoles encuestas a algunos arquitectos de BD de distintos

proyectos de la UCI, dentro de los que se encuentra el Ing. Juniel Tamayo Hernández, arquitecto

de BD del Proyecto División de Antecedentes Penales de la República Bolivariana de

Venezuela (DAP) y el Ing. Vlamir Rodríguez Fernández administrador de BD del proyecto

Fiscalía fase 1.

Bases conceptuales

Definir los conceptos principales ayuda al entendimiento y fundamenta las bases para la

realización de la indagación, a continuación se desglosan los conceptos más importantes para la

investigación:

SGBD

Los SGBD consisten en la recopilación de datos interrelacionados y un conjunto de programas

para acceder a los datos. Son software que ayudan a mantener y utilizar una BD (Sumathi,

Esakkirajan 2007).

PostgreSQL

PostgreSQL es un sistema de gestión de bases de datos objeto-relacional (SGBDOR),

distribuido bajo licencia BSD y con su código fuente disponible libremente. Es el SGBD de

código abierto más potente del mercado y en sus últimas versiones no tiene nada que anhelar a

otras BD comerciales. (The PostgreSQL Global Development Group 1996 b)

Inconsistencias de BD PostgreSQL

Las BD tienen como principal objetivo almacenar la información. Teniendo en cuenta el

incremento diario de esta, es necesario lograr la creación de BD con un diseño óptimo para

evitar los problemas que trae consigo la redundancia de la información, así es como se eliminan

los datos repetidos o los problemas al realizar cualquier transformación en la misma.

Generalmente cualquier anomalía con la BD surge a partir de una operación realizada. Las

causas de la ocurrencia de la inconsistencia de datos en un sistema pueden ser accidentales o

intencionales (con fines indebidos). Dentro de las causas intencionales, se tiene el robo de la

información o la lectura sin autorización y la modificación o la destrucción no autorizada. En las

causas accidentales están: las fallas de conexión durante el procesamiento de transacciones,

fallas del hardware debido al medioambiente o catástrofes, anomalías por acceso concurrente,

anomalías que resultan de la distribución de los datos entre varios servidores y un error lógico

que viole la suposición de que las transacciones respetan las restrictivas de consistencia de los

datos o un error cometido por algún usuario al introducir datos (Rose 1993).

Las anomalías en BD son ciertos problemas que aparecen con frecuencia en el manejo de las

mismas cuando el diseño no ha sido realizado de forma normalizada, o sea, no se han diseñado

teniendo en cuenta un conjunto de reglas para evitar problemas de lógica, estas reglas son

conocidas como formas normales. Las anomalías básicas que surgen a partir de

transformaciones que se hagan en las BD se definen como:

- Anomalía de inserción: Imposibilidad de dar de alta una tupla por no disponer del valor de un

atributo principal.

- Anomalía de borrado: Pérdida de información por dar de baja una tupla.

- Anomalía de modificación: Tiene que ver con la redundancia. En general, la normalización

reduce la redundancia, pero no la elimina por completo.

La inconsistencia ocurre cuando existe información contradictoria o incongruente en la BD, es

decir diversas copias de un mismo dato no concuerdan entre sí. Esto ocurre debido a la

existencia de redundancia en la BD, si por algún motivo la actualización de alguno de los datos

redundantes fallara se estaría en presencia de inconsistencia. Los tipos de inconsistencias que se

identificaron en las BD son los siguientes:

Inconsistencia de datos :

Los SGBD garantizan la integridad de la información, teniendo en cuenta la no existencia de

redundancia, ya que esta significa en muchos casos la posibilidad de inconsistencia en la

información, pues la inconsistencia de datos se identifica a partir de transformaciones que se

hagan en las BD, surgiendo a partir de las anomalías de actualización, es decir, cuando un dato

redundante es actualizado en una parte, y no coincide en otra.

Inconsistencia de estructura:

Las inconsistencias de estructura, como su nombre lo indica, tienen mucho que ver con la

estructura de la BD y por lo tanto se definen en el diseño de la misma. Las inconsistencias de

estructura son las diferencias estructurales que se dan en el diseño o las relaciones entre objetos

de las BD, entre una BD origen y su respaldo, es decir, debido a cualquier problema o anomalía

de actualización al cambiarse el nombre de una tabla o la relación entre ellas en una BD origen,

no se hace en su respaldo quedando esta última inconsistente con respecto a su origen.

Inconsistencias de programación:

Se definen como las inconsistencias que surgen al realizar cambios en las consultas para el

trabajo con las BD, al no realizarse los cambios en la copia de respaldo de la misma. Es decir,

las diferencias estructurales surgidas en las consultas que afectan la respuesta o el

funcionamiento de estas.

Resultados y Discusión.

Para identificar y corregir las inconsistencias de bases datos mundialmente existen herramientas,

algunas de las más relevantes se comparan a continuación y se tomó como criterio de revisión

sus tipos de licencias, los SGBD, sistema Operativo (SO), e inconsistencias que trabajan.

El estudio realizado arrojó la existencia de varias herramientas que realizan la comparación y

sincronización de BD, destacando solo las mencionadas, para el SGBD PostgreSQL. Mostró

además que existen herramientas para trabajar con el gestor que incluyen entre sus

funcionalidades la sincronización, tal es el caso de DreamCoder for PostgreSQL. Además, se

estudiaron otras herramientas que no trabajan con PostgreSQL con el objetivo de analizar las

funcionalidades necesarias y sacar definiciones sobre las inconsistencias a tener en cuenta. Se

concluye entonces que la vía factible para resolver el problema es desarrollar una nueva

herramienta, ya que ninguna de las herramientas expuestas resuelve todas las inconsistencias

antes analizadas, además de que la mayoría son propietarias y corren sobre el SO Windows. La

herramienta que se desarrollará es para la versión 8.4 de PostgreSQL aunque se pretende probar

y extender a PostgreSQL 9.x.

Funciones de similitud sobre cadenas de texto .

Como bien se ha tratado las BD revolucionaron el mundo moderno, ya que almacenan grandes

volúmenes de información, sin embargo, estas pueden presentar información duplicada que en

ocasiones llevan a una decisión equivocada. El proceso que detecta este conflicto se conoce en

el ámbito de las BD como: merge-purge, data deduplication o instance identification, así como

detección de duplicados.

En 1946 el primero en plantear el proceso de detección de duplicados fue Halbert L. Dunn, al

transcurrir de los años se fue perfeccionando, en el año 2000, Winkler propuso mejoras al

modelo. En su forma más simple, dicho proceso es como sigue:

Dado un conjunto R de registros.

1) Se define un umbral real ø ∈ [0,1].

2) Se compara cada registro de R con el resto.

3) Si la similitud entre una pareja de registros es mayor o igual que ø, se asumen duplicados; es

decir, se consideran representaciones de una misma entidad real.

Persiguiendo que la función tenga efectividad es necesaria alguna función de similitud que,

dados dos registros con la misma estructura, devuelva un número real en el intervalo [0,1] igual

a uno si ambos registros son idénticos y menor cuanto más diferentes sean. Tal valor depende de

la similitud entre cada pareja de atributos respectivos. Luego, es necesaria otra función de

similitud al nivel de atributo (no de registro), siendo frecuente en este contexto tratar los

atributos, sin importar su tipo de datos, como cadenas de texto (strings). Estas funciones se

clasifican en dos categorías: basadas en caracteres y basadas en palabras completas o tokens. Se

empleó una variante de las funciones de similitud basadas en palabras completas o tokens, en

forma de algoritmo. Las funciones de similitud basadas en tokens consideran cada cadena como

un conjunto de subcadenas separadas por caracteres especiales, como por ejemplo espacios en

blanco, puntos y comas, esto es, como un conjunto de tokens, y calculan la similitud entre cada

pareja de tokens mediante alguna función de similitud basada en caracteres.

Para darle solución al problema tratado se emplea un híbrido de lo estudiado, teniendo en cuenta

que se buscan inconsistencias, o sea, elementos que deberían ser los mismos y no lo son. Por

tanto, se trabaja con elementos para la búsqueda de duplicados pero se analizan los resultados de

forma inversa. Para encontrar una inconsistencia y mostrar la distancia entre cada token debe

estar en su umbral mayor.

Con el objetivo de lograr el desarrollo de la herramienta se analizaron puntos para la

implementación en los cuales se incluye la metodología seleccionada, la arquitectura, el

lenguaje de programación, el ambiente de desarrollo, así como las pruebas a realizar a la misma

para verificar el cumplimiento de las funciones deseadas. Las metodologías tradicionales son

usadas por grupos grandes de trabajo, su uso generalmente implica un plan de trabajo más

amplio. Teniendo en cuenta que se trata de un equipo de trabajo pequeño y que además se

cuenta con poco tiempo para la implementación, luego del análisis realizado, se decidió utilizar

una metodología ágil. A partir del estudio realizado sobre las metodologías ágiles se decidió

utilizar AUP pues esta cuenta con las características necesarias para guiar el desarrollo de la

herramienta propiciando el cumplimiento de su objetivo, posee características que tributan a las

necesidades del desarrollo del software, es decir entregables suficientes para hacer entendible el

sistema para posteriores implementaciones sobre el mismo. La arquitectura seleccionada fue la

arquitectura en capas pues dentro de su funcionamiento contempla la reutilización de

componentes, siendo este concepto utilizado en la implementación. También permite el

mantenimiento y las mejoras a la solución, debido al bajo acoplamiento entre las capas, así

como la alta cohesión de las mismas y la habilidad de cambiar su implementación sin cambiar

las interfaces. Tiene en cuenta otras soluciones, ya que se reutilizan las funcionalidades

expuestas por las diferentes capas, especialmente si las capas de las interfaces son diseñadas con

la reutilización en mente. Además, la capacidad de realizar pruebas se beneficia de tener

interfaces bien definidas para cada capa, así como de la habilidad para cambiar a diferentes

implementaciones de las interfaces (Trowbridge, Mancini, Quick, Hohpe, Newkirk, Lavigne

2003). Para el desarrollo de la aplicación se decide utilizar JDK 1.7, teniendo en cuenta que la

herramienta a desarrollar será libre, para su posterior uso se utilizara en las máquinas cliente

OpenJDK 7 la versión libre del kit de desarrollo Java. Como IDE para la programación se

seleccionó NetBeans 7.1 pues cuenta con bibliotecas gráficas muy potentes para el trabajo con

interfaces gráficas de usuario, posee además muy buenos mecanismos de auto completamiento y

corrección que facilita la implementación permitiendo que la misma se haga de forma rápida y

eficiente. Es además una herramienta libre y sin restricciones de uso.

Propuesta de Solución.

La arquitectura está definida en 2 capas, estas son:

Presentación:

La capa de presentación, es la encargada de interactuar con el usuario de la aplicación mediante

una interfaz de usuario. La interfaz de usuario estará contenida por varias vistas, por las cuales

el usuario va a ir realizando las operaciones mediante pasos ordenados para arribar a la

reparación de la base de datos que contenga inconsistencias.

Lógica de negocio:

La capa lógica de negocio es la responsable de realizar las tareas para las cuales se diseña el

sistema. También es la encargada de gestionar el almacenamiento de los datos, mediante el

SGBD PostgreSQL.

Teniendo en cuenta el análisis de los algoritmos expuestos, se estableció una guía para la

implementación que establece los pasos necesarios para realizar la comparación deseada en la

implementación. Se conformó el código a partir de la serie de pasos descritos a continuación:

1. Tratar los objetos seleccionados de las bases de datos como conjuntos independientes.

2. Definir la existencia de un conjunto menor o la igualdad de los mismos.

3. Comparar cada conjunto buscando la ocurrencia del menor en el mayor, definiendo

igualdades y diferencias.

Es importante aclarar que este procedimiento se realiza por cada elemento una vez comprobado

que son iguales en cuanto al nombre y el tipo, estableciendo una forma de comparación

recursiva hacia abajo teniendo en cuenta que cada elemento puede contener un subconjunto.

Aporte y Novedad.

Luego del estudio realizado de las características del proceso de resolución de inconsistencias

de estructura y de datos, del objeto de investigación y de las tendencias actuales de desarrollo de

software, díganse metodologías de desarrollo, lenguajes de modelado, lenguajes de

programación, es importante destacar que existen múltiples herramientas para la detección y

corrección de las inconsistencias entre BD. Estas herramientas son en su mayoría propietarias y

además no solucionan todas las inconsistencias surgidas, al no contemplar algunas

funcionalidades, como la comparación de datos. Teniendo en cuenta estos aspectos, y la

variedad de inconsistencias que ocurren entre BD PostgreSQL, se decide implementar una

herramienta que agrupe las funcionalidades necesarias para resolver las inconsistencias

analizadas. La herramienta a desarrollar “Herramienta Informática para la Solución de

Inconsistencias” (HIPSI), tiene como principal objetivo solucionar las inconsistencias

analizadas (de datos y de estructura) que surgen a partir de las anomalías y su desarrollo será

bajo licencia libre. Teniendo como novedad la forma de tratar las inconsistencia, al analizar las

funciones de similitud entre cadenas de texto.

Conclusiones y Recomendaciones.

En el presente trabajo se propuso una herramienta para la identificación y reparación de

inconsistencias de datos y de estructuras entre BD PostgreSQL, enfocada en el proceso de

actualización de las BD con el objetivo de contribuir a su mantenimiento y potenciando la

integridad de sus datos. Se cumplieron los objetivos propuestos y se arribó a las siguientes

conclusiones:

- Se realizó un estudio del estado del arte del proceso de actualización de BD incluidos

los algoritmos empleados para ello y las herramientas informáticas desarrolladas para

este fin, logrando identificar las principales tendencias y concluyendo que no existe

ninguna herramienta que solucione el problema identificado en esta investigación.

- Se aplicaron la metodología y arquitectura definidas generando los entregables previstos

para cada fase del proceso de desarrollo, lo que permitió modelar la solución.

- Se utilizaron estándares de programación y patrones de diseño logrando la

implementación de una herramienta informática para solucionar inconsistencias en BD

PostgreSQL.

- La solución informática desarrollada fue sometida a un proceso de validación a través

de la aplicación de métricas al diseño así como de pruebas de caja blanca y caja negra al

código y a las interfaces del sistema respectivamente, finalmente, se realizaron pruebas

de integridad a las BD comparadas para validar la ausencia de inconsistencias. En todos

los casos, los resultados finales fueron satisfactorios.

Para posteriores versiones de la herramienta es necesario se tomen en cuenta, en función de un

mejor desempeño del personal en las próximas versiones del proyecto, las siguientes

recomendaciones:

- Extender la herramienta en versiones posteriores para que trabaje con PostgreSQL en su

versión 9 en adelante, ya que actualmente la herramienta trabaja con la versión 8.4.

- Ampliar las comparaciones de la herramienta a encontrar inconsistencias dentro de una

misma Base Datos.

- Agregar al sistema una funcionalidad que permita la persistencia de los cambios que se

hagan en las BD de manera que luego puedan ser consultados.

Referencias.

- ANON., 2010a. Estudio de EMC proyecta gran crecimiento de la información en 10

años. In: [online]. 27 April 2010. [Accessed 22 February 2012]. Available from:

http://www.colombianproductions.com/mymit/joom1515/index.php?option=com_conte

nt&view=article&id 53: estudio-de-emc-proyecta-gran-crecimiento-de-la-informacion-

en-10 anos&catid=38: noticias&Itemid=55.

- ANON., 2010b. Tipos de copia de seguridad. In: [online]. 15 2010. Available from:

http://www.ite.educacion.es/formacion/materiales/85/cd/REDES_LINUX/backup/Tipos

_de_copia_de_seguridad.html.

- EMC CORPORATION, 2008. El nuevo fenómeno mundial: la “Sombra Digital.”In:

[online]. 2008. [Accessed 12 June 2012]. Available from:

http://argentina.emc.com/about/news/press/2008/20080311- 01.htm.

- EMS SOFTWARE DEVELOPMENT, 2011. Página del autor - EMS Software

Development – Softpedia en español. In: [online]. 2011. [Accessed 11 June 2012].

Available from: http://www.softpedia.es/autor-EMS-Software-Development-

19199.html.

- ESPINOSA, Jose Edgar Juarez, 2009. Respaldo de Información. In: [online]. 30 August

2009. [Accessed 24 February 2012].Available from:

http://sistemasmultiempresa.com/RespaldodeInformacion.aspx.

- LEÓN, A. R. Sotolongo, RODRÍGUEZ, M. Gutierrez and VEITIA, B. Piñeiro, 2011.

CRUD-PG. In: Revista Cubana de Ciencias Informáticas. 2011. Vol. 5, no. 1.

- MARTÍNEZ, M.C. Beatriz Beltrán, 2002. 2002. S.l.: s.n. Benemérita

Universidad Autónoma de Puebla.

- ROSE, César E., 1993. Archivos, Organización y procedimientos. 1993. S.l.: s.n.

- SQL MAESTRO GROUP, 2012b. Página del autor - SQL Maestro Group - Softpedia

en español. In: [online]. 9 April 2012. [Accessed 11 June 2012]. Available from:

http://www.softpedia.es/autor-SQL-Maestro-Group-6790.html.

- STONEBRAKER, M. and ROWE, L. A., 1986. The design of POSTGRES. S.l.: s.n.

ISBN 0897911911. ACM.

- SUMATHI, S. and ESAKKIRAJAN, S., 2007. Fundamentals of Relational Database

Management Systems. Poland: Polish Academy of Sciences. ISBN 3-540-48397-7.

Springer Berlin Heidelberg New York.

- SUMATHI, S. and ESAKKIRAJAN, S., 2007. Fundamentals of Relational Database

Management Systems. Poland: Polish Academy of Sciences. ISBN 3-

540-48397-7. Springer Berlin Heidelberg New York.

- THE POSTGRESQL GLOBAL DEVELOPMENT GROUP, 1996a. PostgreSQL 8.1.0

Documentation. 1996. S.l.: s.n.

- THE POSTGRESQL GLOBAL DEVELOPMENT GROUP, 1996b. PostgreSQL 8.1.0

Documentation.1996. S.l.: s.n.

- TROWBRIDGE, David, MANCINI, Dave, QUICK, Dave, HOHPE, Gregor,

NEWKIRK, James and LAVIGNE, David, 2003. Enterprise Solution Patterns using

Microsoft .NET. S.l.: Microsoft Corporation.