Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/02/2016, 18:51
Avatar de leodp77
leodp77
 
Fecha de Ingreso: marzo-2013
Mensajes: 39
Antigüedad: 11 años, 8 meses
Puntos: 2
Respuesta: Problema de Algebra relacional

Bien dicho. Igualmente buscaba que me guíen un poco, no que me den la solución, que por cierto, suelen dar en bandeja en el resto de temas.

Al final pude solucionarlo.

Tenemos esta tabla

Compras
nombre_proveedor codigo_proyecto
PROV1 PROY2
PROV2 PROY2
PROV2 PROY3
PROV1 PROY4
PROV3 PROY2

Como se ve, el proveedor que suministra solamente a un proyecto es PROV3

Para resolverlo en algebra relacional tenemos que pensar el ejercicio al revés:
Obtengo los proveedores que obtuvieron más de un proyecto

COMPRAS |X| COMPRAS
C1.nombre_proveedor=C2.nombre_proveedor
C1.codigo_proyecto.C2.codigo_proyecto

Esto devuelve:

Compras
nombre_proveedor codigo_proyecto nombre_proveedor codigo_proyecto
PROV1 PROY2 PROV1 PROY4
PROV2 PROY2 PROV2 PROY3
PROV2 PROY3 PROV2 PROY2
PROV1 PROY4 PROV1 PROY2

Los proveedores mostrados son los que suministran a mas de un proyecto

Si al universo de proveedores le sacamos aquellos que suministran a mas de un proyecto, nos quedan los proveedores que suministan a un solo proyecto.

∏ PROVEEDORES |X| (∏ PROVEEDORES - ( ∏ (COMPRAS |X| COMPRAS ) ) )
nombre_proveedor nombre_proveedor nombre_proveedor Θ
telefono
localidad

donde Θ = C1.nombre_proveedor=C2.nombre_proveedor ᴧ C1.codigo_proyecto.C2.codigo_proyecto.

La respuesta es PROV3, como dijimos al principio.
__________________
"La mejor forma de obtener información correcta de los foros de internet es enviar algo incorrecto y esperar las correcciones"
-- Matthew Austern