1 Tema III: el enfoque Relacional S. Velilla 1 Univ. de Zaragoza curso 11/12 transformación de la B.D. de la Universidad (1) diagrama E/R:
2 Tema III: el enfoque Relacional S. Velilla 2 Univ. de Zaragoza curso 11/12 Dominios: tpClave = entero; tpCódigo = 0..99999; tpNombre = cadena(40); tpHoras = 0..400; Restricciones: 1) Ningún profesor puede impartir docencia en una asigna- tura que no esté encargada a su área de conocimiento 2) El total de horas impartidas de una asignatura debe ser menor o igual que el correspondiente a la asignatura. clvProf: tpClave; AIP codProf: tpCódigo; AIA nombProf: tpNombre; clvArea: tpClave; AIP codArea: tpCódigo; AIA nombArea: tpNombre; clvDpto: tpClave; AIP codDpto: tpCódigo; AIA nombDpto: tpNombre; clvAsign: tpClave; AIP codAsign: tpCódigo; AIA nombAsign: tpNombre; tt_HT, tt_HP: tpHoras; clvTitulo: tpClave; AIP codTitulo: tpCódigo; AIA nombTitulo: tpNombre; Atributos de tipos de entidad: impartir.HT, impartir.HP: tpHoras; Atributos de interrelaciones: transformación de la B.D. de la Universidad (2)
3 Tema III: el enfoque Relacional S. Velilla 3 Univ. de Zaragoza curso 11/12 transformación de la B.D. de la Universidad (1) Departamento= (clvDpto:tpClave; codDpto: tpCódigo, UNICO, NO NULO ; nombDpto: tpNombre, NO NULO ); eliminar pertenecer y propagar clvDpto a relación AreaConoc AreaConoc= (clvArea:tpClave; codArea: tpCódigo, UNICO, NO NULO ; nombArea: tpNombre, NO NULO clvDpto:tpClave, NO NULO, clave ajena de Departamento); eliminar adscribir y propagar clvArea a relación Profesor Dominios: tpClave = entero; tpCódigo = 0..99999; tpNombre = cadena(40); tpHoras = 0..400; verificar que ocurrencia de clvDpto en Departamento, en AreaConoc
4 Tema III: el enfoque Relacional S. Velilla 4 Univ. de Zaragoza curso 11/12 transformación de la B.D. de la Universidad (1) eliminar adscribir y propagar clvArea a relación Profesor Dominios: tpClave = entero; tpCódigo = 0..99999; tpNombre = cadena(40); tpHoras = 0..400; Profesor= (clvProf:tpClave; codProf: tpCódigo, UNICO, NO NULO ; nombProf: tpNombre, NO NULO ); clvArea:tpClave, NO NULO, clave ajena de AreaConoc); eliminar encargar y propagar clvArea a relación Asignatura Asignatura= (clvAsign:tpClave; codAsign:tpCódigo, UNICO, NO NULO ; nombAsign: tpNombre, NO NULO; clvArea: tpClave, NO NULO, clave ajena de AreaConoc; tt_HT, tt_HP: tpHoras, NO NULOS );
5 Tema III: el enfoque Relacional S. Velilla 5 Univ. de Zaragoza curso 11/12 transformación de la B.D. de la Universidad (1) ImparteAsign= (clvProf:tpClave; clvAsign:tpClave; HT, HP: tpHoras, NO NULOS ); clave ajena (clvProf), referencia a Profesor; borrado en cascada clave ajena (clvAsign), referencia a Asignatura; borrado en cascada Titulacion= (clvTitulo:tpClave; codTitulo: tpCódigo, UNICO, NO NULO ; nombTitulo: tpNombre, NO NULO ); AsignTitulo= (clvAsign:tpClave; clvTitulo:tpClave); clave ajena (clvAsign), referencia a Asignatura; borrado en cascada clave ajena (clvTitulo), referencia a Titulacion; borrado en cascada verificar que ocurrencia de clvAsign en Asignatura, en ImparteAsign verificar que ocurrencia de clvAsign en Asignatura, en AsignTitulo
6 Tema III: el enfoque Relacional S. Velilla 6 Univ. de Zaragoza curso 11/12 transformación de la B.D. de la Universidad (1) verificar que ocurrencia en ImparteAsign, la clvArea del Profesor coincide con la de la Asignatura verificar quela suma de HT, y la de HP en ImparteAsign, agrupando por asignatura es menor o igual que el valor de tt_HT y tt_HP correspondiente a la Asignatura
7 Tema III: el enfoque Relacional S. Velilla 7 Univ. de Zaragoza curso 11/12 transformación de la B.D. del colegio (1) Notación: En interrelación ternaria, cardinalidad de participación diagrama E/R:
8 Tema III: el enfoque Relacional S. Velilla 8 Univ. de Zaragoza curso 11/12 Dominios: tpNombre = cadena(40); tpDirección = cadena(40); tpTfno = 0..999999999; Restricciones: 1) Un alumno sólo puede ser delegado del grupo al que asiste. numCurso: 0..8; AIP letra: ‘A’..’G’; AIP nombreAsign: tpNombre; AIP numAula: 0..99; AIP capacidad: 0..150; conex_PC: booleano; proyector: booleano; Atributos de tipos de entidad (cont.): Atributos de tipos de entidad: DNI_Prof: cadena(9); AIP nombreProf: tpNombre; apellProf: tpNombre; direcProf: tpDireccion; profesor.tfno: tpTfno; numMatric: 0..9999; AIP nombreAlum: tpNombre; apellAlum: tpNombre; direcAlum: tpDireccion; alumno.tfno: tpTfno; transformación de la B.D. del colegio (2)
9 Tema III: el enfoque Relacional S. Velilla 9 Univ. de Zaragoza curso 11/12 Notación: En interrelación ternaria, cardinalidad de participación Profesor= (DNI_Prof:tpDNI; tfno: tpTfno; nombreProf: tpNombre, NO NULO ); ApellProf: tpNombre, NO NULO ; direcProf: tpNombre); Aula= (numAula: tpIdAula; capacidad: tpCapacAula; conexPC, proyector: booleano);
10 Tema III: el enfoque Relacional S. Velilla 10 Univ. de Zaragoza curso 11/12 Notación: En interrelación ternaria, cardinalidad de participación eliminar coordinar y propagar DNI_Prof a relación Curso Curso= (numCurso: tpCurso; ProfCoord: tpDNI, NO NULO, clave ajena de Profesor);
11 Tema III: el enfoque Relacional S. Velilla 11 Univ. de Zaragoza curso 11/12 Notación: En interrelación ternaria, cardinalidad de participación añadir a entidad débil asignatura la clave de entidad fuerte numCurso eliminar constar y propagar numCurso a relación Asignatura (ya hecho) Asignatura= (nombreAsign: tpNombre; numCurso: tpCurso, clave ajena de Curso); verificar que numCurso en Asignatura ocurrencia de Curso
12 Tema III: el enfoque Relacional S. Velilla 12 Univ. de Zaragoza curso 11/12 Notación: En interrelación ternaria, cardinalidad de participación Grupo= (letra: tpIdGrupo; numCurso: tpCurso; clave ajena (numCurso), referencia a Curso; borrado en cascada numAula: tpIdAula, NO NULO ; clave ajena (numAula), referencia a Aula; borrado en cascada profTutor: tpDNI, NO NULO ; clave ajena (profTutor), referencia a Profesor; borrado en cascada deleGrupo: tpNumMatric, NO NULO, UNICO ); clave ajena (deleGrupo), referencia a Alumno; borrado en cascada verificar que numcurso en Grupo ocurrencia de curso
13 Tema III: el enfoque Relacional S. Velilla 13 Univ. de Zaragoza curso 11/12 Notación: En interrelación ternaria, cardinalidad de participación Alumno= (numMatric: tpNumMatric; nombreAlum, ApellAlum: tpNombre, NO NULOS ; direcAlum: tpNombre; tfno: tpTfno; verificar que (letra, numCurso) en Alumno ocurrencia de Grupo numCurso: tpCurso, NO NULO ; letra: tpIdGrupo, NO NULO ); clave ajena (numCurso, letra), referencia a Grupo; borrado en cascada El delegado tiene que estar matriculado en el grupo del que es delegado verificar que (deleGrupo, numcurso, letra) en Alumno
14 Tema III: el enfoque Relacional S. Velilla 14 Univ. de Zaragoza curso 11/12 Notación: En interrelación ternaria, cardinalidad de participación impartir= (DNI_Prof:tpDNI, NO NULO ; numCurso: tpCurso; letra: tpIdGrupo; nombreAsign: tpNombre); clave ajena (numCurso, letra), referencia a Grupo; borrado en cascada clave ajena (DNI_Prof), referencia a Profesor; borrado en cascada clave ajena (nombreAsign, numCurso), referencia a Asignatura; borrado en cascada verificar que (letra, numCurso) en impartir ocurrencia de Grupo verificar que (nombreAsign, numCurso) en impartir ocurrencia de Asignatura
15 Tema III: el enfoque Relacional S. Velilla 15 Univ. de Zaragoza curso 11/12 otros ejemplos de transformación ¿y como multivaluado ?