Trabajo320152

Páginas: 3 (700 palabras) Publicado: 25 de noviembre de 2015
Tercer Trabajo de Bases de Datos 2 (13%)


1. (30%) Sean:

CREATE TABLE s(
sn VARCHAR(2) PRIMARY KEY,
snombre VARCHAR (10) NOT NULL,
situacion NUMBER(2) NOT NULL,
ciudad VARCHAR (10) NOT NULL);

CREATE TABLE p(
pn VARCHAR (2) PRIMARY KEY,
pnombre VARCHAR (15) NOT NULL,
color VARCHAR (15),
peso NUMBER(3) NOT NULL CHECK (peso >= 0),
ciudad VARCHAR (15) NOT NULL
);

CREATE TABLE sp(sn VARCHAR (2) REFERENCES s,
pn VARCHAR (2) REFERENCES p,
cantidad NUMBER(3) NOT NULL CHECK (cantidad > 0),
PRIMARY KEY (sn,pn)
);

Considere las consultas:

a)
SELECT *
FROM s
WHERE NOT EXISTS(SELECT *
FROM p
WHERE NOT EXISTS (SELECT *
FROMsp
WHERE sp.pn = p.pn
ANDsp.sn = s.sn
)
);

b)
SELECT *
FROM s
WHERE (SELECTCOUNT(*)
FROM sp
WHERE s.sn = sp.sn) = (SELECT COUNT(*)
FROM p);

c)
SELECT *
FROM s
WHERE sn IN (SELECT snFROM sp
GROUP BY sn
HAVING COUNT(*) = (SELECT COUNT(*)FROM p)
);

¿Son estas tres consultas equivalentes? Es decir, ¿generan los mismos resultados? Explique.

Para cada una de las tres consultasanteriores, haga pruebas con diversas muestras de datos (desarrolle programas PL/SQL para cargar estas tablas con datos aleatorios). Aumente gradualmente el tamaño de las muestras hasta llegar a volúmenes de...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS