Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

[SOLUCIONADO] Problema de Algebra relacional

Estas en el tema de Problema de Algebra relacional en el foro de Bases de Datos General en Foros del Web. Hola. Tengo un problema de álgebra relacional que no se como resolver. Dadas las siguientes entidades, obtener los datos de los proveedores que suministran solamente ...
  #1 (permalink)  
Antiguo 09/02/2016, 10:31
Avatar de leodp77  
Fecha de Ingreso: marzo-2013
Mensajes: 39
Antigüedad: 11 años, 7 meses
Puntos: 2
Problema de Algebra relacional

Hola.
Tengo un problema de álgebra relacional que no se como resolver.

Dadas las siguientes entidades, obtener los datos de los proveedores que suministran solamente a un proyecto.

Proveedor (nombre, teléfono, localidad)
Proyecto (código, nombre)
Articulo (código, nombre)
Compras (nombre_proveedor, código_proyecto, código_articulo, cantidad)

Es posible resolverlo con álgebra relacional? En SQL se resuelve con un group by having count()=1
__________________
"La mejor forma de obtener información correcta de los foros de internet es enviar algo incorrecto y esperar las correcciones"
-- Matthew Austern
  #2 (permalink)  
Antiguo 09/02/2016, 17:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema de Algebra relacional

Cita:
Es posible resolverlo con álgebra relacional
SI, es posible. Pero esa es la parte que debes resolver tu.
AR solo se da cuando estudias en la universidad, por lo que lo que preguntas es una tarea o trabajo práctico, y eres tú el que debe resolverlo.
No hacemos tareas ajenas.

Si quieres una guía, eso si se puede, pero tendrás que mostrar lo que has resuelto hasta ahora. Como dije, podemos guiarte, pero no haremos la tarea por ti.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 09/02/2016, 18:51
Avatar de leodp77  
Fecha de Ingreso: marzo-2013
Mensajes: 39
Antigüedad: 11 años, 7 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

Etiquetas: algebra, relacional, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:54.