jueves, 20 de marzo de 2014

La Migración de datos. Exportación e Importación

Se denomina migración de datos, al proceso que tiene por objeto tanto la importación como la exportación de una determinada información almacenada en un sistema de bases de datos, para llevar a cabo su traspaso.

La migración de datos tiene su fundamento en la ampliación un sistema de gestión de base. En este contexto, se trata de exportar los datos a un nuevo sistema con mayor capacidad o más funciones adicionales. Estos cambios llevan consigo una adaptación de todos los datos de una base de datos a otra. Por tanto siempre que se producen cambios de un sistema de gestión a otro, se habla inevitablemente de los procesos de migración de datos.

Con bastante frecuencia, las operaciones de exportación de datos, requieren de un tratamiento especial, resultando muy costosas de llevar a cabo. Esto sucede cuando:
  • El formato de exportación de datos no coincide con el de importación de la nueva aplicación: Es muy típico encontrarse con una incompatibilidad de los formatos de salida y entrada entre dos aplicaciones, en algo tan básico como el formato. Por ejemplo, partiendo de un sistema que sólo sea capaz de exportar en formato ".wk1" e intentemos importar sus contenidos a una base de datos MySQL que sólo acepta la importación de archivos con formato y extensión ".sql", ".xml" o ".csv"
  • Otro problema muy común es la codificación del set de caracteres. Con frecuencia en muchos casos, se tratan de importar datos codificados con normas ISO 8859-1, cuando las tablas de la base de datos de destino esta configurada para formatos UTF-8 Unicode. Dicho de otra forma, es necesario que los datos tengan características de codificación para que puedan ser identificadas correctamente y evitar una transformación inadecuada de los caracteres especiales.
  • Cuando la extensión del formato de archivo está bien definida, pero no lo está la codificación interna del formato. Dicho de otra forma, la información contenida en el archivo de exportación, no está correctamente definida o delimitada. Esto provoca que el sistema de destino al que se pretende exportar todos los datos, no diferencie correctamente qué información corresponde a qué campo descriptivo o etiqueta.

La delimitación de los campos y de la información en un formato de exportación

La migración de datos, depende completamente de la manera en que representar la información. La delimitación de los datos y los campos de información son conceptos cruciales, de cara a facilitar la importación/exportación de un catálogo bibliográfico de un sistema de gestión de bibliotecas a otro, incluso para sistemas de gestión de archivos que utilicen otros modelos de descripción no basados inicialmente en el bibliográfico.

Los delimitadores como su propio nombre indica, son marcas que permiten identificar los segmentos de datos o contenidos de un determinado registro. Por tanto, cualquier formato de exportación de datos que esté debidamente delimitado, representa a la postre una tabla de una base de datos y en consecuencia todos sus campos. De esta forma se puede obtener una copia íntegra y exacta de la información original, quedando reproducida tanto en su forma y estructura como en su contenido.

Para lograr trasladar no sólo la estructura sino un contenido o información de origen, existen múltiples formas de representar y delimitar los datos, los campos que los contienen y en definitiva la estructura completa original. A menudo en los sistemas de automatización se desarrollan formatos propios, que plantean una codificación en la delimitación que reviste en algunos casos de gran complejidad. Esto se debe no sólo a cuestiones operativas, sino también comerciales y de protección de los sistemas de gestión que se desarrollan, evitando la operatividad de un centro bibliotecario, archivo, centro de documentación o museo, para poder transformar y manipular la información que originalmente creo y alimento en el sistema. Esta situación que puede llegar a ser paradójica, es real y limita sobremanera las operaciones de estudio estadístico de la colección bibliográfica y su circulación, de la gestión archivística y la tramitación de los expedientes y sus seguimientos, etc. Otros problemas que puede causar un formato de exportación no normalizado o convenido para su compatibilidad con otras herramientas de tratamiento de la información, es la limitación en el desarrollo de catálogos y publicaciones de referencia que tradicionalmente el documentalista y el archivero llevan a cabo con meridiana frecuencia; entre otros muchos motivos.

