Como Migrar un Sistema de Biblioteca y Base de datos propietaria a OpenBiblio con MySql
Hector Jaskolowski, hector@jaskolowski.com.ar
Setiembre de 2006
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> |
6)creamos la base de datos en MySql. Para estos temas yo acostumbro a ingresar como usuario root y trabajar libremente. ejecutamos:
#mysql -p |
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'; |
mysql> quit |
7)Editamos los parámetros de esta base que creamos para que funcione con openbiblio:
#vi /usr/openbiblio/database_constants.php |
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
Esta obra está bajo una Licencia Creative Commons Atribución-CompartirIgual 2.5 Argentina.
No hay comentarios:
Publicar un comentario