Anda di halaman 1dari 15

Ayudanta 3 Ayudanta 3

Base de Datos. Base de Datos.


Felipe Cano O.
facano@uc.cl
Ejercicio 1: Ejercicio 1:
Dado el modelo E-R:
Determine el modelo relacional.
Ejercicio 1: Ejercicio 1:
Modelo Relacional:
persona(id_conductor, nombre, direccin)
coche(matrcula, ao, modelo, id_dueo) coche(matrcula, ao, modelo, id_dueo)
accidente(nmero_parte, lugar, fecha)
participa(matrcula_coche, parte_accidente,
importe_daos)
Ejercicio 1: Ejercicio 1:
Vamos con un poco de SQL ahora
Ejercicio 2: Ejercicio 2:
Dado el siguiente modelo relacional:
Determine las siguientes consultas utilizando
algebra relacional.
Ejercicio 2 Ejercicio 2
Mostrar el nombre y el salario de todos los
empleados que no son pilotos.
Ejercicio 2 Ejercicio 2
Mostrar el nombre y el salario de todos los
empleados que no son pilotos.
<nombreEmpleado, Salario> (Empleado <idEmpleado,
nombreEmpleado, Salario>(Empleado |><|Certificado))
La idea, es obtener los pilotos de Empleado, y con ellos, hacerle una
diferencia de conjuntos a la totalidad de Empleado, para poder obtener
los elementos que no son pilotos y con ello hacer las proyecciones
pertinentes.
Ejercicio 2 Ejercicio 2
Lista los identificadores de todos los aviones que
pueden ser usados en vuelos directos desde Bonn
hacia Madrid (suponga distancias nicas).
Ejercicio 2 Ejercicio 2
Lista los identificadores de todos los aviones que
pueden ser usados en vuelos directos desde Bonn
hacia Madrid (suponga distancias nicas).
<idAvion> (Avion |><| Distancia=distanciaVuelo <origen=Bonn & <idAvion> (Avion |><| Distancia=distanciaVuelo <origen=Bonn &
Destino=madrid> (Vuelo))
En este caso usamos la distancias nicas como identificadores
para cruzar las tablas y obtener la informacin pedida.
Ejercicio 2 Ejercicio 2
Mostrar los nombres de los pilotos que pueden
operar aviones con una distancia de vuelo mayor a
3000 millas, pero que no son certificados en
ningn avin Boeing.
Ejercicio 2 Ejercicio 2
Mostrar los nombres de los pilotos que pueden
operar aviones con una distancia de vuelo mayor a
3000 millas, pero que no son certificados en
ningn avin Boeing.
(Empleado ( Certificado ( <nombreEmpleado> (Empleado |><|( Certificado |><|(
<distanciaVuelo>3000 & marcaAvion<>Boeing> (Avion))))
Para esta consulta, simplemente hay que juntar con Joins la relaciones,
para las tuplas que cumplan la condicin de la seleccin sobre Avion.
Ejercicio 2 Ejercicio 2
Lista los nmeros de vuelo que pueden ser
piloteados por algn piloto cuyo salario es mayor
que 5000.
Ejercicio 2 Ejercicio 2
Lista los nmeros de vuelo que pueden ser
piloteados por algn piloto cuyo salario es mayor
que 5000.
<NroVuelo> (Vuelo|><|Distancia=distanciaVuelo ( Avion|><|
(Certificado (Empleado)))) (Certificado |><| <salario>5000>(Empleado))))
Este caso lo resolvemos como el anterior, usando Joins sobre tuplas
que cumplen las condiciones pedidas de salarios en Empleados.
Ejercicio 2 Ejercicio 2
Mostrar el cdigo del empleado que percibe el
salario mas alto.
Ejercicio 2 Ejercicio 2
Mostrar el cdigo del empleado que percibe el
salario mas alto.
<idEmpleado> (<idEmpleado, Salario>(Empleado) -
<E.idEmpleado, E.Salario> (<E.salario<E.salario>(Empleado X
Empleado)))) Empleado))))
La idea en ste ejercicio es realizar un producto cartesiano entre
Empleado consigo mismo, pero dejando solo aquellas tuplas en que
salario de mas a la izquierda es mayor al salario de la derecha. Con ello
nos aseguramos que el mximo salario nunca quede en la derecha (por
la desigualdad estricta), lo que nos permite hacer resta de conjuntos
con Empleado para obtener el mximo, y con l obtenemos el id del
empleado que lo acompaa.

Anda mungkin juga menyukai