di

Resumen

En esta actividad se realizará una migración completa desde Microsoft Access a MySQL. Además, se llevará a cabo la ampliación del esquema de la base de datos para incorporar nuevas funcionalidades, como la gestión de reseñas y valoraciones de libros, reservas de libros y sanciones a usuarios. Esta actividad no solo reforzará las habilidades técnicas en el uso de MySQL Workbench, sino que también permitirá desarrollar competencias en la resolución de problemas y en la adaptación de esquemas de bases de datos a nuevos requerimientos. Al finalizar, se habrá adquirido una experiencia valiosa en la migración y ampliación de bases de datos, ofreciendo una preparación para enfrentar desafíos similares en el futuro.

Objetivos
  • Migrar una base de datos de Microsoft Access a MySQL utilizando MySQL Workbench.

  • Corregir posibles errores de migración relacionados con discrepancias entre la base de datos de origen y la de destino.

  • Realizar ingeniería inversa para crear el modelo correspondiente en MySQL Workbench de la base de datos migrada .

  • Sincronizar modelos y bases de datos en MySQL Workbench.

  • Verificar que los procesos de migración y sincronización se han realizado correctamente.

  • Ampliar esquemas de bases de datos para incorporar nuevas funcionalidades.

1. Descripción del problema

Se desea realizar la migración a MySQL de la base de datos de gestión de Microsoft Access de libros y préstamos en una biblioteca realizada en una actividad anterior. Una vez que se migre la base de datos, se desea ampliar el esquema de la base de datos para dar soporte a nuevas funcionalidades. En concreto, se desea incorporar la posibilidad de añadir reseñas de los libros y valoraciones de los usuarios. Asimismo, se desea incorporar la posibilidad de que los usuarios puedan realizar reservas de libros. Por último, se desea incorporar la posibilidad de que los usuarios puedan ser sancionados si no devuelven los libros en el plazo establecido. A continuación se detallan los nuevos requerimientos de la base de datos:

  • Cada reseña realizada por un usuario de un libro debe tener un texto de opinión y una valoración (de 1 a 5 estrellas). Las reseñas se realizan sobre los libros, no sobre los ejemplares.

  • Cada usuario puede realizar una única reseña de un libro.

  • Cada usuario puede reservar libros. Cada usuario sólo puede tener una reserva del mismo libro. De cada reserva se debe almacenar la fecha de realización de la reserva. Las reservas van solicitadas a los libros, no a los ejemplares.

  • Si un usuario no devuelve un ejemplar en el plazo establecido, recibirá una sanción. De cada sanción se debe almacenar un identificador de sanción, que es único en toda la base de datos, la fecha de inicio de la sanción, la fecha de fin de la sanción y el ejemplar al que corresponde la sanción. Además, la fecha de la sanción será copiada al usuario en caso de recibir una sanción, que ahora incluirá un nuevo campo con la fecha de fin de la sanción.

2. Tareas a realizar

  1. Realizar la migración de la base de datos de Microsoft Access a MySQL. Para ello, se debe utilizar MySQL Workbench. Se debe entregar un documento en formato PDF con la captura de pantalla de la finalización del proceso de la migración de la base de datos migrada a MySQL. Durante el proceso de migración puede que se produzcan errores (p.e. en los tipos de datos). En ese caso, se deben corregir los errores y aplicar los cambios para poder continuar con la migración.

    Para corregir los posibles errores debido a las discrepancias entre los tipos de datos manejados en la base de origen y en la de destino, seguir los siguientes pasos:

    1. Seleccionar el error indicado en el cuadro de objetos a migrar (cada uno corresponde a un script de migración del objeto correspondiente).

    2. Ver la salida del error en la parte inferior, que muestra el mensaje de error. En la figura siguiente se muestra un ejemplo en que la precisión del tipo de datos fecha original es de 19 cuando en MySQL es de 6.

      errorMigracion
    3. Editar el código SQL que se muestra en parte superior derecha para corregir el error (p.e. cambiar la precisión de la fecha de 19 a 6).

    4. Hacer clic en el botón Apply para aplicar los cambios.

    5. Volver a intentar la migración pulsando sobre el botón Recreate Objects.

    6. Aparcerá un cuadro de diálogo que indica que existe la posibilidad de eliminar el esquema existente en MySQL. Continuar adelante, ya que se va a crear un nuevo esquema.

  2. Hacer ingeniería inversa de la base de datos migrada para generar el modelo correspondiente en MySQL Workbench. Hacer los cambios necesarios para que el modelo incluya todas las relaciones y restricciones que deben tener en el problema original de la bibilioteca, ya que es posible que el proceso de ingeniería inversa no haya sido perfecto. Se debe entregar un documento en formato PDF con la captura de pantalla de las tablas resultantes de la migración mostrando las relaciones de clave ajena correctamente establecidas.

  3. Realizar la sincronización con el servidor MySQL y capturar la pantalla en el paso en el que se muestran las diferencias entre el modelo y la base de datos y cómo se va a realizar la sincronización. Se debe entrega en formato PDF.

    Véase como antes de materializar la sincronización, se muestra el código SQL que se va a ejecutar en el servidor MySQL para llevar a cabo la sincronización. Se debe revisar el código SQL antes de ejecutarlo para asegurarse de que se va a realizar la sincronización correctamente. Si todo ha ido bien, se observarán instrucciones de ALTER TABLE para añadir las claves ajenas que faltan en la base de datos.

  4. Comprobar que la sincronización se ha realizado correctamente y que las propiedades de clave ajena están correctamente establecidas. Se debe entregar un documento en formato PDF mostrando las claves ajenas de alguna de las tablas sincronizadas.

  5. Realizar los cambios necesarios en el modelo para incorporar las nuevas funcionalidades de reseñas, valoraciones, reservas y sanciones. Trasladar los cambios a la base de datos. Se debe entregar el archivo de MySQL Workbench con el nuevo esquema de la base de datos.

3. Entrega de la práctica

La práctica se entregará en un archivo ZIP con el siguiente esquema de nombre <apellido1><apellido2><nombre>_biblioteca_workbench.zip. El archivo ZIP contendrá los siguientes archivos:

  1. Un documento en formato PDF con la captura de pantalla de la finalización del proceso de la migración de la base de datos migrada a MySQL en MySQL Workbench. Capturar el paso Migration report del proceso de migración.

  2. El archivo de MySQL Workbench con el esquema de la base de datos tras importarlo de MySQL y con las claves ajenas corregidas.

  3. Un documento en formato PDF con el informe de la sincronización con el servidor MySQL. Capturar el paso en el que se muestran las diferencias entre el modelo y la base de datos y cómo se va a realizar la sincronización.

  4. Un documento en formato PDF con el resultado de la sincronización del nuevo esquema de la base de datos con el servidor MySQL mostrando las claves ajenas de alguna de las tablas sincronizadas (p.e. la tabla de préstamos).

  5. Un documento en formato PDF con la captura de pantalla del modelo ampliado con las nuevas funcionalidades de reseñas, valoraciones, reservas y sanciones.

  6. Un documento en formato PDF con la captura de pantalla de todas las tablas en MySQL tras la sincronización con los cambios realizados para incorporar las nuevas funcionalidades.

  7. El archivo de MySQL Workbench con el nuevo esquema de la base de datos.