CUESTIONARIO DE BASES DE DATOS 24/06/03. NOTA_OBTENIDA= (Bien_contestadas Mal_contestadas/3) 0,25.

Documentos relacionados
la consulta de código cod_con necesita para su resolución la relación de nombre nom_rel al menos un número veces de veces.

Aplicaciones de las vistas Concepto de vista Vistas en SQL Vistas en SQL.

DISPARADORES EN SQL DISPARADORES EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999

El Lenguaje SQL TEMA V. Grupo de Bas ses de Datos Avanzadas Univ. Carlo os III de Madrid. V.1 SQL como Lenguaje de Definición de Datos

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ]

ÍNDICE PRIMERA PARTE... 17

Examen de Bases de datos Grado de Ingeniería en Informática, Febrero, 2015

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Uso de Disparadores. Miguel Angel Garduño Cordova Isaac Méndez Hernández

Solución Ejercicio Prac. 3b (Esquema).

Integridad en sistemas de bases de datos relacionales

Sistemas de Datos Curso: Ernesto Chinkes. Subconsultas Stored Procedures - Triggers

SQLModificaciones a la BD

Permite definir cada relación que pertenece a la base de datos relacional, incluyendo:

Lenguaje para descripción de datos

6. Integridad en Sistemas de Bases de Datos Relacionales

8 SQL SERVER 2008 RA-MA

A.1. Definiciones de datos en SQL

Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers

Examen de Ficheros y bases de datos ( ) Convocatoria de febrero I PARCIAL

Unidad. Lenguaje SQL. (Structured Query Language)

Restricciones de Integridad

Bases de Datos SQL - Ejemplos

Tema 1. Bases de datos activas

BASES DE DATOS - SQL. Javier Enciso

//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA

Carlos A. Olarte Ligaduras de Integridad y Restricciones sobre la BD

- Bases de Datos - - Diseño Físico - Luis D. García

2.5.- El lenguaje estándar SQL

Sistemas de Datos Curso: Ernesto Chinkes. SQL Básico Algebra Relacional

Tema 33. El lenguaje SQL

Integridad y Seguridad en los sistemas de Bases de Datos. Javier Escobar Luis Ramirez Omar Asprino

Tema II: El modelo relacional de datos. (2.4)

Tema 4. SQL. Juan Ignacio Rodríguez de León

T12 Vistas y tablas temporales

SQL (Structured Query Language)

Bases de Datos 2. Teórico

Temario. Índices simples Árboles B Hashing

ACERCA DE LOS AUTO RES... III AGRADECIMIENTOS... xi INTRODUCCION... Xl

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón

LENGUAJE SQL. En Mysql se utiliza un subconjunto de SQL (update, insert into, delete, select, truncate,etc).

: COMPUTACIÓN E INFORMATICA : Ingeniería de Software Ingeniería de Redes y Comunicaciones : Administración de Bases de Datos I : T-INF127

RESTRICCIONES DE DOMINIOS

Conceptos de Bases de Datos Relacionales Triggers

Restricciones de Integridad

Access SQL: DDL y DML. Una empresa de Ingeniería precisa una base de datos para la gestión de sus proyectos.

Bases de datos 1. Teórico: Modelo Relacional

Integridad Referencial. Restricciones (constraints)

ÍNDICE. Introducción... Capítulo 1. Novedades de Access

Oracle 12c DISEÑO Y PROGRAMACIÓN

Diseño de bases de datos

Consultas con combinaciones

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS LABORATORIO DE BASES DE DATOS 1

PRÁCTICA III. DISPARADORES EN SQL (II)

LENGUAJE ESTRUCTURADO DE CONSULTAS SQL (2)

ÍNDICE INTRODUCCIÓN...17

LENGUAJE SQL. Bárbula, Febrero de Historia y Definición

Acceso a bases de datos MySQL con PHP

Objetivos y Temario CURSO MySQL 5

Tema 4. Manipulación de datos con SQL

BASES DE DATOS SQL MÁS S DE SQL (DML) OPERADOR UNION (L30) <SELECT1> UNION <SELECT2> UNION <SELECTN> Copyright 2006, 2007 Instituto Gala

DISPARADORES EN SQL SINTAXIS GENERAL DE UN DISPARADOR EN SQL:2003

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2014-II SÍLABO

