• No se han encontrado resultados

Base de Datos

3. Desarrollo

3.4. Base de Datos

La base de datos utilizada para soportar el módulo es una base datos relacional MySQL. Esta base de datos contiene toda la información sobre los usuarios, las actividades y los profesores, necesaria para el funcionamiento del módulo. En la Figura 47 se puede ver el diagrama entidad-relación de la misma.

Figura 47 - Diagrama ER de la Base de Datos

3.4.1. TABLA DE USUARIOS (USER)

Ésta es una de las tablas principales de la base de datos. En ella se guarda toda la información de los alumnos que se han registrado en la plataforma. Los datos imprescindibles que se guarda de cada alumno son los siguientes:

x Número de matrícula (enrollment_number), que además sirve para identificar inequívocamente a cada alumno.

x Número de identificación personal (PIdN), que puede ser el DNI, NIE o pasaporte.

x Nombre (name) x Apellidos (surname) x Grado (degree)

x Grupo de prácticas (Team_ID) x Grupo de clase (class_group) x Nombre de usuario (nickname)

x Dirección de correo electrónico (email) x Puntos (points)

x Nivel (level)

x Contraseña (password), que se guarda cifrada.

Al ser una de las tablas principales, la tabla de usuarios se relaciona con una serie de tablas de la siguiente forma:

x Tabla de grados (Degree), relación 1 a N que indica en qué grado está matriculado un alumno.

x Tabla de títulos (Status), relación 1 a N que indica qué título posee un alumno. x Tabla de insignias (Badge), relación N a N que indica qué insignias posee un

alumno. La tabla User_has_Badge actúa de tabla intermedia en la relación. x Taba de eventos (Event), relación 1 a N que sirve para relacionar a un alumno con

su actividad en la plataforma, en otras palabras, con el histórico de acción que ha realizado el alumno dentro de la plataforma.

x Tabla de actividades realizadas (User_Activity), relación 1 a N que sirve para indicar las actividades realizadas por un alumno. Se puede considerar que la tabla User_Activity actúa como tabla intermedia en la relación N a N entre alumnos y actividades.

3.4.2. TABLA DE GRADOS (DEGREE)

La función de esta tabla es guardar la información de los grados de la Escuela en la que los alumnos pueden estar matriculados. Esta tabla guarda un código para el grado que sirve para identificarlo inequívocamente y la traducción del código. Por ejemplo, el Grado en Ingeniería Informática podría tener como código GII.

Esta tabla tiene una relación 1 a N con la tabla de usuarios que sirve para indicar en qué grado está matriculado cada alumno.

3.4.3. TABLA DE TÍTULO (STATUS)

La función de esta tabla es guardar la información de los títulos que pueden obtener los alumnos registrados. Esta tabla guarda un código numérico para el título que sirve para identificarlo inequívocamente, el nombre y una descripción. Un ejemplo de título que podría obtener un alumno sería “Principiante”.

Esta tabla tiene una relación 1 a N con la tabla de usuarios que sirve para indicar qué título posee cada alumno.

En la versión actual del módulo está funcionalidad no está implementada, pero su desarrollo está planeado para futuras iteraciones.

3.4.4. TABLA DE INSIGNIAS (BADGE)

La función de esta tabla es guardar la información de las insignias que pueden obtener los alumnos registrados. Esta tabla guarda un código numérico para la insignia que sirve para identificarla inequívocamente, el nombre, una descripción y un icono. Un ejemplo de insignia que podría obtener un alumno sería “Medalla de Bronce en Análisis Léxico” cuando complete 25 actividades del tema de análisis léxico.

Esta tabla tiene una relación N a N con la tabla de usuarios que sirve para indicar qué insignias tienen los alumnos. La tabla User_has_Badge hace la función de tabla intermedia, relacionando cada alumno con cada insignia que posee.

En la versión actual del módulo está funcionalidad no está implementada, pero su desarrollo está planeado para futuras iteraciones.

3.4.5. TABLA DE EVENTOS (EVENT)

La función de esta tabla es guardar la información de las acciones que realizan los alumnos registrados dentro de la plataforma. Esta tabla guarda un código numérico para el evento que sirve para identificarla inequívocamente, el identificador del alumno con el que se relaciona el evento, el tipo del evento, la dirección URL donde ocurrió el evento y la fecha. Un ejemplo de evento sería el acceso del alumno a la plataforma.

