lunes, 11 de agosto de 2008

Como Migrar un Sistema de Biblioteca y Base de datos propietaria a OpenBiblio con MySql

Como Migrar un Sistema de Biblioteca y Base de datos propietaria a OpenBiblio con MySql

Hector Jaskolowski, hector@jaskolowski.com.ar

Setiembre de 2006



Este documento proporciona información básica sobre el procedimiento de migrar un sistema de gestión de biblioteca para DOS y base de datos propietaria al sistema GNU OpenBiblio con Mysql en servidor Linux.


1. Introduccion

2. Realización

4. Estructura de la Tabla Biblio

5. Preparar la base de datos

6. Cambios entre versiones

7. Por Hacerse

8. Capturas de Pantalla

9. Este documento

Introduccion

Brevemente diré que OpenBiblio es una aplicación liberada bajo licencia GNU para la gestión integral de bibliotecas a través de una interfase Web. Cuenta con un catálogo en línea de los registros bibliográficos en el cual se pueden realizar búsquedas por autor, título o tema.
Es compatible con MARC21, lo que implica que se puede catalogar todo lo que esta multinorma para bibliotecas contempla, además de importar y exportar datos en este formato.

El trabajo realizado es la migración de 7800 volúmenes (libros, revistas, mapas. CDs/DVDs y Equipos) registrados en el sistema propietario Clarion database a Mysql para ser administrado con openbiblio
> >
Realización
1) bajar a /tmp/ openbiblio de: http://sourceforge.net/project/showfiles.php?group_id=50071&package_id=43535&release_id=395308

2) bajar el idioma español de: http://www.winpyme.net/openbiblio_es-dacevedo.zip

3) descomprimir el source de openbiblio
#cd /usr/local
#tar xvjpf /tmp/openbiblio-0.5.2-pre4-en-only.tar.bz2

4)Leer la referencia de instalación /usr/local/openbiblio/install_instructions.html

5) los pasos a continuación son lo que indica esa página

6) consideramos que apache y mysql están instalados y funcionando.

7) Crear el archivo /etc/httpd/conf.d/biblio.conf con el siguiente contenido:
Alias /biblioteca "/usr/local/openbiblio/"

<Directory "/usr/local/openbiblio">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
reiniciar apache, y a partir de este momento openbiblio esta visible en http://midominio.edu/biblioteca

6)creamos la base de datos en MySql. Para estos temas yo acostumbro a ingresar como usuario root y trabajar libremente. ejecutamos:
#mysql -p
y luego de tipear la clave root de MySql ingresamos lo siguiente para crear la base:
mysql> create database biblioteca;

Ahora damos permisos sobre la base al usuario webmaster (o el usuario que configuremos para administrar la misma)
mysql> grant all privileges on biblioteca.* to webmaster_user@localhost identified by 'webmaster_password';
Salimos de MySql
mysql> quit


7)Editamos los parámetros de esta base que creamos para que funcione con openbiblio:
#vi /usr/openbiblio/database_constants.php
aqui ingresamos la base de datos, usuario, password, y el servidor que usualmente es localhost.

8)ya esta listo el sistema para empezar a configurarlo. Para el setup de la base de datos ingresamos la siguiente dirección en el navegador Web http://localhost/espabiblio/install/index.php, las tablas de la base de datos se crearán automáticamente. ( si ocurre algún error habrá que revisar que existan los privilegios necesarios) .
Indicar también que se ingresen los datos de muestra que tiene openbiblio.

9)ya podemos usar nuestro sistema openbiblio. Para ello ingresamos http://midominio.edu/biblioteca en el navegador. Fijarse que a pié de página figura el OPAC (Online Public Access Catalog) ingresamos para buscar "unix" y openbiblio nos mostrará uno de los registros de la muestra que cargamos en el paso anterior.

10)descomprimimos el archivo de idioma y copiamos el directorio "es" que contiene el mismo en /usr/local/openbiblio/locale/ Y con esto ya damos por terminada nuestra sesión root en el servidor.

11) Elegir la pestaña "Admin" en la página principal de openbiblio. El usuario y password es "admin" y puede ser modificado a gusto. Aqui las opciones son bastante intuitivas respecto a lo que podemos modificar. Elegir como primera opción el lenguaje "Español" y pinchar "submit" puede ayudar a entender, si el ingles no es el segundo idioma que domina.
A partir de esta acción, openbiblio ha quedado en un 90% traducido al español. Resta por traducir los campos USMARC lo cual explicaré a continuación.

12)ejecutamos en el servidor:
#mysqldump -uUser -pPasswd -hServidor biblioteca >biblioteca.sql

Este archivo contiene todos los datos para crear la base de datos y restaurar los registros.
Editamos con una aplicación que nos permita buscar y reemplazar. Yo uso el "mc".
A continuación listo los cambios que yo realicé. (quien lo desee puede traducir la base de datos completa de etiquetas MARC21)
Inglés
Español
Title "Título:"
Remainder of title "ampliación de Título:"
Statement of responsibility, etc. Apellido de Responsable, Autor, etc.:
Personal name Nombre de Responsable, Autor:
Topical term or geographic name as entry element Tema:
Edition statement Idioma de Edición:
LC control number Ubicación Física:
International Standard Book Number ISBN:
Library of congress call number  Nro de la Biblioteca Del Congreso
Classification number Número de Clasificación
Item number Número de ítem
Dewey decimal classification number Clasificación Dewey
Edition number Número de Edición
Place of publication, distribution, etc. Ciudad de Edición, Publicación, etc
Name of publisher, distributor, etc. Nombre del Editor, Distribuidor, etc
Date of publication, distribution, etc. Fecha de Publicación, distribución, etc.
Summary, etc. note Sumario, Notas, etc
Physical descriptionDescripción Física
Extent grado
Other physical details Otros Detalles
Dimensions dimensiones
Accompanying material Material Complementario
Terms of availability Disponibilidad
Purchase price Precio de Compra


