Soluciones al Ejercicio de DEA del Tema 5_12Ene09

Anuncio
Desarrollo de aplicaciones en entornos de IV generación y con herramientas CASE
Examen FINAL
15-Marzo-2006
2005/2006
SOLUCIONES
Nombre:
1.
I.E.S. Vecindario
Realizar el diagrama representativo del modelo Entidad-Relación que representa el supuesto anteriormente citado, sabiendo
que se requiere, como mínimo, almacenar la siguiente información:
b) DNI del alumno, nombre del alumno, primer apellido del alumno, segundo apellido del alumno, fecha de
nacimiento del alumno y notas del alumno.
c) Código del módulo, nombre del módulo, curso en donde se imparte el módulo, horas totales de duración del
módulo y horas semanales en las que se imparte el módulo.
d) DNI del profesor, nombre del profesor, primer apellido del profesor, segundo apellido del profesor, código
postal de la localidad donde reside el profesor y localidad donde reside el profesor.
Tras una lectura exhaustiva del enunciado, obtenemos las siguientes entidades y relaciones:
RELACIONES
Se encuentran matriculados en
Es impartido por
ENTIDADES
ALUMNOS
MODULOS
PROFESORES
Del enunciado, se podría haber llevado a la conclusión de la existencia de dos entidades más, denominadas
CURSOS y NOTAS, pero tras una lectura de la información que se desea almacenar así como de las
características que va a contener dicha información, se desprende que curso simplemente va a ser un atributo
más con información a almacenar sobre un determinado módulo, mientras que nota servirá de nexo entre la
información de un alumno en un determinado módulo.
Con esto, llegamos que las características de las relaciones son:
ALUMNOS Se encuentran matriculados en MODULOS.
MODULOS Es impartido por PROFESORES.
Grado 2.
Grado 2.
Tipo de Correspondencia (N:M)
Tipo de Correspondencia (1:1)
Los atributos a indicar, subrayando aquellos que son atributos identificativos principales, son:
ALUMNOS : DNI, Nombre, Apel1, Apel2, Fnac
MODULOS : CodMod, Nombre, Curso, Horas, HS
PROFESORES : DNI-P, Nombre, Apel1, Apel2, Cpostal, Localidad
Se encuentran matriculados en : DNI, CodMod, Nota
Es impartido por : DNI-P, CodMod
Si realizamos a continuación el diagrama que representa dicho modelo Entidad-Relación, nos quedaría lo siguiente:
DNI
Nombre Apel1
Apel2
CodMod Nombre
DNI
Se encuentran
matriculados
en
ALUMNOS
Curso
Horas
MODULOS
CodMod
(N:M)
2
HS
Fnac
DNI_P Nombre Apel1
Apel2
DNI_P
CodMod
PROFESORES
Cpostal
Localidad
Es
Impartido
por
(1:1)
2
1
Desarrollo de aplicaciones en entornos de IV generación y con herramientas CASE
Examen FINAL
15-Marzo-2006
2005/2006
SOLUCIONES
Nombre:
2.
I.E.S. Vecindario
Generar el correspondiente modelo relacional, implementándolo directamente mediante las instrucciones necesarias en
MySQL, acorde a las restricciones impuestas a continuación:
a.
b.
c.
d.
e.
f.
g.
La nota de los alumnos debe estar entre 0 y 10, sin dígitos decimales.
El DNI de un alumno y de un profesor estará formado por 9 caracteres alfanuméricos.
El código del módulo debe estar formado por 3 caracteres alfabéticos.
El curso donde se imparte un módulo debe ser un número cuyo valor puede ser 1 ó 2.
El número total de horas de duración de un módulo debe ser más de 80 horas.
Las horas semanales en las que se imparte un módulo debe estar comprendido entre 2 y 10.
El código postal debe contener un valor entre 35000 y 38999.
CREATE TABLE ALUMNOS
(
DNI CHAR(9) NOT NULL,
Nombre CHAR(25) NOT NULL,
Apel1 CHAR(25) NOT NULL,
Apel2 CHAR(25) NOT NULL,
Fnac NUMERIC(8),
CONSTRAINT PK_ALUMNOS PRIMARY KEY(DNI)
);
CREATE TABLE PROFESORES
(
DNI CHAR(9) NOT NULL,
Nombre CHAR(25) NOT NULL,
Apel1 CHAR(25) NOT NULL,
Apel2 CHAR(25) NOT NULL,
Cpostal NUMERIC(5),
Localidad CHAR(25),
CodMod CHAR(3),
CONSTRAINT PK_PROFESORES
PRIMARY KEY(DNI),
CONSTRAINT I_PROFESORES INDEX (CodMod),
CONSTRAINT FK_PROFESORES
FOREIGN KEY(CodMod)
REFERENCES MODULOS(CodMod)
ON UPDATE CASCADE
ON DELETE CASCADE,
CONSTRAINT C_PROFESORES
CHECK (Cpostal BETWEEN
35000 AND 38999)
);
CREATE TABLE MODULOS
(
CodMod CHAR(3) NOT NULL,
Nombre CHAR(50) NOT NULL,
Curso INT(1) NOT NULL,
Horas INT(4),
HS INT(1),
CONSTRAINT PK_MODULOS PRIMARY KEY(CodMod),
CONSTRAINT C_CURSO
CHECK (Curso=1 OR Curso=2),
CONSTRAINT C_HORAS
CHECK (Horas>80),
CONSTRAINT C_HS
CHECK (HS BETWEEN 2 AND 10)
);
CREATE TABLE NOTAS
(
DNI CHAR(9) NOT NULL,
CodMod CHAR(3) NOT NULL,
Nota CHAR(9) NOT NULL,
CONSTRAINT PK_NOTAS
PRIMARY KEY(DNI, CodMod),
CONSTRAINT I_NOTAS1 INDEX (DNI),
CONSTRAINT I_NOTAS2 INDEX (CodMod),
CONSTRAINT FK_NOTAS1
FOREIGN KEY(DNI)
REFERENCES ALUMNOS(DNI)
ON UPDATE CASCADE
ON DELETE CASCADE,
CONSTRAINT FK_NOTAS2
FOREIGN KEY(CodMod)
REFERENCES MODULOS(CodMod)
ON UPDATE CASCADE
ON DELETE CASCADE,
CONSTRAINT C_NOTAS
CHECK (Nota BETWEEN 0 AND 10)
);
2
Descargar