Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/06/2015, 12:47
lamenenchu
 
Fecha de Ingreso: mayo-2015
Mensajes: 92
Antigüedad: 8 años, 10 meses
Puntos: 1
entidad-relacion

Hola. Estoy iniciándome en la creación de bases de datos. Ha llegado a mis manos un ejercicio del cual me gustaría que le dierais un vistazo y resolver algunas dudas.

El enunciado dice: Se desea diseñar la base de datos de un Instituto. En la base de datos se desea guardar los datos de los profesores del Instituto (DNI, nombre, dirección y teléfono). Los profesores imparten módulos, y cada módulo tiene un código y un nombre. Cada alumno está matriculado en uno o varios módulos. De cada alumno se desea guardar el nº de expediente, nombre, apellidos y fecha de nacimiento. Los profesores pueden impartir varios módulos, pero un módulo sólo puede ser impartido por un profesor. Cada curso tiene un grupo de alumnos, uno de los cuales es el delegado del grupo.


Código SQL:
Ver original
  1. CREATE TABLE profesor (
  2. cod_prof NUMBER(2) NOT NULL,
  3. dni NUMBER(9) CONSTRAINT PKPROFESOR PRIMARY KEY,
  4. tfno NUMBER(9) NOT NULL,
  5. direccion VARCHAR(20)
  6. );
  7.  
  8. CREATE TABLE modulos(
  9. cod_mod NUMBER(2) CONSTRAINT PKMODULOS PRIMARY KEY,
  10. nombre VARCHAR(20) NOT NULL,
  11. );
  12.  
  13. CREATE TABLE alumnos(
  14. num_exp NUMBER(4) CONSTRAINT PKALUMNOS PRIMARY KEY,
  15. nombre VARCHAR(20) NOT NULL,
  16. apellido VARCHAR(20)NOT NULL,
  17. fecha_nav DATE NOT NULL
  18. );
  19.  
  20. CREATE TABLE curso(
  21. cod_cur NUMBER(2) CONSTRAINT PKCURSO PRIMARY KEY,
  22. nombre VARCHAR(20) NOT NULL,
  23. num_alum NUMBER(2) NOT NULL
  24. );
  25.  
  26. CREATE TABLE matricular(
  27. cod_mod1 NUMBER (2),
  28. num_exp1 NUMBER(4),
  29. fecha_ini DATE NOT NULL,
  30. fecha_fin DATE NOT NULL
  31. CONSTRAINT FKMATRICULARMOD FOREIGN KEY (cod_mod1) REFERENCES modulos(cod_mod),
  32. CONSTRAINT FKMATRICULARALM FOREIGN KEY (num_exp1) REFERENCES alumnos(num_exp),
  33. CONSTRAINT CKFECHA CHECK(fecha_ini<fecha_fin)
  34. );
  35.  
  36. CREATE TABLE ser(
  37. cod_cur1 NUMBER(2),
  38. num_exp2 NUMBER(4),
  39. CONSTRAINT FKSER FOREIGN KEY (cod_cur1) REFERENCES modulos(cod_mod),
  40. CONSTRAINT FKSER1 FOREIGN KEY (num_exp2) REFERENCES alumnos(num_exp)
  41. );
  42.  
  43. INSERT INTO profesor VALUES (1, '73207556', '646332501', 'Av. Aragón 32 1º');
  44. INSERT INTO profesor VALUES (2, '73277532', '616386529', 'Av. Madrid 28');
  45. INSERT INTO profesor VALUES (3, '49207511', '601547689', 'C/ La Paz, 30, 4º');
  46. INSERT INTO profesor VALUES (4, '17956372', '669375412', 'C/ Rioja, 68, 2ºA');
  47.  
  48. INSERT INTO modulos VALUES (1, 'geografia');
  49. INSERT INTO modulos VALUES (2, 'literatura');
  50. INSERT INTO modulos VALUES (3, 'plastica');
  51. INSERT INTO modulos VALUES (4, 'gimnasia');
  52. INSERT INTO modulos VALUES (5, 'matematicas');
  53. INSERT INTO modulos VALUES (6, 'lengua');
  54.  
  55. INSERT INTO alumnos VALUES (1, 'Carlos', 'Lasierra', '1998');
  56. INSERT INTO alumnos VALUES (2, 'Francisco', 'Anadón', '1997');
  57. INSERT INTO alumnos VALUES (3, 'Maria', 'Majada', '1998');
  58. INSERT INTO alumnos VALUES (4, 'Andrea', 'Larroya', '1998');
  59. INSERT INTO alumnos VALUES (5, 'Pedro', 'Hernández', '1999');
  60. INSERT INTO alumnos VALUES (6, 'Laura', 'Arnau', '1998');
  61. INSERT INTO alumnos VALUES (7, 'Marcos', 'Reif', '1998');
  62. INSERT INTO alumnos VALUES (8, 'Patricia', 'Martinez', '1997');
  63.  
  64. INSERT INTO curso VALUES (1, 'primero', 30);
  65. INSERT INTO curso VALUES (2, 'segundo', 27);
  66. INSERT INTO curso VALUES (3, 'tercero', 28);
  67. INSERT INTO curso VALUES (4, 'cuarto', 25);
  68.  
  69. INSERT INTO matricular VALUES (1, 1, '11/05/2008', 'NOT NULL');
  70. INSERT INTO matricular VALUES (2, 1, '11/05/2008', 'NOT NULL');
  71. INSERT INTO matricular VALUES (3, 2, '11/05/2007', 'NOT NULL');
  72. INSERT INTO matricular VALUES (4, 1, '11/05/2008', '20/06/2010');
  73. INSERT INTO matricular VALUES (5, 3, '11/05/2005', 'NOT NULL');
  74.  
  75. INSERT INTO ser VALUES (1, 1);
  76. INSERT INTO ser VALUES (4, 2);
  77. INSERT INTO ser VALUES (4, 3);
  78. INSERT INTO ser VALUES (2, 4);
  79. INSERT INTO ser VALUES (3, 5);
[/SQL]

El esquema:
http://silviamenen.neocities.org/entidad-relacion-01.jpg

Si alguien pudiera corregir los fallos se lo agradecería. Nosé si hay campos que sobran, si doy información redundante

Última edición por gnzsoloyo; 24/06/2015 a las 13:08