Aclaro estos cambios por la sencilla razón que no soy traductor y por tanto otros pueden considerar que la traducción debe ser otra y para que tengan una idea de cómo era en el idioma original.

13) Ahora lo que tiene que ver con la estructura de la base de datos:
Vale el comentario: la antigua base de datos es de la primera versión de clarion (v 2.0) En mi caso esto simplificó las cosas puesto que el mismo RAD de clarion permite exportar hacia los formatos más conocidos (de aquél entonces) de bases de datos. Para recordar viejos tiempos, opté por exportarlo a DBase 4.
Luego la operación es más que sencilla:
A) abrimos el archivo de nuestra base de datos en OpenOffice Calc
B) Acomodamos la estructura de nuestra base a la de OpenBiblio
C)Agregamos en la primera columna la instrucción MySql
D) retocamos el documento para que tenga la correcta sintaxis para Mysql
E) Exportamos nuestra base en formato csv (CommaSeparatedValue)
F) importamos en Mysql esta nueva base de datos

14) La estructura de la base de datos es la siguiente:
Estructura de la Tabla principal de OpenBiblio:
Nº de ordenDefinición del campo
1 no lo se
2 tipo
3 colección
4, 5 y 6 Nº de entrada en la biblioteca
7 Titulo
8 Extensión del titulo
9 Apellido del Autor, responsable
10 Nombre del Autor, responsable
11, 12, 13, 14 y 15 Tópicos del Libro
16 Edición
17 Ubicación local
18 ISBN
19 y 20 Nº de Biblioteca del Congreso
21 y 22 Nº de índice Dewey
23 Ciudad
24 Editorial
25 Fecha Edición
26 Notas, sumario
27, 28 y 29 descripción Física
30 Material Complementario que acompaña
31 Disponibilidad
32 Precio de compra

Del campo 01 al campo 15 corresponden a la tabla biblio y del campo 16 al campo 32 corresponden a la tabla biblio_field
Lo más sencillo de diseñar es el contenido para ingresar a la tabla biblio. Me queda por hacer el contenido de la tabla biblio_field más compleja debido a que toma un numero único de cada campo de biblio y genera los 17 campos restantes de cada registro.
Preparar el archivo de Base de datos
Para ello diseñamos una estructura de 20 campos
1
2
3
4
5
6
7
INSERT INTO biblio VALUES (1 '2006-08-17 10:22:14' '2006-08-17 10:22:14'
1
2
3

8
9
10
11
12
13
14
'entrada 1' 'entrada 2' 'entrada 3' 'Titulo' 'titulo extra' 'Responsable' 'nombre'

15
16
17
18
19
20
'topico 1' 'topico 2' ;'topico 3' 'topico 4' 'topico 5' 'Y');

Es decir que por cada registro de nuestra base tendremos una linea parecida a esto:
INSERT INTO biblio VALUES (2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,'Y');
El primer campo luego de la sentencia MySql corresponde al ID del registro por lo que debemos incrementarlo en serie hasta completar todos los registros de nuestra base de datos, y es el que se tomará como referencia para generar el contenido de biblio_field más tarde.
Finalmente guardamos nuestra planilla (por Ej.) biblio_in.sql
en la consola de nuestro servidor, como root, ejecutamos
#mysql -p biblioteca < biblio_in.sql

Es posible que si alguna linea no quedo bien, obtengamos errores MySql. Hay que revisar la linea que el error indica como equivocado.
A partir e este momento el sistema de gestión de biblioteca quedó con nuestra base de datos que puede ser administrada desde el explorador de Internet, o visualizado el catalogo opac de la misma manera
Cambios entre Versiones de OpenBiblio
me sucedió que varias etiquetas en distintas pantallas no tenian traducción. Creo que es por cambios entre la versión 0.4.0 y 0.5.2. A la primera corresponde la traducción al español y la segunda es la versión que yo instalé.
Los ajustes que realicé son los siguientes:
en el archivo shared.php
en la seccion de biblio_view.php agregar lo siguiente:
$trans["biblioViewTble2Coledit"]   = "\$text = 'Editar';";
$trans["biblioViewTble2Coldel"]   = "\$text = 'Borrar';";
En el archivo circulation.php
en la sección de mbr_view.php agregar lo siguiente:
$trans["mbrViewStatColHdr4"]      = "\$text='devolución';";
$trans["mbrViewStatColHdr5"]      = "\$text='Renueva';";

Por Hacer
Quedaron varias cosas pendientes de realización. Las que tengo presente al momento de redactar este documento son:
ampliar la documentación en español a un manual de usuario para simplificar la migración a los bibliotecarios.
Puede haber otras correcciones que realizar en la traducción pero aún no probé todo el sistema.
Traducir la nomenclatura MARC21 completa al español
En mi caso particular, estudiar la forma de migrar las otras bases de datos relacionadas: prestamos, usuarios, etc
Licencia Creative Commons
Esta obra está bajo una Licencia Creative Commons Atribución-CompartirIgual 2.5 Argentina.

No hay comentarios: