PROVEEDOR (id_proveedor, nombre, categoria, ciudad) ARTICULO (id_articulo, descripción, ciudad, precio) CLIENTE (id_cliente, nombre, ciudad) PEDIDO (id_pedido, id_proveedor, id_articulo, id_cliente, cantidad, precio_total) PROVEE (id_proveedor, id_articulo) a. Hallar el código de los proveedores que proveen el artículo 146. SQL SELECT PROVEE.ID_PROVEEDOR FROM PROVEE WHERE A.ID_ARTICULO = 146 ALGEBRA b. Hallar los clientes que solicitan artículos provistos por el proveedor 15. SQL SELECT PEDIDO.ID_CLIENTE FROM PEDIDO WHERE PEDIDO.ID_PROVEEDOR=15 ALGEBRA c. Hallar los clientes que solicitan algún artículo provisto por proveedores cON categoría mayor que 4. SQL SELECT Pe.ID_CLIENTE FROM PEDIDO Pe JOIN PROVEEDOR P ON P.ID_PROVEEDOR=Pe.ID_PROVEEDOR WHERE P.CATEGORIA>40 ALGEBRA ( ) ID_ARTICULO WHERE C. SQL SELECT PE.ID_PEDIDO FROM CLIENTE C JOIN PEDIDO PE ON C.ID_CLIENTE=PE.CIUDAD=”ROSARIO” AND AR.ID_ARTICULO=PE.ID_CLIENTE=Pe.ID_PEDIDO FROM PEDIDO Pe JOIN CLIENTE C ON C.CIUDAD=”ROSARIO” ALGEBRA ( ) e.ID_CLIENTE JOIN ARTICULO AR ON AR. Hallar los pedidos realizados por clientes de la ciudad de Rosario.ID_CLIENTE WHERE C. Hallar los pedidos en los que un cliente de Rosario solicita artículos producidos en la ciudad de Mendoza.CIUDAD=”MENDOZA” ALGEBRA ( ( ) ) . SQL SELECT Pe.d. ID_PEDIDO FROM PEDIDO WHERE PEDIDO.ID_CLIENTE=30) ALGEBRA ( ) .ID_CLIENTE=23 AND ID_ARTICULO NOT IN (SELECT PEDIDO.ID_PEDIDO FROM PEDIDO WHERE PEDIDO. Hallar los pedidos en los que el cliente 23 solicita artículos no pedidos por el cliente 30. SQL SELECT PEDIDO.f. ID_CLIENTE ALGEBRA ( ) ( ) . SQL SELECT DISTINCT PR.g.ID_CLIENTE=PE.ID_PROVEEDOR JOIN CLIENE C ON C. C.CIUDAD. Hallar los pares de ciudades (ciudad1.CIUDAD FROM PROVEEDOR PR JOIN PEDIDO PE ON PR. tales que un proveedor de la ciudad1 provee artículos pedidos por clientes de la ciudad2. ciudad2).ID_PROVEEDOR=PE. DESCRIPCION=”CUADERNO”) ALGEBRA ( ) ( ( ) ) .ID_PROVEEDOR JOIN ARTICULO A ON A.CATEGORIA FROM PROVEEDOR P JOIN PROVEE PR ON P.ID_ARTICULO WHERE A. SQL SELECT P. Hallar el nombre de los proveedores cuya categoría sea mayor que la de todos los proveedores que proveen el artículo Cuaderno.ID_PROVEEDOR=PR.NOMBRE.ID_ARTICULO=PR.h. P.CATEGORIA FROM PROVEEDOR P WHERE CATEGORIA > ALL (SELECT P. CIUDAD=”SALTA”) ALGEBRA ( ) ( ) ( ) .ID_ARTICULO WHERE C.ID_ARTICULO=A.ID_CLIENTE JOIN ARTICULO A ON P.ID_CLIENTE JOIN ARTICULO A ON P.PRECIO = ANY (SELECT MAX (A.ID_CLIENTE=C. Hallar los proveedores que proveen el artículo más caro que haya sido comprado alguna vez por un cliente de la ciudad de Salta.ID_ARTICULO WHERE C.CIUDAD=”SALTA” GROUP BY P.ID_PROVEEDOR HAVING A.ID_PROVEEDOR FROM CLIENTE C JOIN PEDIDO P ON P.ID_CLIENTE=C.PRECIO) FROM CLIENTE C JOIN PEDIDO P ON P.i. SQL SELECT P.ID_ARTICULO=A. Hallar los clientes que han pedido 2 o más artículos distintos.ID_CLIENTE FROM CLIENTE C JOIN PEDIDO P ON P. SQL SELECT C.j.ID_ARTICULO=P.ID_CLIENTE=C.ID_CLIENTE JOIN ARTICULO A ON A.ID_ARTICULO)>=2 ALGEBRA ( ) ( ) ( ) .ID_ARTICULO GROUP BY C.ID_CLIENTE HAVING COUNT (DISTINCT A. CIUDAD=”CORRIENTES” AND A.ID_PROVEEDOR C.k. Hallar los proveedores que no tienen ningún pedido en los que el cliente es de la ciudad de Corrientes y el artículo es producido en San Juan.ID_CLIENTE JOIN ARTICULO A ON A.ID_CLIENTE=C.ID_PROVEEDOR FROM PROVEEDOR PR WHERE NOT EXISTS (SELECT * FROM PEDIDO P JOIN CLIENTE C ON P.CIUDAD=”SAN JUAN”) ALGEBRA ( ) ( ) ( ) .ID_ARTICULO=P.ID_ARTICULO WHERE PR. SQL SELECT P.ID_PROVEEDOR=P. ID_ARTICULO) FROM PROVEE P GROUP BY P. COUNT (A. SQL SELECT P.ID_PROVEEDOR.ID_PROVEEDOR ALGEBRA ( ) .l. Hallar la cantidad de artículos diferentes que sON provistos por cada uno de los proveedores de la base de datos. fecha_desde. descripción) PLANTA (id_planta. descripción.Ejercicio 2 Sea el siguiente esquema de base de datos relaciONal: EMPLEADO (id_EMPLEADO.ID_PLANTA WHERE P. id_EMPLEADO. id_funciON) /* FunciONes que cada EMPLEADO está en cONdiciONes de realizar */ ORGANIZACIÓN (id_planta. localidad2. antigüedad) FUNCION (id_funcion. localidad) TAREA (id_EMPLEADO. distancia) /* Todas las combinaciONes posibles entre localidades distintas */ a.ID_EMPLEADO=T.ID_PLANTA=T. if_funciON) /* FunciONes previstas como necesarias para el funciONamiento de la planta */ TRABAJA (id_trabaja. id_planta.ID_EMPLEADO JOIN PLATAN P ON P. fecha_hasta) /* Los EMPLEADOs que trabajan actualmente en cada planta tienen null en fecha_hasta */ DISTANCIA (localidad1.ID_EMPLEDO FROM EMPLEADO E JOIN TRABAJA T ON E. SQL SELECT E.LOCALIDAD<>”BAHÍA BLANCA” ALGEBRA ( ) ( ) ( ) . nombre. Listar el nombre de los EMPLEADOs que no trabajan en Bahía Blanca. localidad. domicilio. ID_PLANTA WHERE T.ID_FUNCION FROM EMPLEADO E JOIN TAREA T ON E.LOCALIDAD=”SANTA FE” AND T.ID_EMPLEADO=T.ID_FUNCION FROM EMPLEADO E JOIN TAREA T ON E.ID_PLANTA WHERE P.ID_PLANTA=O.ID_PLANTA=O.ID_FUNCIO NOT IN (SELECT O.LOCALIDAD=”SANTA FE” NOT EXIST (SELECT * FROM PLANTA P JOIN ORGANIZACIÓN O ON P.LOCALIDAD=”PARANÁ”) SELECT T.ID_EMPLEADO=T.LOCALIDAD=”PARANÁ”) ALGEBRA ( ( ) ) . Listar las funciones que sean desempeñadas por un EMPLEADO de Santa Fe y que no sean requeridas en una planta de Paraná.b.ID_FUNCION=O. SQL SELECT T.ID_EMPLEADO WHERE E.ID_FUCION FROM PLANTA P JOIN ORGANIZACIÓN O ON O.ID_FUNCION AND P.ID_EMPLEADO WHERE E. O.id_funcion = O.nombre.id_plata HAVING COUNT (*) = (SELECT COUNT (id_planta) FROM PLANTA)) ALGEBRA ( ) ( ( ) ) .apellido FROM “Organizacion” O.c.id_empledo GRUOP BY E.apellido. “Tarea” T.nombre. E. “Empleado” E WHERE T.id_funcion AND E.id_empleado=T. SQL SELECT E. Listar los empleados que estén en condiciones de cumplir una función cualquiera en cada una de las plantas. E. “Trabaja” T. Listar la cantidad de empleados por planta y el porcentaje que representa sobre el total de empleados de la empresa.id_empleado AND T.id_planta. “Planta” P WHERE E. E.id_empleado .id_empleado) FROM “Empleado” E. SQL SELECT P.d.id_planta GROUP BY P.id_planta=P. COUNT (E.id_empleado = T.id_planta.