Práctica 1. Diseño de La Bases de Datos

13
PRÁCTICA 1: DISEÑO DE BASE DE DATOS Alberto Cruz Córdoba Emilio López Piña Universidad de Córdoba

description

DIseño

Transcript of Práctica 1. Diseño de La Bases de Datos

Prctica 1: diseo de base de datos

Base de Datos Avanzada Prctica 1. Diseo de Base de Datos

Contenido1. Descripcin del Problema21.1 Descripcin General21.2 Una visin general del Proyecto32. Modelo Conceptual43. Modelo Relacional53.1. Tabla Persona53.2. Tabla Profesor53.3. Tabla Alumno53.4. Tabla Grupo53.5. Tabla Profesor-Grupo63.6. Tabla Alumno-Grupo63.7. Tabla Asignatura63.8. Tabla Asignatura-Profesor63.9. Tabla Evaluacin63.10. Tabla Item63.11. Tabla Evaluacion_Item74. Script creacin de base de datos74.1 Script creacin tabla Persona74.2 Creacin de Tabla Alumno74.3 Creacin de Tabla Profesor74.4 Creacin de Tabla Grupo84.5 Creacin de Tabla Alumno_Grupo84.6 Creacin de Tabla Profesor_Grupo84.7 Creacin de Tabla Asignatura94.8 Creacin de Tabla Asignatura_Profesor94.9 Creacin de Tabla Evaluacion94.10 Creacin de Tabla Item104.11 Creacin de Tabla Evaluacion_Item10Bibliografa10

1. Descripcin del ProblemaEl objetivo del trabajo de la asignatura es el anlisis del problema planteado y el aportar una solucin de datos al mismo, es decir: "Estudiar, analizar y disear una solucin computerizada para la gestin de la informacin correspondiente a los alumnos matriculados en las asignaturas impartidas por los profesores con el objetivo de facilitar al profesor su almacenamiento, anlisis, y evaluacin docente de los alumnos."

1.1 Descripcin GeneralLas nuevas metodologas docentes que van a ser implantadas en las Universidades Espaolas en los prximos aos con el objetivo de una unificacin docente en el mbito europeo van a producir un cambio significativo tanto el mtodo de enseanza por parte del profesorado, como en el mtodo de aprendizaje por parte del alumnado.Para ello, entre otras acciones, el profesor deber utilizar nuevos modelos de enseanza y valoracin de los conocimientos de los alumnos, lo que supone un seguimiento ms estricto de la asimilacin de los conocimientos del alumno y del trabajo realizado para ello.Este control es difcil realizarlo de forma manual. Por ello, sera conveniente que el profesor contar con una herramienta informtica que le permitiera ir anotando informacin acerca del alumno a lo largo del desarrollo de la docencia, con varios objetivos:El anlisis de la evolucin de los alumnos en el proceso de aprendizaje, tanto de forma global, como personalizada para cada alumno. Facilitarle las evaluaciones parciales y finales de los alumnos.

Esta herramienta debe poder ser personalizada para cada profesor, es decir, para cada aplicacin que los docentes realicen sobre los nuevos modelos de enseanza, y la funcionalidad necesaria para, al menos:1. Mantener la informacin personal de los alumnos.2. Mantener la informacin acadmica de los alumnos.3. Mantener informacin histrica de los alumnos.4. Realizar procesos de anlisis de datos, de evaluacin y calificacin.

1.2 Una visin general del ProyectoEn este apartado se describir una primera lista inicial de los requisitos mnimos o caractersticas esenciales del problema planteado y de la solucin que debe ser aportada:

1. El sistema deber funcionar bajo un navegador estndar en una arquitectura cliente- servidor.

2. Mantendr la informacin personal del alumno como si de la ficha de la asignatura se tratase (incluyendo fotografia del alumno).

3. Permitir mantener evaluaciones (calificaciones) en diferentes categoras (prcticas, teora, trabajos, etc.). El nmero de grupos a calificar ser seleccionado por el profesor.

4. Permitir la gestin de notas o comentarios globales para cada alumno, y para cada tem calificado a cada alumno.

5. Permitir la creacin de "frmulas de clculo" que permita al profesor la generacin de otros tems de asignados globalmente a los alumnos o parcialmente a cada uno de los tems sealados en el punto 3 (notas globales, parciales, parciales por problemas, etc.)

6. Permitir el anlisis de resultados por los tems existentes, con herramientas que permitan tabulary grficamente informar de porcentajes absolutos, relativos, evolucin, comparacin de resultados entre tems, etc.

7. La visualizacin debe ser cmoda, efectiva y similar al uso de fichas de alumnos por el profesor.

8. Deber permitir la importacin y exportacin de informacin a otros formatos, al menos a ficheros planos.

9. Deber permitir la impresin de informes preestablecidos y otros cuyos campos sean seleccionados por el profesor.

10. Deber operar en un entorno seguro de acceso y de informacin.

2. Modelo Conceptual

Ilustracin 1. Modelo Conceptual

3. Modelo Relacional

3.1. Tabla PersonaEsta tabla se forma a partir del tipo de entidad Persona, y de ella toma los atributos nombre, dni, apellidos, departamento, fotografa y email. El identificador de esta tabla es dni.Persona (dni, nombre, apellidos, departamento, fotografa, email)3.2. Tabla ProfesorEsta tabla se forma a partir del tipo de entidad Profesor, y de ella toma los atributos dni, id_profesor y departamento. El identificador de esta tabla es id_profesor.Profesor (id_profesor, dni, departamento)

3.3. Tabla AlumnoEsta tabla se forma a partir del tipo de entidad Alumno y de ella toma los atributos matricula y dni.El identificador de esta tabla es matricula.Alumno (matricula, dni)3.4. Tabla GrupoEsta tabla se forma a partir del tipo de entidad Grupo y de ella toma los atributos curso, numero_grupo, titulacin y max_capacidad.Los identificadores de esta tabla son curso, numero_grupo, titulacin y max_capacidadGrupo (curso, numero_grupo, titulacin, max_capacidad)

3.5. Tabla Profesor-GrupoEsta tabla se forma a partir de la relacin entre las entidades Grupo y Profesor y toma los atributos id_profesor, curso_grupo, numero_grupo y titulacin.Profesor_Grupo (id_profesor, curso_grupo, numero_grupo, titulacin)

3.6. Tabla Alumno-GrupoEsta tabla se forma a partir de la relacin entre las entidades Grupo y Alumno y toma los atributos matricula, curso_grupo, numero_grupo y titulacin.Alumno_Grupo (matricula, curso_grupo, numero_grupo, titulacin)

3.7. Tabla AsignaturaEsta tabla se forma a partir del tipo de entidad Asignatura y de ella toma los atributos id asignatura, nombre_asignatura, curso_asignatura, numero_creditos, titulacionEl identificador de esta tabla es id_asignatura.Asignatura (id asignatura, nombre_asignatura, curso_asignatura, numero_creditos, titulacion)

3.8. Tabla Asignatura-ProfesorEsta tabla se forma a partir de la relacin entre las entidades Asignatura y Profesor y toma los atributos id_profesor e id_asignatura.Los identificadores de esta tabla son id_asignatura e id_profesor.Asignatura_Profesor (id_profesor, id_asignatura)3.9. Tabla EvaluacinEsta tabla se forma a partir del tipo de entidad Evaluacin y de ella toma los atributos comentario_alumno, matricula, id_asignatura y nota_final.Los identificadores de esta tabla son matricula e id_asignatura.Evaluacin (comentario_alumno, matricula, id_asignatura, nota_final)

3.10. Tabla ItemEsta tabla se forma a partir del tipo de entidad Item y de ella toma los atributos id_item, categora e id_asignatura.Los identificadores de esta tabla son id_item e id_asignatura.Item (id_item, categora, id_asignatura)

3.11. Tabla Evaluacion_ItemEsta tabla se forma a partir de la relacin entre las entidades Evaluacion e Item y toma los atributos nota_item, comentario_item, id_asignatura, matricula e id_item.Evaluacion_Item (nota_item, comentario_item, id_asignatura, matricula, id_item)

4. Script creacin de base de datos

4.1 Script creacin tabla PersonaCREATE TABLE Persona(dni INT NOT NULL,nombre VARCHAR(30) NOT NULL,apellidos VARCHAR(50) NOT NULL,fotografia LONGBLOB,email VARCHAR(30),tipo_persona ENUM('Alumno','Profesor'),CONSTRAINT pk_perPRIMARY KEY (dni));

4.2 Creacin de Tabla AlumnoCREATE TABLE Alumno(dni INT NOT NULL,matricula INT NOT NULL AUTO_INCREMENT,CONSTRAINT pk_aluPRIMARYKEY (matricula),CONSTRAINT fk_per_aluFOREIGN KEY (dni)REFERENCES Persona(dni)ON DELETE CASCADE);

4.3 Creacin de Tabla ProfesorCREATE TABLE Profesor(dni INT NOT NULL,id_profesor INT NOT NULL AUTO_INCREMENT,departamento VARCHAR(60) NOT NULL,CONSTRAINT pk_profPRIMARY KEY (id_profesor),CONSTRAINT fk_per_proFOREIGN KEY (dni)REFERENCES Persona(dni)ON DELETE CASCADE);

4.4 Creacin de Tabla GrupoCREATE TABLE Grupo(curso_grupo ENUM('Primero','Segundo','Tercero','Cuarto') NOT NULL,numero_grupo INT NOT NULL,titulacion VARCHAR(80) NOT NULL,max_capacidad INT NOT NULL,CONSTRAINT pk_gruPRIMARY KEY(curso_grupo,numero_grupo,titulacion));

4.5 Creacin de Tabla Alumno_GrupoCREATE TABLE Alumno_Grupo(matricula INT NOT NULL AUTO_INCREMENT,curso_grupo ENUM('Primero','Segundo','Tercero','Cuarto') NOT NULL,numero_grupo INT NOT NULL,titulacion VARCHAR(80) NOT NULL,CONSTRAINT pk_alu_gruPRIMARY KEY (matricula,curso_grupo,numero_grupo,titulacion),CONSTRAINT fk_aluFOREIGN KEY(matricula)REFERENCES Alumno(matricula)ON DELETE CASCADE,CONSTRAINT fk_grupoFOREIGN KEY(curso_grupo,numero_grupo,titulacion)REFERENCES Grupo(curso_grupo,numero_grupo,titulacion)ON DELETE CASCADE);

4.6 Creacin de Tabla Profesor_GrupoCREATE TABLE Profesor_Grupo(id_profesor INT NOT NULL AUTO_INCREMENT,curso_grupo ENUM('Primero','Segundo','Tercero','Cuarto') NOT NULL,numero_grupo INT NOT NULL,titulacion VARCHAR(80) NOT NULL,CONSTRAINT pk_pro_gruPRIMARY KEY (id_profesor,curso_grupo,numero_grupo,titulacion),CONSTRAINT fk_proFOREIGN KEY(id_profesor)REFERENCES Profesor(id_profesor)ON DELETE CASCADE,CONSTRAINT fk_grupFOREIGN KEY (curso_grupo,numero_grupo,titulacion)REFERENCES Grupo(curso_grupo,numero_grupo,titulacion)ON DELETE CASCADE);

4.7 Creacin de Tabla AsignaturaCREATE TABLE Asignatura(id_asignatura INT NOT NULL AUTO_INCREMENT,nombre_asignatura VARCHAR(80) NOT NULL,curso_asignatura ENUM('Primero','Segundo','Tercero','Cuarto') NOT NULL,titulacion VARCHAR(80) NOT NULL,numero_creditos INT NOT NULL,CONSTRAINT pk_asiPRIMARY KEY (id_asignatura));

4.8 Creacin de Tabla Asignatura_ProfesorCREATE TABLE Asignatura_Profesor(id_profesor INT NOT NULL,id_asignatura INT NOT NULL,CONSTRAINT pk_asi_proPRIMARY KEY (id_profesor,id_asignatura),CONSTRAINT fk_asiFOREIGN KEY (id_profesor)REFERENCES Profesor(id_profesor)ON DELETE CASCADE,CONSTRAINT fk_profFOREIGN KEY (id_asignatura)REFERENCES Asignatura(id_asignatura)ON DELETE CASCADE);

4.9 Creacin de Tabla EvaluacionCREATE TABLE Evaluacion(comentario_alumno VARCHAR(300),matricula INT NOT NULL,id_asignatura INT NOT NULL,nota_final FLOAT(5,3),CONSTRAINT pk_evaPRIMARY KEY (matricula,id_asignatura),CONSTRAINT fk_eva_aluFOREIGN KEY (matricula)REFERENCES Alumno(matricula)ON DELETE CASCADE,CONSTRAINT fk_eva_asiFOREIGN KEY (id_asignatura)REFERENCES Asignatura(id_asignatura)ON DELETE CASCADE);

4.10 Creacin de Tabla ItemCREATE TABLE Item(id_item INT NOT NULL,categoria VARCHAR(50) NOT NULL,id_asignatura INT NOT NULL,CONSTRAINT pk_itePRIMARY KEY (id_item,id_asignatura),CONSTRAINT fk_evalFOREIGN KEY (id_asignatura)REFERENCES Evaluacion(id_asignatura)ON DELETE CASCADE);

4.11 Creacin de Tabla Evaluacion_ItemCREATE TABLE Evaluacion_Item(nota_item FLOAT(5,3),comentario_item VARCHAR(300),id_asignatura INT NOT NULL,matricula INT NOT NULL,id_item INT NOT NULL,CONSTRAINT pk_eva_itePRIMARY KEY (id_asignatura,matricula,id_item),CONSTRAINT fk_evaFOREIGN KEY (matricula,id_asignatura)REFERENCES Evaluacion(matricula,id_asignatura)ON DELETE CASCADE,CONSTRAINT fk_iteFOREIGN KEY (id_item)REFERENCES Item(id_item)ON DELETE CASCADE);

Bibliografa[1]. Luque Ruz, Irene; Gmez Nieto, Miguel ngel: Diseo y uso de Bases de Datos Relacionales. Ra-ma. 1997

Universidad de Crdoba 10