11 ejercicios corregidos de álgebra relacional

Esta página contiene ejercicios corregidos en Álgebra Relacional.

Álgebra relacional

Ejercicio 1

Estudiaremos álgebra relacional a través de una base de datos de ejemplo y un conjunto de consultas expresadas en esta base de datos. La base de datos considerada se describe en el siguiente diagrama:

JUGADOR (Apellido, Nombre, Edad, Nacionalidad)

REUNIÓN (Nombre del ganador, Nombre del perdedor, Ubicación del torneo, Año, Puntuación)

GANAR (Nombre del jugador, Ubicación del torneo, Año, Clasificación, Bonificación, Nombre del patrocinador)

PATROCINADOR (Nombre, Lugar del Torneo, Año, Dirección, Contribución Mt)

La relación JUGADOR contiene a todos los jugadores con licencia.

La relación ENCUENTRO describe para cada torneo, el conjunto π de encuentros entre dos jugadores (un ganador y un perdedor). La relación también describe la puntuación obtenida en cada reunión. Se hacen las siguientes suposiciones sobre los torneos:

  • dos jugadores solo se enfrentan una vez en un torneo,
  • un jugador puede ganar contra varios otros jugadores en un torneo,
  • un jugador puede perder varias veces en un torneo,
  • un jugador participa en uno o más torneos.

La relación GAIN contiene los bonos y patrocinios de jugadores que ya han participado en un torneo. Cualquiera que sea el resultado de un jugador, recibe un único bono por torneo (por lo que sólo tiene una ganancia por torneo), cuyo importe está correlacionado con el rango que ocupa en ese torneo.

La relación PATROCINADOR contiene las referencias de los patrocinadores y el importe de su aportación a cada torneo.

Exprese las siguientes consultas sobre esta base de datos utilizando álgebra relacional. Dé las expresiones funcionales y los árboles algebraicos correspondientes (es decir, gráficas de operadores relacionales).

R1: Nombre y bonificaciones de los jugadores patrocinados por Peugeot entre 1985 y 1990.

R2: Nombre y edad de los jugadores que participaron en el torneo de Roland Garros 1989.

R3: Nombre y nacionalidad de los jugadores patrocinados por Peugeot y que hayan ganado al menos un partido en Roland Garros.

R4: Nombre y nacionalidad de los jugadores que participaron tanto en el torneo de Roland Garros como en el torneo de Wimbledon en 1985.

R5: Nombre de los jugadores que tienen todos sus bonos de torneos de Roland Garros superiores a 1MF.

R6: Nombre, apellidos, edad y nacionalidad de los jugadores que participaron en todos los Roland Garros.

Ejercicio 2

Traduce, utilizando una o dos frases al francés, el significado de las siguientes preguntas algebraicas:

a) Unirse (Unirse (Div (REUNIÓN {Nombre del ganador, Nombre del perdedor, Lugar del torneo, Año}, REUNIÓN {Lugar del torneo, Año}),    JUGADOR/NombreGanador = Nombre),  JUGADOR / NombrePerdedor = Apellido){NombreGanador,Nombre,ApellidoPerdedor,Nombre}

b) diferencia(Unirse(REUNIÓN{LoseName}, JUGADOR{Apellido, Nombre} / Apellido = LoserName),  Unirse(REUNIÓN {NombreWinner},     JUGADOR{Apellido, Nombre} / Apellido = Nombre del ganador)).

En francés, las consultas algebraicas propuestas se parafrasean de la siguiente manera:

Para) Nombre y nombre de las parejas de jugadores que se enfrentan en todos los torneos y el primero siempre ha ganado al segundo.

B) Nombre y apellidos de los jugadores que siempre han perdido.

Ejercicio 3

Da la expresión algebraica de la división.

