Essays.club - Ensayos gratis, notas de cursos, notas de libros, tareas, monografías y trabajos de investigación
Buscar

Ejercicios SQL y Algebra Relacional

Enviado por   •  10 de Noviembre de 2017  •  618 Palabras (3 Páginas)  •  1.216 Visitas

Página 1 de 3

...

EJERCICIO A RESOLVER

- Seleccionar los identificadores de componentes que se suministren para los artículos 'T1' y 'T2'.

Π numprov (σ numartic=”T1” (envios)) ∩ π numprov(σ numartic=”T2”(envios))

mysql> select numprov from envios where numartic like "T1" union select numprov from envios where numartic like "T2";

[pic 2]

- Seleccionar el identificador de proveedor y el número de envíos de componentes de color 'ROJO' llevados a cabo por cada proveedor.

Π (numprov) ƒ COUNT(*) numcompo ( Envíos * (σ Color = 'ROJO' (Componentes)) )

mysql> SELECT numprov, count(*) numcompo FROM envios WHERE numcompo IN (SELECT numcompo FROM componentes WHERE color = 'ROJO');

---------------------------------------------------------------

- Seleccionar los colores de componentes suministrados por el proveedor 'P1'.

Π color (Componentes * (σ numprov = 'P1' (Envíos)) )

mysql>SELECT DISTINCT color FROM componentes WHERE numcompo IN (SELECT DISTINCT numcompo FROM envios WHERE numprov = 'P1');

[pic 3]

- Seleccionar los datos de envío y nombre de ciudad de aquellos envíos que cumplan que el artículo, proveedor y componente son de la misma ciudad.

π numcompo, numartic, numprov, cantidad, ciudad (Artículos * ( Proveedores * ( Envíos * Componentes)))

SELECT e.*, c.ciudad FROM envios e, componentes c, articulos a, proveedores p WHERE e.numartic = a.numartic AND e.numcompo = c.numcompo AND e.numprov = p.numprov AND p.ciudad=c.ciudad AND p.ciudad = a.ciudad;[pic 4]

- Seleccionar los nombres de los componentes que son suministrados en una cantidad total superior a 500.

π cnombre (Componentes * (σ (S > 500)( π (numcompo) ƒ SUM(cantidad) S ( Envíos)) ) )

SELECT DISTINCT cnombre FROM componentes WHERE numcompo IN (SELECT numcompo FROM envios GROUP BY numcompo HAVING SUM(cantidad)> 500);

[pic 5]

6. Seleccionar los identificadores de proveedores que residan en COMITAN y no su ministren más de dos artículos distintos.

π numprov (σ ciudad='COMITAN' (Proveedores)) ∩ π numprov (σ (numcompo ƒ (numprov) ƒ COUNT(DISTINCT numartic) C ( Envíos) ) )

(SELECT numprov FROM proveedores WHERE ciudad=’COMITAN') MINUS (SELECT numprov FROM envios GROUP BY numprov HAVING COUNT (D

ISTINCT numartic) > 2);

7. Seleccionar los identificadores de artículos para los cuales todos sus componentes se fabrican en una misma ciudad.

π numartic (σ ( C = 1) (π (numartic) ƒ COUNT(DISTINCT ciudad) C (Componentes * Envíos ) ) )

SELECT numartic FROM envios e, componentes c WHERE e.numcompo = c.numcompo GROUP BY numartic HAVING COUNT(DISTINCT ciudad) = 1 ;

[pic 6]

8. Seleccionar los identificadores de artículos para los que se provean envíos de todos los componentes existentes en la base de datos.

π numartic ( Envíos ÷ π numcompo(Componentes))

SELECT numartic FROM Envios GROUP BY numartic HAVING COUNT(DISTINCT numcompo) = ( SELECT COUNT(*) FROM Componentes) ;

[pic 7]

9. Seleccionar los códigos de proveedor y artículo que suministran al menos dos componentes de color 'ROJO'.

Π numprov,numartic (σ (numcompo > 1)( π (numprov, numartic) ƒ COUNT(*) C ( Envíos * (σ color='ROJO' (Componentes))))

SELECT numprov, numartic FROM envios e,componentes c WHERE e.numcompo = c.numcompo AND c.color='ROJO' GROUP BY numprov, numartic;

[pic 8]

10. Propón tu mismo(a) consultas que puedan realizarse sobre esta base de datos de ejemplo. Intenta responderla, y si te parece un problema interesante o no estás seguro de su solución, puedes exponerlos en las clases prácticas para su resolución en grupo. (vale X 10 PUNTOS)

...

Descargar como  txt (5.5 Kb)   pdf (76.2 Kb)   docx (573.5 Kb)  
Leer 2 páginas más »
Disponible sólo en Essays.club