Conocida la problemática y la importancia de confeccionar formatos de migración o exportación de datos bien diseñados, se debe explicar como edificarlos convenientemente atendiendo a su casuística y diagnóstico general. Según se muestra en el gráfico de delimitación de campos e información, es obligado establecer minimamente dos delimitadores que correspondan al inicio y al final de un dato o un campo. De esta forma, cualquier PARSER o analizador de datos, es capaz de seguir un patrón sencillo de la codificación que se ha establecido para el formato de exportación correspondiente. A su vez es necesario establecer un delimitador que diferencia el inicio y el final de cada registro. Téngase en cuenta que un registro puede tener múltiples campos y múltiples datos, por lo que si se desean representar todos los datos de un registro bibliográfico o las descripciones de un expediente administrativo, se requiere obligatoriamente diferenciar la separación entre los diferentes asientos de la tabla.

Todos los separadores responden al esquema presentado, por lo que se observará siempre que la delimitación de datos y campos de un registro y a la postre de una tabla, mantienen un concepto de anidamiento singular.


A su vez, los delimitadores se conforman mediante caracteres ASCII, términos a modo de etiquetas previamente establecidas, códigos que definen un campo (como en el caso de las etiquetas MARC), códigos alfanuméricos, mezcla de códigos y caracteres especiales ASCII, o combinaciones entre todos estos elementos. Dicho de otra forma, cualquier palabra o término inventado, puede ser un delimitador válido, siempre y cuando se emplee conforme a unas normas de descripción para un campo de una tabla. Lo lógico es que en muchos casos los delimitadores sean los nombres de los campos de la tabla, de forma que se pueda identificar rápidamente la estructura original de la misma y encapsular la información.

Pero no siempre los formatos de exportación de información bibliográfica responden a estos esquemas que la lógica impone. Es el caso del formato ISO2709 ya que emplea delimitadores iniciales diferentes a los delimitadores finales. Por tanto en dicho caso si bien se cumple lo propuesto en el presente esquema, también es verdad, que está pensado para que la delimitación sea analizada de forma recursiva en función a las etiquetas que el PARSER tenga definidas como variables permitidas. Dicho de otra forma, el analizador de datos, define que el contenido de datos que encuentre en el espacio correspondiente entre la primera etiqueta de campo y la siguiente, corresponde a un dato de la primera etiqueta y así sucesivamente. Véase el siguiente esquema sobre delimitación de campos y datos en ISO2709-Unimarc.


A este modelo especial, hay que añadir el modelo de delimitación por anidamiento nodal, delimitación por caracteres especiales y código inicial y caracteres especiales finales. En todos los casos es posible de igual forma establecer la distinción de los diferentes datos y sus correspondientes campos.


Pasos para llevar a cabo una Migración de datos
  • Limpieza de las tablas de la Base de Datos.
  • Consolidación de las tablas de la Base de Datos.
  • Mapeado de las tablas de Origen y Destino.
  • Definición de Formato de Origen y Destino.
  • Ruta de Saltos de Formato en la Migración.
  • Definición del Set de Caracteres de Origen y Destino.
  • Comprobación de los delimitadores de campos.
  • Migración de Prueba.
  • Evaluación y Comprobación de Errores.
  • Depuración Final.