Esta tabla tiene una relación 1 a N con la tabla de usuarios que sirve para indicar qué eventos se relacionan con cada usuario.

3.4.6. TABLA DE ACTIVIDADES REALIZADAS

(USER_ACTIVITY)

La función de esta tabla es guardar la información de las actividades realizadas por los alumnos registrados. Esta tabla guarda el identificador de la actividad, el identificador del alumno, la fecha en que se realizó, si la actividad está concluida, la nota que se obtuvo, los puntos que se obtuvieron, el tiempo tardado en realizar la actividad y la respuesta dada. Esta tabla tiene una relación 1 a N con la tabla de usuarios y una relación 1 a N con la tabla de actividades. Estas relaciones sirven para indicar qué actividad ha sido realizada por qué alumno. Se puede decir que esta tabla actúa de tabla intermedia en la relación N a N entre alumnos y actividades.

3.4.7. TABLA DE ACTIVIDADES (ACTIVITY)

Ésta es otra de las tablas principales de la base de datos. En ella se guarda toda la información general de cada actividad disponible en la plataforma. Además, esta tabla se ha diseñado de forma que sirva de abstracción al concepto de actividad para facilitar la adición de nuevos tipos de actividades a la plataforma en un futuro. En otras palabras, esta tabla representa la información común a todas las actividades, y para añadir nuevos tipos de actividades simplemente hay que relacionarla con la tabla del tipo de actividad específico.

Los datos que se guarda de cada actividad son los siguientes:

x Identificador (id), código numérico que sirve para identificar inequívocamente a cada actividad.

x Tipo (type), indica el tipo de actividad. En la versión actual existen tres tipos: radiocheck (tipo test), short (respuesta corta) y long (respuesta larga).

x Estado (status), indica el estado de la actividad. En la versión actual existen cuatro estados: active (activa), inactive (inactiva), incomplete (incompleta) y editing (editando).

x Título (title), indica el título que tiene la actividad.

x Nivel requerido (req_level), indica el nivel mínimo que debe tener un alumno para poder realizar la actividad.

x Fecha de comienzo (idate) x Fecha de fin (ddate)

x Mínimo de puntos (min_points), indica el número mínimo de puntos que obtendrá un alumno que complete la actividad.

x Máximo de puntos (max_points), indica el número máximo de puntos que obtendrá un alumno que complete la actividad.

x Límite de tiempo (time_limit), dato opcional que indica el tiempo que tiene un alumno para contestar la pregunta.

x Bonificación máxima por tiempo (max_time_bonus), dato opcional que indica el número máximo de puntos extra que puede obtener un alumno en una actividad con límite de tiempo si la contesta a tiempo.

x Pregunta (question)

Al ser una de las tablas principales, la tabla de actividades se relaciona con una serie de tablas de la siguiente forma:

x Tabla de actividades realizadas (User_Activity), relación 1 a N que sirve para indicar las actividades realizadas por un alumno. Se puede considerar que la tabla User_Activity actúa como tabla intermedia en la relación N a N entre actividades y alumnos.

x Tabla de actividades de tipo test (Radio_Check_Type), relación 1 a 1 que indica qué actividades son de tipo test.

x Tabla de actividades de tipo test (Short_Type), relación 1 a 1 que indica qué actividades son de tipo respuesta corta.

x Tabla correcciones (Correction), relación 1 a N que indica a qué actividad de tipo respuesta larga corresponde una corrección dada por un profesor.

3.4.8. TABLA DE ACTIVIDADES DE TIPO TEST

(RADIO_CHECK_TYPE)

La función de esta tabla es guardar la información específica de las actividades de tipo test. Esta tabla guarda el identificador de la actividad, el tipo de la actividad (que puede ser respuesta única o múltiple), el número de opciones a mostrar, el número mínimo de opciones correctas a mostrar, el número máximo de opciones correctas a mostrar y la penalización si se selecciona una respuesta incorrecta. Esta tabla tiene una relación 1 a 1 con la tabla de actividades y una relación 1 a N con la tabla de respuestas a las actividades de tipo test. La primera relación indica a qué actividad corresponde la información específica, mientras que la segunda relación indica qué respuestas pertenecen a la actividad.