UNIDAD 1.- PARTE 1 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES. Xochitl Clemente Parra Armando Méndez Morales

1

El usuario puede utilizar esta tabla derivada como una tabla más, en sus consultas.

SQL EMBEBIDO FELIPE GARCÍA GÓMEZ

Sql Basico. Seminar Introduction

Structured Query Language (SQL) Fundamentos de Bases de Datos InCo

Tema 6. Restricciones a la Base de Datos: Integridad y seguridad

BASES DE DATOS TEMA 4. SQL. UN LENGUAJE DE CONSULTA COMERCIAL PARA BASES DE DATOS RELACIONALES Contenidos generales

Tema 1. Bases de datos activas

LEA ATENTAMENTE LAS PREGUNTAS Y RESUELVA CADA EJERCICIO COMO SE INDIQUE (EN CASO CONTRARIO EL EJERCICIO NO PUNTUARÁ) CADA EJERCICIO VALE UN PUNTO

Base de Datos Oracle 10g: Introducción a SQL Código: D Duración: 5 días (40 horas)

Se considera a Oracle como uno de los sistemas de bases de datos más completos, destacando su:

ÍNDICE INTRODUCCIÓN...13

Tema 4. Lenguajes de consulta comerciales

Integridad y Seguridad. Integridad y Seguridad. Restricción de Dominio. Protección. Índice. create domain. Dominios

SERVICIO NACIONAL DE APRENDIZAJE SENA

Asignatura: Administración de Bases de Datos

Si queremos modificar la contraseña de sys, una vez que accedamos al sistema como sys, escribiremos la sentencia:

TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL

Lenguaje de Consulta Estructurado S Q. Lenguaje de Consulta Estructurado. Wael Najjar /

Triggers 27/11/2014. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle

MANUALITO MS-SQL SERVER

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

Consulta y manipulación de datos. El lenguaje SQL

Sistemas Informáticos I Resumen

Fundamentos de Oracle

Grupo Kybele, Pág. 1

SQL. Orígenes y Evolución

CURSO DE SQL SERVER 2005

APÉNDICE SQL (Structures Query Language)

Sub consultas avanzadas

BASES DE DATOS 2º CURSO E.U.I. / F.I. Práctica 4: Estudio del SGBD ORACLE8 1 Gestión de transacciones 22 DE MAYO DE 2000

Número de Práctica: 1 Nombre de la Práctica: Comunicación Cliente Servidor Vía Sockets Java con Sistema Manejador de Bases de Datos

LENGUAJE DE CONSULTA ESTRUCTURADO (SQL)

Repaso. Laboratorio Informix. Stored Procedures. Ejemplo. Creación de stored procedures. Sql en un Procedimiento

1. Dadas las tablas ALUM y NUEVOS, insertar en la tabla ALUM los nuevos alumnos.

Transcripción:

CUESTIONARIO DE BASES DE DATOS 24/06/03. TIPO A NOTA_OBTENIDA= (Bien_contestadas Mal_contestadas/3) 0,25. Sea el siguiente esquema relacional, al que se hará referencia como ESQUEMA de TRABAJO, que mantiene información sobre la organización de los grupos en un curso de natación para niños: d2: Entero positivo Grupo(cod_gru: d1, capacidad: d2, nivel: d3) CP: {cod_gru} VNN: {nivel, capacidad} Monitor(número: d4, nombre: d5, formación: d6) CP: {número} VNN: {nombre, formación} MonitorGrupo(cod_gru: d1, número: d4, límite:d2) CP: {cod_gru, número} VNN: {límite} CAj: {cod_gru} Grupo Borrado en CASCADA y Actualización en CASCADA CAj: {número} Monitor Borrado RESTRICTIVO y Actualización en CASCADA Niño(código: d7, nombre: d8, edad: d9, cod_gru: d1, número: d4) CP: {código} VNN: {nombre, edad, cod_gru} CAj: {cod_gru, número} MonitorGrupo Integridad Referencial PARCIAL Borrado RESTRICTIVO y Actualización en CASCADA La relación Grupo contiene todos los grupos disponibles. En la relación Monitor se guardan los monitores del curso. La relación MonitorGrupo mantiene la asignación de los monitores a los grupos. La relación Niño, contiene los niños apuntados al curso con la información de a qué grupo pertenecen y el monitor que tienen asignado. GRUPO MONITOR cod_gru capacidad nivel número nombre formación G1 10 Inicial 1 Alfonso Peris Monitor-T1 G2 15 Medio 2 María Llopis Monitor-T2 G3 15 Alto 3 Juan Cruz Monitor-T1 4 Pedro Rius Socorrista MONITORGRUPO NIÑO cod_gru número límite código nombre edad cod_gru número G1 1 4 1111 Juan 7 G1 - G1 2 6 2222 Luisa 8 G1 - G2 3 7 3333 Pedro 8 G2 - G2 4 4 4444 María 8 G2 3 G3 3 7 5555 Luis 10 G3 3 1) Dado el esquema de trabajo, cuál de las siguientes afirmaciones es CIERTA? a) Un monitor sólo puede encargarse de un grupo si hay algún niño asignado a dicho grupo. b) Todo grupo debe tener al menos un monitor asignado. c) Todo monitor necesariamente debe encargarse de un grupo. d) Un monitor puede encargarse de un grupo, y dicho grupo puede a su vez tener varios monitores asignados.

2) En la base de datos del esquema de trabajo, cual sería el efecto de realizar la siguiente operación en SQL, DELETE FROM MONITORGRUPO WHERE cod_gru=g1 and número=1. a) Se borra esa tupla. b) No se puede borrar por la directriz Borrado Restrictivo de la clave ajena {cod_gru, número} de la relación NIÑO. c) No se puede borrar por la directriz Borrado Restrictivo de la clave ajena {cod_gru} de la relación MONITORGRUPO. d) Se borra esa tupla y el sistema borra también de la relación NIÑO las tuplas con cod_gru = G1. 3) En la base de datos del esquema de trabajo, si se añade la restricción de integridad: CREATE ASSERTION RI CHECK ( NOT EXISTS (SELECT * FROM Monitor Mx WHERE NOT EXISTS (SELECT * FROM MonitorGrupo MGx WHERE MGx.número=Mx.número))) Cuál de las siguientes transacciones es válida, suponiendo que todas las restricciones del esquema tienen un modo de comprobación diferido?. a) INSERT INTO Monitor ( número, nombre, formación) VALUES (5, Pau, Monitor-T1 ); COMMIT b) INSERT INTO Monitor (número, nombre, formación) VALUES (5, Pau Peris, Monitor-T1 ); INSERT INTO MonitorGrupo ( cod-gru, número, limite) VALUES ( G1, 5, 8); COMMIT c) INSERT INTO Monitor (número, nombre, formación) VALUES (5, Pau Peris, Monitor-T1 ); INSERT INTO Monitor (número, nombre, formación) VALUES (6, Carmen Rius, Monitor- T1 ); INSERT INTO MonitorGrupo ( cod-gru, número, limite) VALUES ( G1, 5, 8); COMMIT d) Todas las transacciones son válidas. 4) En la base de datos del esquema de trabajo, tras ejecutar la sentencia CREATE VIEW SOCORRISTA AS SELECT * FROM MONITOR WHERE formación= Socorrista, cuál de las siguientes afirmaciones es CIERTA tras realizar la sentencia SQL, INSERT INTO SOCORRISTA (número, nombre, formación) VALUES (8, Pere Such, Monitor-T1 ); a) La sentencia no insertará ninguna tupla puesto que no se corresponde con un monitor de formación Socorrista. b) La sentencia no insertaría ninguna tupla si la vista se hubiera definido con la cláusula WITH CHECK OPTION ya que no se correspondería con un monitor de formación Socorrista. c) La sentencia no insertaría ninguna tupla si la vista se hubiera definido con la opción NOT DEFERRABLE ya que no se correspondería con un monitor de formación Socorrista. d) La sentencia no insertaría ninguna tupla si la vista se hubiera definido con la opción DEFERRABLE ya que no se correspondería con un monitor de formación Socorrista. 5) En la base de datos del esquema de trabajo, si se añade la restricción de integridad: CREATE ASSERTION R2 CHECK ( NOT EXISTS (SELECT * FROM grupo G WHERE capacidad < (SELECT SUM(límite) FROM MonitorGrupo M WHERE G.cod_gru = M.cod_gru ) ) )

Cuál es el conjunto de operaciones que puede violar dicha restricción de integridad?. a) Modificar el atributo capacidad de Grupo, Insertar en MonitorGrupo, modificar el atributo límite de MonitorGrupo, modificar el atributo cod_gru en MonitorGrupo b) Insertar en Grupo, Modificar el atributo capacidad de Grupo, Insertar en MonitorGrupo, modificar el atributo límite de MonitorGrupo. c) Borrar en MonitorGrupo, Modificar el atributo capacidad de Grupo, Insertar en MonitorGrupo, modificar el atributo límite de MonitorGrupo. d) Borrar en Niño, Modificar el atributo capacidad de Grupo, Insertar en MonitorGrupo, modificar el atributo límite de MonitorGrupo. 6) Cuál de las siguientes afirmaciones es CIERTA: a) Al registrarse un punto de verificación ( checkpoint ) en el fichero diario se graban en disco las actualizaciones producidas por todas las transacciones que aparecen confirmadas en el diario desde el último punto de verificación. b) En el fichero diario sólo se registran las transacciones realizadas en la base de datos que aparecen como confirmadas. c) El fichero diario se recomienda que esté en el mismo dispositivo físico donde se guarda la base de datos por razones de seguridad. d) Los ficheros de la base de datos nunca pueden estar almacenados en discos diferentes. 7) Dado la base de datos del esquema de trabajo qué ocurriría en la base de datos si se ejecuta la siguiente instrucción? DELETE FROM Grupo WHERE capacidad=15 and nivel= Alto ; a) El sistema no dejaría realizar la operación. b) La instrucción se ejecutaría sin problemas. c) La instrucción se ejecutaría produciendo en cascada un borrado en MonitorGrupo. d) La instrucción se ejecutaría produciendo en cascada un borrado en la relación MonitorGrupo y posteriormente en la relación Niño. 8) Dado el esquema de trabajo qué ocurriría en la base de datos si se ejecuta la siguiente instrucción? INSERT INTO Niño ( código, nombre, edad, número) VALUES (6666, Juan, 12, 4); a) La instrucción insertaría una nueva fila en la relación Niño sin problemas. b) El sistema no dejaría realizar la operación puesto que incumpliría la integridad referencial al indicar el monitor y no el grupo. c) La instrucción daría error ya que no inserta valor en el campo cod_gru. d) El sistema no dejaría realizar la operación puesto que el valor del nombre del Niño ya existe en la relación Niño. 9) Respecto a la independencia de datos, señale la opción FALSA: a) La independencia de datos es la propiedad que asegura que un esquema externo nunca se verá afectado por ningún cambio en el esquema lógico. b) En la independencia de datos se puede distinguir la física y la lógica. c) La independencia de datos desaparece cuando se produce la ligadura. d) Cuanto más tarde se produzca la ligadura más independencia se tiene.

10) En la base de datos del esquema de trabajo, la cardinalidad máxima de la relación MonitorGrupo es: a) La cardinalidad de la relación Monitor. b) La cardinalidad de la relación Grupo. c) El producto de la cardinalidad de Monitor por la cardinalidad de Grupo. d) Infinita. 11) Cómo se definiría en el SGBD Oracle 8.0 la restricción de integridad la edad de un niño no puede decrecer a) Mediante la instrucción CREATE ASSERTION del SQL estándar. b) Mediante una restricción de tabla (instrucción CHECK sobre el atributo edad). c) Mediante una regla de actividad (TRIGGER). d) No se puede definir esta restricción en el Oracle 8.0. 12) Qué información devuelve la siguiente instrucción SQL? SELECT número, COUNT(*) FROM Niño GROUP BY número HAVING COUNT(*) >=ALL (SELECT COUNT(*) FROM Niño GROUP BY número) a) Los monitores que tienen mayor número de niños asignados. b) Los monitores que tienen mayor número de niños asignados en un mismo grupo c) Los monitores que tienen mayor número de grupos asignados. d) Los monitores que tienen mayor número de niños asignados que todavía no tienen grupo. 13) Cuál de estas expresiones de Álgebra Relacional, responde a la consulta: qué grupos no tienen niños apuntados? a) Grupo[cod_gru] Niño[cod_gru] b) Grupo[cod_gru] (Grupo Niño)[cod_gru] c) Niño DONDE nulo(cod_gru) Grupo) [cod_gru] d) (Grupo MonitorGrupo) [cod_gru] Niño [cod_gru] 14) En un SGBD con independencia lógica y física qué consecuencias tendrá un cambio en el esquema físico relativo a la implementación de una estructura de datos? a) Deberá cambiarse en el esquema lógico la definición de dicha estructura. b) Ninguna. c) Deberá cambiarse la definición de dicha estructura de datos tanto en el esquema lógico, como en todos los esquemas externos que la incluyen. d) Deberá volverse a compilar los programas de aplicación que utilicen dicha estructura de datos, si la ligadura tiene lugar en tiempo de compilación.

BASES DE DATOS Junio 2003 Problemas Sea el siguiente esquema relacional de una base de datos para la gestión de las misiones espaciales a nivel mundial. ASTRONAUTA(cod_astro:d_cod, nombre:d_nom, dirección:d_dir, teléfono:d_tel, país:d_país, num_viajes:d_num) CP:{cod_astro} VNN:{nombre, teléfono} CIENTÍFICO(cod_cien:d_cod, especialidad:d_esp) CP:{cod_cien} CAj:{cod_cien} ASTRONAUTA NAVE(cod_nav:d_cod, nombre:d_nom, coste:d_coste) CP:{cod_nav} BASE(cod_base:d_cod, dirección:d_dir, país:d_país) CP:{cod_base} VNN:{país} VIAJE(cod_via:d_cod, cod_nav:d_cod, cod_base:d_cod, fecha_salida:d_fecha, fecha_llegada:d_fecha, nivel_éxito:d_nex) CP:{cod_via} VNN:{cod_nav, cod_base} CAj:{cod_nav} NAVE CAj:{cod_base} BASE TRIPULANTE(cod_astro:d_cod, cod_via:d_cod) CP:{cod_astro, cod_via} CAj:{cod_astro} ASTRONAUTA CAj:{cod_via } VIAJE Además, hay definida la siguiente RESTRICCIÓN DE INTEGRIDAD: CREATE ASSERTION NOT EXISTS (SELECT * FROM VIAJE V WHERE NOT EXISTS (SELECT * FROM TRIPULANTE T, ASTRONAUTA A, BASE B WHERE V.cod_via = T.cod_via AND T.cod_astro = A.cod_astro AND V.cod_base = B.cod_base AND B.país = A.país));

donde los atributos tienen el siguiente significado: Astronauta: cod_astro: código identificador del astronauta nombre: nombre del astronauta dirección: domicilio del astronauta teléfono: teléfono de localización del astronauta país: país de residencia del astronauta num_viajes: número total de misiones realizadas por el astronauta Científico: Nave: Base: Viaje: cod_cien: código identificador del científico especialidad: especialidad en la que destaca el científico cod_nav: código identificador de la nave nombre: nombre de la nave coste: valor económico de la nave cod_base: código identificador de la base de lanzamiento dirección: localización de la base de lanzamiento país: país en el que se encuentra ubicada la base de lanzamiento cod_via: código identificador del viaje. cod_nav: código identificador de la nave que va a ser lanzada cod_base: código identificador de la base de lanzamiento fecha_salida: fecha de lanzamiento fecha_llegada: fecha de regreso nivel_éxito: valor entre 0 (misión fracasada) y 5 (misión exitosa) Tripulante: cod_astro: código identificador del astronauta cod_via: código identificador del viaje en el que va a ser lanzado