Formatos de Migración más Comunes

  • Formato .CSV:

    • CSV son las siglas de Comma-separated values, y se considera uno de los formatos de exportación más sencillos que se hayan diseñado nunca. CSV permite representar todos los datos en forma de tabla, de forma que se adapta por completo a toda la casuística de tipologías de bases de datos y especificaciones de cada campo, con independencia de su naturaleza, ya sea numérico, fecha, texto, etc.

    • Se caracteriza por utilizar unos caracteres separadores para diferenciar las columnas de la tabla. Dichos separadores son siempre las comas ",". De esta forma el salto de línea representa una fila de datos nueva, diferente a la anterior. Otra de las reglas de construcción de un archivo CSV es la disposición de comillas dobles para separar columnas, siempre que en el valor textual de cada campo se incluyan comas "," como parte del contenido.

    • El formato CSV no requiere de un set de caracteres concretos, por lo que tiene una gran interoperabilidad en diferentes aplicaciones.

    • De cara a la importación y exportación de catálogos bibliográficos es muy adecuado, siempre que se definan correctamente las etiquetas catalográficas de cada columna de forma adecuada y se generen todos los campos necesarios. Por lo que requiere de una exhaustividad descriptiva importante para reflejar todos los campos que el estándar ISO2709 establece.

    • Referencias sobre CSV

  • Formato .TAB:

    • El fichero TAB, toma su nombre de Tabulación. Al igual que CSV es un formato de texto, pero difiere en la forma de delimitar los campos de datos, ya que utiliza las tabulaciones o espacios para separar cada columna de datos. Por otro lado al igual que CSV, cada salto de línea corresponde a una fila o registro nuevo de la tabla que se trata de exportar. Estas características hacen que .TAB no sea un formato adecuado de exportación al menos en lo que al catálogo se refiere, ya que se generan excesivos caracteres en blanco para poder hacer coincidir en cada columna la información correspondiente a un campo.

    • De hecho es un formato de exportación utilizado fundamentalmente para pequeñas migraciones de datos y para tablas de menores dimensiones que no revistan de una complejidad o extensión excesivas. En esos casos y en aquellos en los que los valores de cada campo no son excesivamente largos, el formato .TAB sigue utilizándose frecuentemente, aunque en claro detrimento en favor de CSV.

  • Formato .XML:

    • XML es uno de los mejores formatos para la exportación de la información de un catálogo bibliográfico. Destaca fundamentalmente por ser completamente adaptable a cualquier esquema de datos por complejo que pueda resultar. Esto se consigue gracias a que es un lenguaje de marcas extensible que depende de un Schema o Document Type Description para su verificación. De esta forma se puede definir por completo las características de cada uno de los campos de descripción de un catálogo automatizado según las normas o reglas de catalogación establecidas. Un ejemplo de ello es el formato MARC XML que trata de implantar la Library of Congress, que permite adaptar sus registros a una serie de items que reflejan todas las etiquetas, campos numéricos y subcampos correspondientes para la descripción bibliográfica. De esta forma se logra representar todo el etiquetado MARC y toda la casuística que conlleva atendiendo a una sintaxis y normas definidas.

    • Por tanto XML, al establecer etiquetas de inicio y cierre de los contenidos, permite def¡nir de forma muy sencilla el nombre de los campos, sus atributos y valores. A diferencia de CSV que obligaba a introducir todos los datos de un registro en una sola línea, XML permite el anidamiento de los registros favoreciendo la separación de cuantos asientos bibliográficos o registros sean necesarios, sin límites físicos en los archivos. Por este motivo, resulta más fiable porque reduce errores y pérdidas de información en las migraciones que se efectuen.

  • Formato ISO 2709 Unimarc:

    • Se considera un formato de exportación fundamental, necesario en cualquier sistema de gestión de bibliotecas. De hecho su norma internacional lo titula como "Format for Bibliographic Information Interchange" Formato para el Intercambio de Información Bibliográfica. Fue diseñado a partir de la década de los 60 y desde entonces ha sufrido múltiples revisiones, hasta llegar a la actual ISO 2709:1996.

    • Cada registro en formato ISO2709 se caracteriza por tener cuatro apartados principales, a saber:

      • Rótulo de la Etiqueta: Son los primeros 24 caracteres del registro. Siendo la única porción del formato que se traslada formateada en su extensión original. Además incluye la extensión y dirección base de los datos contenidos en el registro.

      • Directorio: El segmento de directorio, permite establecer las posiciones de entrada en el registro, mediante las etiquetas de campo. A su vez, cada entrada de directorio tiene cuatro subcampos que no pueden exceder de una extensión de 9 caracteres.

          • Etiqueta de Campo.
          • Extensión del Campo.
          • Caracter de Inicio del Campo.
          • Definición de Parte.

      • Campos de Datos: Son los elementos contenedores de toda la información bibliográfica.

      • Separador de Registro: Un caracter sencillo de separación para cada registro.
    • En relación a los campos del formato ISO2709, existen tres tipos fundamentales:

      • Identificador de Campo en el Registro: Es el campo que identifican el registro, siendo asignado por el centro o institución catalogadora que ha elaborado la catalogación del documento. Se identifica por la etiqueta 001.

      • Campos Reservados: Contiene información que puede ser necesitada para el procesamiento de la información bibliográfica recogida en campos especializados. Se identifican por estar representados mediante etiquetas que varían desde 002-009 y 00A-ZZZ.

      • Campos Bibliográficos: Son campos específicos para la descripción de los documentos y que constan de rangos 010-999 y 0AA-ZZZ. Los campos de descripción bibliográfica tienen separadores especificos, determinados a su vez por la norma ISO 646, es decir por la American Standard Code for Information Interchage o ASCII. Además cada campo, puede disponer a su vez de subcampos que corresponden o equivalen a las marcas de los dólares en formatos MARC, que están limitados a un espectro comprendido entre 0 y 9.
    • Todas estas características de la codificación de un registro bibliográfico en ISO2709, responden de forma directa a las convenciones establecidas en lo que se viene denominando como formato UNIMARC. Dicho de otra forma, con la norma ISO, se obtiene un registro bibliográfico que cumple con todas las especificaciones del estándar de descripción bibliográfica uniforme y convenido internacionalmente, es decir, UNIMARC. Esto se debe a que la estructura de datos utilizada es una implementación de las ISO2709. En definitiva y a efectos prácticos, codificar en UNIMARC es lo mismo que codificar en ISO2709. Véanse los siguientes ejemplos:

Registro ISO2709 Raw o Crudo



El mismo Registro ISO2709 formateado al estándar UNIMARC



Set de Caracteres más Comunes
  • Anteriormente se ha citado brevemente la disposición del ISO 8859-1 que es el set de caracteres para definir el alfabeto latino que incluye a su vez los símbolos diacríticos más utilizados en castellano y portugués es decir "ñ" y "ç" entre otros, y que corresponden a los primeros 256 caracteres del estándar Unicode. Dicho esto, si bien ISO 8859-1 tendría que ser compatible con el set UTF-8 Unicode, (por forma parte de la norma Unicode), la tendencia actual es la transformación del primero en éste último. Esto se debe a una serie de características que hacen especial al set de caracteres UTF-8 Unicode que son las siguientes:

  • ISO 8859-1
    • Es la norma de codificación especializada en caracteres latinos de primer bloque que comprende los primeros 256 caracteres del set ISO 10646, del que derivó posteriormente en el set de codificación de caracteres UTF-8.
    • Esta norma no es universal, puesto que sólo representa los caracteres de los principales idiomas europeos.
    • La capacidad de codificación de ISO 8859-1 es de 8 bits al igual que UTF-8, pero con la desventaja de que los caracteres codificados en cualquiera de los casos ocupan más de 4bytes. Esto hace que la carga de un documento codificado con ISO 8859, sea más lenta.
    • Es muy corriente encontrar archivos HTML, definidos con este set de caracteres, por lo que HTML como formato de exportación tendrá que ser verificado en este punto para ser convertido si fuera necesario.
    • Véase Norma ISO 8859-1

  • UTF-8 Unicode
    • Es capaz de codificar cualquier caracter, puesto que esta diseñado para codificar con 8 bits de longitud de variable. De aquí que se considere el set de caracteres universal. (No obstante también se están empleando sets de hasta 32 bits que benefician principalmente a la codificación de caracteres de tipo ideográfico o visual, como caracteres chinos, japoneses o árabes)
    • No comprime la codificación de los caracteres, por lo que las notaciones textuales son completas.
    • Pese a las carencias de compresión de caracteres, los caracteres latinos propios de la ISO 8859-1 son codificados con extensiones entre 1 y 4 bytes. Esto supone una reducción de la memoria necesaria para ser cargados.
    • UTF-8 es el set de caracteres predeterminado para XML. Por tanto los archivos exportados en dicho formato, se deben codificar, tanto de salida como de entrada con UTF-8 Unicode.
    • Véase Norma UTF-8.

Referencias de ISO 2709

Referencias sobre migración de datos

1 comentario:

Unknown dijo...

Bien a decir verdad es un tema nuevo para mi y esto salvo mi entrega de tarea :)