La codificación en Bases de Datos, necesidad de un nuevo enfoque

Anuncio
Revista Electrónica Granma Ciencia. Vol.10, No.3, Septiembre - Diciembre 2006
ISSN 1027-975X
TÍTULO: Adiós a los códigos
AUTORES: Osmani Miranda Escalona
Javier Miranda Escalona
INSTIUCIÓN: Universidad de Granma. Carretera de
Granma, Cuba.
Manzanillo, km 17½. Bayamo,
E-MAI: miranda@udg.co.cu
RESUMEN
Las Bases de Datos pueden llegar a ser un voluminoso almacén de datos inútiles y no
confiables si los datos no están debidamente conciliados y estandarizados. Los
principales problemas que inciden en las anomalías de los datos son la utilización de los
diferentes formatos y los errores humanos en la entrada de los mismos. Estos
problemas son resueltos mediante la codificación: operación mediante la cual los datos
expresados en un determinado sistema convencional de representación, son convertidos
en otro sistema diferente de representación. La codificación surgió como necesidad,
además de resolver los problemas mencionados, para optimizar el empleo de la memoria
disponible, pero esto se logra a costa del rendimiento temporal en las recuperaciones.
Hoy, para los sistemas informáticos es más crítico el problema del rendimiento temporal
que el espacial (relativo a la memoria). Por este motivo proponemos resolver el problema
de la estandarización de los datos mediante listas de valores en lenguaje natural que se
guardan directamente en la Base de Datos sin sustituirse por otro sistema de
representación.
INTRODUCCIÓN
En [6] Mestre plantea el siguiente concepto de “Bases de Datos”: Conjunto de datos
almacenados en soporte informático de forma sistemática y ordenada utilizando para ello
un Sistema de Gestión de Bases de Datos. La recuperación de datos almacenados en
una Base de Datos debe ser fácil, rápida y económica.
Lograr los objetivos enunciados no es sencillo si se tiene en cuenta que hoy se genera
una voluminosa cantidad de información diariamente que se recopila en distintos
formatos. Algunas se obtienen de forma automatizada y en tiempo real, a través de
transductores, desde procesos tecnológicos; otras de forma manual u oral. Este conjunto
de datos e informaciones que se obtienen y procesan a través aplicaciones puede llegar
a ser una fuente valiosa de conocimiento en la cual los jefes y especialistas puedan
optimizar la eficiencia y la eficacia de su desempeño. No obstante, puede también
convertirse en un almacén de información no confiable o en la práctica no accesible lo
que puede traducirse también como un gran “basurero”. Todo depende del rigor, la
efectividad y la estructura con que tomen los datos de las fuentes primarias, es decir de
donde se origina la información.
Garhardas en [3] planteó como las principales causas de las de las anomalías en los
datos las siguientes:
1. Ausencia de llaves universales sobre diferentes BD: conocido como el problema de
identidad del objeto.
2. Uso de diferentes formatos de datos.
3. Errores en la entrada de datos.
4. Inconsistencias en los datos.
Se le suele llamar “limpieza de datos” al tratamiento de estos problemas: a la corrección
de los “datos sucios” que atentan contra la confiabilidad de la información que se
recupera de las Bases de Datos. Sin embargo, no siempre es posible limpiar los datos,
sobre todo si la información es muy voluminosa. Este proceso suele ser imperfecto,
demorado o tedioso. El éxito se garantiza si logramos evitar los “datos sucios”
restringiendo el conjunto de valores posibles de un determinado datos en congruencia
con el objeto que se describe. Una de las formas comúnmente utilizadas de llevar esto a
la práctica es codificar.
Los codificadores
Según López en [5] los códigos intuitivamente indican el enmascaramiento de la
información a través de otras palabras que generalmente son más cortas y que se
corresponden unívocamente con la información que representan. El proceso a través del
cual se establece una relación de uno a uno entre conjuntos de palabras de dos
alfabetos se conoce como codificación.
La definición de Mestre [6] es la siguiente:
Operación mediante la que datos expresados en un determinado sistema convencional
de representación son convertidos en otro sistema diferente de representación, de tal
forma que es posible volverlos a expresar en su primitivo sistema de representación.
Gravilov en [2] da una definición algebraica de codificación:
Sean A y B dos alfabetos finitos y R algún conjunto de palabras finitas en el alfabeto A.
La aplicación unívoca j del conjunto R en algún conjunto de palabras en el alfabeto B se
llama codificación del conjunto R. A la imagen C del conjunto R para la aplicación j, se
le llama código del conjunto R. A las palabras de C, se les llama “palabra de código”.
El motivo fundamental que dio origen a los dos codificadores lo constituye el ahorro de
memoria en los ficheros de la Base de Datos y la homogeneidad de la información. El
primer punto es hoy una anacronía, residuo de los tiempos en que la memoria operativa
diseñada de ferrita y los dispositivos de almacenamiento permanente eran muy caros y
las CPU muy lentas. Los diseñadores tenían que utilizar códigos para todo con el
objetivo de reducir al máximo los volúmenes de almacenamiento y la información a
procesar. La justificación económica de utilizar códigos desapareció hace años, pero los
diseñadores continúan utilizando códigos.
Sin embargo hoy para los sistemas informáticos es más crítico el problema del
rendimiento temporal. El empleo de los codificadores implica que cuando se recuperan
los datos es necesario convertir el sistema de representación o alfabeto almacenado en
el alfabeto en lenguaje natural. Esto implica necesariamente un incremento significativo
en la complejidad temporal si se tiene en cuenta que generalmente se requieren varios y
costosos acoples entre la tabla que contiene los datos y los codificadores. Esto afecta
sensiblemente el desempeño general del sistema, y requiere un mayor esfuerzo de los
programadores para elaborar las consultas
Alternativa a los codificadores: la lista de valores.
Una alternativa al uso de los codificadores es el empleo de listas de valores en lenguaje
natural. Se almacena en la Base de Datos un conjunto de valores predeterminados, pero
que no tienen asociado un segundo alfabeto o sistema de representación.
Con esta variante se requieren acoples entre las tablas de codificadores que guardan las
descripciones en lenguaje natural y las tablas de datos donde se guardan los códigos.
Con esta alternativa las aplicaciones toman los datos de las listas de valores
almacenadas en la Base de Datos y las guardan directamente en la tabla de datos. Al
recuperar la información no se requiere del empleo de estas listas ni de acoples por lo
que se simplifica el algoritmo desde el punto de vista temporal, beneficiando el
rendimiento del sistema.
Este cambio no produce ninguna alguna afectación para los objetivos de los
codificadores relacionados con la limpieza de los datos. Facilita el procesamiento de la
información con respecto a la primera alternativa. No impide la clasificación de la
información e incluso permite su clasificación inequívoca. Permite que un dato o conjunto
de datos sea recuperado o localizado dentro de una agrupación lógica o física de
información. Esta variante solo tiene como inconveniente que no enmascara los datos,
pero hoy en día la codificación no es ampliamente utilizada con estas funciones. Los
Sistemas de Gestión de Bases de Datos tienen otras herramientas orientadas a lograr
mayor seguridad en el acceso a los datos.
Existe un beneficio añadido inmediato: los errores de entrada de datos se reducen
significativamente. El usuario ve rápidamente, en lenguaje natural, la información que
está introduciendo. Los dígitos no se trasladan a códigos y así no se recordarán
incorrectamente.
Las aplicaciones son mucho más comprensibles. La pantalla y los informes se
transforman de los arcaicos arreglos de códigos y números, en formatos legibles y
claros. El cambio en una aplicación del diseño orientado a código, al diseño orientado a
lenguaje natural tiene efectos de relajamiento psicológico sobre los usuarios quienes no
están sobrecargados con manuales de códigos que son un verdadero sacrificio para los
iniciantes.
Por supuesto, esta variante no es una “barita mágica”. Desarrollar una aplicación basada
en lenguaje natural, requiere emplear tiempo con los diseñadores y usuarios tomando
información del problema, comprendiendo las relaciones naturales, las categorías y
construir, mediante un cuidadoso estudio preliminar una base de datos y un esquema de
nombres que refleje, lo más detallada pero racionalmente posible, la realidad. Existen
tres pasos a los que hay que dedicar especial atención para conseguir una buena
aplicación del lenguaje natural: normalizar los datos, seleccionar los nombres de los
metadatos (nombres de tablas y columnas) y seleccionar los valores de las listas.
CONCLUSIONES
Permita que su pensamiento evolucione con el desarrollo de la tecnología. Oriéntese
hacia el usuario haciendo más cómoda y feliz su vida. Diga adiós a los codificadores.
BIBLIOGRAFÍA
Bellón Corvo, H. Codificación en Bases de Datos. GIGA (La Habana) Nro. 5/2002, 30 33, Septiembre - Octubre. 2002.
Gravilov. G. P., Zposzheko A. Problemas de Matemática Discreta. Editorial MIR. 1988.
Helena Galhardas, D. “Declarative Data Cleaning: Languaje Model and Algoritms”.
Noviembre /2001. p. 1
Loney, Kevin. George Koch: “Oracle 9i: The Complete Reference”. KcGraw-Hill/Osborne.
2003 . – 1214 p.
López Porrero, B. “La Codificación en los Sistemas de BD”. 1998.
Mestre Yenes, Pedro. “Diccionario de Gestión del Conocimiento”. Fundación DINEL,
Madrid, 2000.
Descargar