DESPUÉS DE LEER ATENTAMENTE EL ESQUEMA RELACIONAL ANTERIOR, RESUELVA LOS SIGUIENTES EJERCICIOS. Resuelva las siguientes cuestiones sobre el esquema anterior: a) Puede haber algún científico de la base de datos que no sea astronauta? Justifique brevemente la respuesta. (0.25) b) Según el esquema de la base de datos (incluida la restricción de integridad), puede existir una base de la que no parta ningún viaje? Justifique brevemente la respuesta. (0.25) c) Según el esquema de la base de datos (incluida la restricción de integridad), puede un viaje no tener tripulación? Justifique brevemente la respuesta. (0.25) Escriba en SQL/92 las siguientes consultas: a) Obtener el número total de astronautas que no son científicos. (0.5) b) Obtener para cada nave cuántos viajes ha hecho. Incluir en el resultado el nombre de la nave y las naves que no han hecho ningún viaje. (1) c) Obtener el código de los viajes en los que todos los astronautas son científicos.(1) d) Obtener el nombre de las naves que sólo han partido desde una base. (1) e) Obtener el país desde cuyas bases ha habido más lanzamientos. (1.25) Se desea mantener el atributo derivado num_viajes de forma automática, de tal forma que siempre indique el número de viajes en los que ha participado el astronauta (según la información de la base de datos) a) Enumere las operaciones sobre la base de datos que afectan al atributo derivado.(0.5) b) Diseñe un disparador (trigger) de ORACLE8 para controlar alguna de las operaciones enumeradas en la cuestión anterior. (0.5)

CUESTIONARIO DE BASES DE DATOS 24/6/2003. SOLUCIONES Tipo Cuestionario A B C D 1 D C B A 2 A D C B 3 B A C D 4 B A D C 5 A D C B 6 A D C B 7 A D C B 8 C B A D 9 A D C B 10 C B A D 11 C B A D 12 A D C B 13 A/B D/A C/D B/C 14 D C B A PROBLEMAS DE BASES DE DATOS 24/6/2003. SOLUCIONES 1) a) NO, ya que CIENTÍFICO tiene una clave ajena cod_cien que hace referencia a ASTRONAUTA y dicha clave ajena tiene restricción de valor no nulo por ser la clave primaria de CIENTÍFICO. b) SÍ, ya que puede haber una tupla en BASE para la que no haya ninguna tupla en VIAJE que la referencie. c) NO, ya que la restricción de integridad adicional obliga a que siempre haya un miembro de la tripulación que sea del mismo país que la base. Esto implica necesariamente que todo viaje tiene al menos un tripulante. 2) a) SELECT COUNT(*) FROM ASTRONAUTA A WHERE A.cod_astro NOT IN (SELECT C.cod_cien FROM CIENTÍFICO); b) SELECT N.nombre, COUNT(V.cod_via) FROM NAVE N LEFT JOIN VIAJE V ON N.cod_nav = V.cod_nav GROUP BY N.nombre, N.cod_nav; (también se puede realizar con una concatenación normal y un UNION)

c) SELECT V.cod_via FROM VIAJE V WHERE NOT EXISTS (SELECT * FROM TRIPULANTE T WHERE V.cod_via = T.cod_via AND T.cod_astro NOT IN (SELECT cod_cien FROM CIENTÍFICO)); d) SELECT N.nombre FROM NAVE N WHERE N.cod_nav IN (SELECT V.cod_nav FROM VIAJE V WHERE NOT EXISTS (SELECT * FROM VIAJE V2 WHERE V2.cod_nav= N.cod_nav AND V2.cod_base <> V.cod_base)); También se podría hacer con un COUNT(DISTINCT cod_base). e) SELECT B.país FROM BASE B, VIAJE V WHERE B.cod_base = V.cod_base GROUP BY B.país HAVING COUNT(*) = (SELECT MAX(COUNT(*)) FROM BASE B2, VIAJE V2 WHERE B2.cod_base = V2.cod_base GROUP BY B2.país); (Se ignoran las fechas. Si se contemplan sólo los viajes pasados, también estaría bien). 3) a) INSERCIÓN en TRIPULANTE BORRADO en TRIPULANTE MODIFICACIÓN de cod_astro en TRIPULANTE Además: La modificación directa del atributo num_viajes de ASTRONAUTA debería limitarse a los triggers. La inserción de un nuevo astronauta podría controlarse de modo que siempre se empiece con num_viajes = 0. b) CREATE TRIGGER T1 AFTER INSERT ON TRIPULANTE FOR EACH ROW BEGIN UPDATE ASTRONAUTA A SET A.num_viajes = A.num_viajes + 1 WHERE A.cod_astro = :new.cod_astro; END; Esta solución se ha realizado ignorando el hecho de si el viaje se ha producido o es un viaje futuro. En el caso de que se tenga en cuenta las fechas, el resultado es más completo y también está bien.