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 description

Descripció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 orden

Definició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

Captura de pantallas

Para lo que gustan comprobar la belleza de Linux, aca van unas capturas.



Free Image Hosting at www.ImageShack.usFree Image Hosting at www.ImageShack.usFree Image Hosting at www.ImageShack.usFree Image Hosting at www.ImageShack.usFree Image Hosting at www.ImageShack.usFree Image Hosting at www.ImageShack.usFree Image Hosting at www.ImageShack.usFree Image Hosting at www.ImageShack.usFree Image Hosting at www.ImageShack.usFree Image Hosting at www.ImageShack.us

 

No hay comentarios: