Trabajo320152
Páginas: 3 (700 palabras)
Publicado: 25 de noviembre de 2015
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.