3.4.9. TABLA DE RESPUESTAS A ACTIVIDADES DE TIPO

TEST (RADIO_CHECK_ANS)

La función de esta tabla es guardar la información de las respuestas posibles que se puede dar a las actividades de tipo test. Esta tabla guarda el identificador de la respuesta, el identificador de la actividad, la respuesta, la explicación de la respuesta y si la respuesta es correcta o incorrecta. Esta tabla tiene una relación 1 a N con la tabla de información específica de las actividades de tipo test que indica a qué actividad corresponde cada respuesta.

3.4.10. TABLA DE ACTIVIDADES DE TIPO RESPUESTA

CORTA (SHORT_TYPE)

La función de esta tabla es guardar la información específica de las actividades de tipo respuesta corta. Esta tabla guarda el identificador de la actividad, las palabras clave que deben aparecer en la respuesta y la explicación. Esta tabla tiene una relación 1 a 1 con la tabla de actividades que indica a qué actividad corresponde la información específica.

3.4.11. TABLA DE ACTIVIDADES DE TIPO ORDENAR

(ORDER_TYPE)

La función de esta tabla es guardar la información específica de las actividades de tipo ordenar. Esta tabla guarda el identificador de la actividad, el número de opciones a mostrar, el número de opciones a ordenar y la penalización si se asigna un orden incorrecto a una respuesta. Esta tabla tiene una relación 1 a 1 con la tabla de actividades y una relación 1 a N con la tabla de respuestas a las actividades de tipo ordenar. La primera relación indica a qué actividad corresponde la información específica, mientras que la segunda relación indica qué respuestas pertenecen a la actividad.

3.4.12. TABLA DE RESPUESTAS A ACTIVIDADES DE TIPO

ORDENAR (ORDER_ANS)

La función de esta tabla es guardar la información de las respuestas posibles que se puede dar a las actividades de tipo ordenar. Esta tabla guarda el identificador de la respuesta, el identificador de la actividad, la respuesta, la explicación de la respuesta y el orden de la respuesta. Esta tabla tiene una relación 1 a N con la tabla de información específica de las actividades de tipo ordenar que indica a qué actividad corresponde cada respuesta.

3.4.13. TABLA DE CORRECCIONES (CORRECTION)

La función de esta tabla es guardar la información de la corrección dada por un profesor a una actividad de respuesta larga. Esta tabla tiene una relación 1 a N con la tabla de actividades y una relación 1 a N con la tabla de profesores. La primera relación indica a qué actividad corresponde la corrección, mientras que la segunda relación indica qué profesor realizó la corrección.

3.4.14. TABLA DE PROFESORES (PROFESSOR)

La función de esta tabla es guardar la información los profesores registrados en la plataforma. Esta tabla guarda el nombre de usuario del profesor que sirve de identificador, la contraseña, el nombre, los apellidos y la dirección de correo electrónico del profesor. Esta tabla tiene una relación 1 a N con la tabla de corrección que indica qué corrección ha realizado cada profesor.

3.4.15. TABLA DE ADMINISTRADORES (ADMIN)

La función de esta tabla es guardar la información de los profesores que estén encargados de la administración de la plataforma. Esta tabla guarda el nombre de usuario del profesor que sirve de identificador, la contraseña, el nombre, los apellidos y la dirección de correo electrónico del profesor.

En la versión actual del módulo está funcionalidad no está implementada, pero su desarrollo está planeado para futuras iteraciones.

3.4.16. TABLA DE OPCIONES DE CONFIGURACIÓN

(CONFIGURATION_OPTIONS)

La función de esta tabla es guardar la información de las diferentes opciones de configuración de la plataforma. Por cada opción existen tres campos: nombre, valor y descripción En la versión actual se guardan los siguientes datos de configuración:

x Dirección, puerto, nombre, nombre de usuario y contraseña de la base de datos de estudiantes. Ésta es una base de datos externa desde la que se obtienen los datos de los alumnos matriculados en la asignatura.

x Tiempo de expiración de los enlaces que se generan y se envían por correo electrónico para validad el registro de los alumnos en la plataforma.

x Dirección, puerto, nombre de usuario y contraseña del servidor de correo desde el que se envían los correos electrónicos a los alumnos.

x Tiempo de expiración de las sesiones de los usuarios.

Documento similar