R(X,Y) / S(Y) = piX (R) – piX ((SxpiX (R) – R).

Ejercicio 4

Considere la siguiente base:

álgebra relacional

¿Cuáles son las siguientes expresiones?

álgebra relacional

Ejercicio 5

Ejercicio 3 Consideramos las siguientes relaciones:

PERSONA (CIN, NOMBRE, Nombre, Dirección)

Coche (Tarjeta Gris, CIN, Modelo)

Motocicleta (NCarteGrise, CIN, Modelo)

Escribe las expresiones que representan:

1. ¿Mostrar a las personas que poseen un automóvil pero no una motocicleta?

2. ¿Mostrar a las personas que poseen un automóvil y una motocicleta?

3. ¿Mostrar a personas que no tienen coche ni moto?

Ejercicio 6

Considere el esquema de la siguiente base de datos de la biblioteca:

Estudiante(NumEtd,ApellidoEtd,NombreEdt,DirecciónAndd)
Libro (Núm de libro, Título de libro, Núm de autor, Núm de editor, Núm de tema, Año de edición)
Autor(Número de autor,Nombre de autor,Dirección de autor)
Editor (Núm. del editor, Nombre del editor, Dirección del editor)
Tema (Núm de tema, Título de tema)
Listo(EtdNum,BookNum,ReadyDate,ReturnDate)

Claves primarias en negrita y claves foráneas en cursiva.

Escriba las siguientes consultas en lenguaje algebraico:

1. El nombre, nombre y dirección del estudiante llamado 'Alami'

2. El número de autor 'Alami'

3. la lista de libros por autor número 121

4. libros por nombre de autor 'Alami'

5. el número del autor del libro 'cómo conseguir 20 en BDD'

6. el nombre y dirección del autor del libro 'cómo conseguir 20 en BDD'

7. Libros del autor 'Alami' publicados por la editorial 'Nul part'

8. libros del autor 'Alami' o 'Belhadj'

9. libros que nunca han sido prestados

Ejercicio 7

En el resto del tutorial, consideraremos los siguientes diagramas de relaciones con sus significados intuitivos:

CJH (CourseId, Day, Time) El curso cuyo identificador aparece en el primer componente de una tupla se realiza en el día especificado en el segundo componente, a la hora que aparece en el tercer componente.

CS (IdCours, IdSalle) El curso del primer componente se realiza en la sala indicada en el segundo componente.

ENA (EtudiantId, Nombre, Dirección) Los estudiantes cuyo identificador aparece como primer componente de una tupla tienen un nombre y una dirección que aparecen respectivamente en el segundo y tercer componente.

CEN (IdCours, IdEtudiant, Note) El estudiante del segundo componente obtuvo la calificación especificada en el tercer componente en el curso especificado en el primer componente.

Estos cuatro diagramas forman el diagrama de la base de datos que se utilizará para los ejercicios. A continuación se muestra un ejemplo de un posible valor actual para la base de datos.

álgebra relacional

álgebra relacional

álgebra relacional

1.7. Inspirándose en 1.5, demuestra que la división se puede obtener a partir de la diferencia, el producto cartesiano y la proyección.

Ejercicio 8

Utilizando las mismas tablas del ejercicio 7, exprese las siguientes consultas en lenguaje algebraico:

2.1. Indique los nombres de los estudiantes que toman el curso 'Algo'.

2.2. Da las calificaciones en 'Archi' a los estudiantes cuyo nombre es 'Titi'.

2.3. Indique los pares (día, hora) en los que la sala 'S1' está ocupada por un curso.

2.4. Proporcione las identificaciones de los estudiantes que solo tienen calificaciones 'A'

2.5. Dale la habitación donde está 'Toto' el lunes a las 9 am.

Ejercicio 9

Sobre las mismas bases del ejercicio 7 y las consultas del ejercicio 8.

3.1. Dibuje el árbol de expresión para la consulta 2.1, arrastre la restricción lo más bajo que pueda.

3.2. Dibuje el árbol de expresión para la consulta 2.5, arrastre las restricciones y proyecciones lo más bajo que pueda.

Ejercicio 10

Sean R y S las relaciones, donde los atributos A, B, C se definen en los dominios de las letras del alfabeto. Dé el resultado de las siguientes consultas:

álgebra relacional

Luego verifica las siguientes ecuaciones:

álgebra relacional

Las tres consultas están arriba, las 2 ecuaciones están mal, el resultado está abajo.

álgebra relacional

Ejercicio 11

Considere las dos tablas:

Relaciones con los empleados (EMP) 

EMP(ENO, ENOM, PROF, DATEEMB, SAL, COM, DNO) 

ENO: número de empleado, clave 

ENOM: nombre del empleado 

PROF: profesión (director no es una profesión) 

DATEEMB: fecha de contratación 

SAL: salario 

COMM: comisión (un empleado no puede tener comisión) 

DNO: número de departamento al que pertenece el empleado 

Relaciones de Departamentos (DEPT) 

DEPARTAMENTO(DNO, DNOM, DIR, CIUDAD) 

DNO: número de departamento, clave 

DNOM: nombre del departamento 

DIR: director de departamento 

CIUDAD: ubicación del departamento (ciudad)

Exprese las siguientes consultas en álgebra relacional y luego en SQL:

Consulta 1: proporcione todas las tuplas de DEPT.

Consulta 2: Devuelve todas las tuplas de EMP.

Solicitud 3: Indique los nombres y salarios de los empleados.

Solicitud 4: Indique las profesiones de los empleados (después de eliminar duplicados).

Solicitud 5: Dar las fechas de contratación de los técnicos.

Consulta 6: Realizar el producto cartesiano entre EMP y DEPT.

Consulta 7: Indique los nombres de los empleados y los nombres de su departamento.

Solicitud 8: Indique el número de empleados que trabajan en BOSTON.

Solicitud 9: Indique los nombres de los directores de los departamentos 1 y 3. Advertencia: ¡director no es una profesión!

Solicitud 10: proporcione los nombres de los empleados que trabajan en un departamento con al menos un ingeniero.

Solicitud 11: Indique el salario y el nombre de los empleados que ganan más de un (al menos un) ingeniero.

Solicitud 12: Indique el salario y el nombre de los empleados que ganan más que todos los ingenieros.

Solicitud 13: Indique los nombres de los empleados y los nombres de sus directores.

Consulta 14: Busque los nombres de los empleados con el mismo gerente que JIM. Tenga en cuenta: un empleado puede ser director de varios departamentos.