You are on page 1of 3

Explicar las siguientes operaciones

1 Producto cartesiano
2 Join
a. Inner join
b. Outer join
i. Left outer join
ii. Right outer join
iii. Full outer join

En base a lo siguiente:

Una película es grabada en muchos DVD´S a los cuales se les llama volúmenes, un volumen solo tiene una película,
pero hay volúmenes que no tienen película, las películas tienen un identificar específico de película y un titulo,
mientras que los volúmenes tienen un identificador de volumen y un nombre de proveedor.

PELICULA VOLUMEN
ID_ESPECIFICO VARCHAR(4) NOT NULL PK ID_VOLUMEN VARCHAR(4) NOT NULL PK
TITULO VARCHAR(40) NOT NULL ID_ESPECIFICO VARCHAR(4) NULL FK
NOMBRE_PROVEEDOR VARCHAR(4) NULL

PELICULA VOLUMEN
ID_ESPECIFICO(PK) TITULO NO_VOLUMEN(PK) ID_ESPECIFICO(FK) NOMBRE_PROVEEDOR
10 SEÑOR DE LOS A I 100 10 PELICULAS SA
20 SEÑOR DE LOS A II 101 10 PELICULAS PATITO
30 GODZILLA 102 null PELICULAS SA
40 CAPITAN AMERICA 103 30 PELICULAS FUTURO
104 null PELICULAS SA

CREATE DATABASE PCART_INT


INSERT INTO PELICULA
GO
VALUES('10','SEÑOR DE LOS A I'),
USE PCART_INT
('20', 'SEÑOR DE LOS A II'),
GO
('30','GODZILLA'),
('40','CAPITAN AMERICA')
CREATE TABLE PELICULA (
ID_ESPECIFICO CHAR(4) NOT NULL PRIMARY KEY,
INSERT INTO VOLUMEN
TITULO VARCHAR(40) NOT NULL)
VALUES('100','10','PELICULAS SA'),
('101','10','PELICULAS PATITO'),
CREATE TABLE VOLUMEN (
('102',NULL,'PELICULAS SA'),
NO_VOLUMEN CHAR(4) NOT NULL PRIMARY KEY,
('103','30','PELICULAS FUTURO'),
ID_ESPECIFICO CHAR(4) NULL,
('104', NULL,'PELICULAS SA')
NOMBRE_PROVEEDOR VARCHAR(40) NULL)
GO
ALTER TABLE VOLUMEN
ADD FOREIGN KEY (ID_ESPECIFICO)
REFERENCES PELICULA(ID_ESPECIFICO)

GO
PRODUCTO CARTESIANO. Es una operación que resulta de relacionar conjuntos en pares ordenados, donde todos los
elementos del primer conjunto (tabla) se relacionan con todos los elementos del segundo conjunto (tabla), generando renglones
resultantes de todas las combinaciones posibles entre las tablas.

SELECT PELICULA.ID_ESPECIFICO, TITULO, NO_VOLUMEN, VOLUMEN.ID_ESPECIFICO, NOMBRE_PROVEEDOR


FROM PELICULA, VOLUMEN

El resultado es el siguiente:

ID_ESPECIFICO(PK) TITULO NO_VOLUMEN(PK) ID_ESPECIFICO(FK) NOMBRE_PROVEEDOR


10 SEÑOR DE LOS A I 100 10 PELICULAS SA
10 SEÑOR DE LOS A I 101 10 PELICULAS PATITO
10 SEÑOR DE LOS A I 102 null PELICULAS SA
10 SEÑOR DE LOS A I 103 30 PELICULAS FUTURO
10 SEÑOR DE LOS A I 104 null PELICULAS SA
20 SEÑOR DE LOS A II 100 10 PELICULAS SA
20 SEÑOR DE LOS A II 101 10 PELICULAS PATITO
20 SEÑOR DE LOS A II 102 null PELICULAS SA
20 SEÑOR DE LOS A II 103 30 PELICULAS FUTURO
20 SEÑOR DE LOS A II 104 null PELICULAS SA
30 GODZILLA 100 10 PELICULAS SA
30 GODZILLA 101 10 PELICULAS PATITO
30 GODZILLA 102 null PELICULAS SA
30 GODZILLA 103 30 PELICULAS FUTURO
30 GODZILLA 104 null PELICULAS SA
40 CAPITAN AMERICA 100 10 PELICULAS SA
40 CAPITAN AMERICA 101 10 PELICULAS PATITO
40 CAPITAN AMERICA 102 null PELICULAS SA
40 CAPITAN AMERICA 103 30 PELICULAS FUTURO
40 CAPITAN AMERICA 104 null PELICULAS SA

JOIN. Es una operación de bases de datos que corresponde a una intersección de tablas, considerando a las tablas como
conjuntos, y se divide de la siguiente manera:

 INNER JOIN
 OUTER JOIN

INNER JOIN. Es una operación que relaciona dos tablas generando renglones resultantes solo para los casos en donde hay
coincidencia de valores para las columnas que hacen intersección entre tablas.

SELECT PELICULA.ID_ESPECIFICO, TITULO, NO_VOLUMEN, VOLUMEN.ID_ESPECIFICO, NOMBRE_PROVEEDOR


FROM PELICULA, VOLUMEN
WHERE PELICULA.ID_ESPECIFICO = VOLUMEN.ID_ESPECIFICO
O
SELECT PELICULA.ID_ESPECIFICO, TITULO, NO_VOLUMEN, VOLUMEN.ID_ESPECIFICO, NOMBRE_PROVEEDOR
FROM PELICULA INNER JOIN VOLUMEN
ON PELICULA.ID_ESPECIFICO = VOLUMEN.ID_ESPECIFICO

El resultado es el siguiente:

ID_ESPECIFICO(PK) TITULO NO_VOLUMEN(PK) ID_ESPECIFICO(FK) NOMBRE_PROVEEDOR


10 SEÑOR DE LOS A I 100 10 PELICULAS SA
10 SEÑOR DE LOS A I 101 10 PELICULAS PATITO
30 GODZILLA 103 30 PELICULAS FUTURO
OUTER JOIN. Es una operación que relaciona dos tablas generando renglones resultantes tanto para los casos en donde hay
coincidencia de valores para las columnas que hacen intersección entre tablas y también para los que no hacen coincidencia, pero
dejando valores nulos en aquellas columnas que “debieran” tener un valor pero por no existir coincidencia no hay valor.

Se divide en LEFT OUTER JOIN, RIGHT OUTER JOIN y FULL OUTER JOIN, debido a que dependiendo del lado en el que se
empiece la construcción de la operación varia el resultado de renglones resultantes en cuanto al producto.

LEFT OUTER JOIN. La operación se inicia en la tabla que está del lado izquierdo de la cláusula OUTER JOIN

SELECT PELICULA.ID_ESPECIFICO, TITULO, NO_VOLUMEN, VOLUMEN.ID_ESPECIFICO, NOMBRE_PROVEEDOR


FROM PELICULA LEFT OUTER JOIN VOLUMEN
ON PELICULA.ID_ESPECIFICO = VOLUMEN.ID_ESPECIFICO

El resultado es el siguiente:

ID_ESPECIFICO(PK) TITULO NO_VOLUMEN(PK) ID_ESPECIFICO(FK) NOMBRE_PROVEEDOR


10 SEÑOR DE LOS A I 100 10 PELICULAS SA
10 SEÑOR DE LOS A I 101 10 PELICULAS PATITO
20 SEÑOR DE LOS A II null null null
30 GODZILLA 103 30 PELICULAS FUTURO
40 CAPITAN AMERICA null null null

RIGHT OUTER JOIN. La operación se inicia en la tabla que está del lado derecho de la cláusula OUTER JOIN

SELECT PELICULA.ID_ESPECIFICO, TITULO, NO_VOLUMEN, VOLUMEN.ID_ESPECIFICO, NOMBRE_PROVEEDOR


FROM PELICULA RIGHT OUTER JOIN VOLUMEN
ON PELICULA.ID_ESPECIFICO = VOLUMEN.ID_ESPECIFICO

El resultado es el siguiente:

ID_ESPECIFICO(PK) TITULO NO_VOLUMEN(PK) ID_ESPECIFICO(FK) NOMBRE_PROVEEDOR


10 SEÑOR DE LOS A I 100 10 PELICULAS SA
10 SEÑOR DE LOS A I 101 10 PELICULAS PATITO
null null 102 null PELICULAS SA
103 30 103 30 PELICULAS FUTURO
null null 104 null PELICULAS SA

FULL OUTER JOIN. La operación se inicia en la tabla que está del lado izquierdo de la cláusula OUTER JOIN y al terminar con esa
tabla reinicia la construcción con la tabla del lado derecho sin repetir los renglones que si tienen coincidencia de valores

SELECT PELICULA.ID_ESPECIFICO, TITULO, NO_VOLUMEN, VOLUMEN.ID_ESPECIFICO, NOMBRE_PROVEEDOR


FROM PELICULA FULL OUTER JOIN VOLUMEN
ON PELICULA.ID_ESPECIFICO = VOLUMEN.ID_ESPECIFICO

El resultado es el siguiente:

ID_ESPECIFICO(PK) TITULO NO_VOLUMEN(PK) ID_ESPECIFICO(FK) NOMBRE_PROVEEDOR


10 SEÑOR DE LOS A I 100 10 PELICULAS SA
10 SEÑOR DE LOS A I 101 10 PELICULAS PATITO
20 SEÑOR DE LOS A II null null null
30 GODZILLA 103 30 PELICULAS FUTURO
40 CAPITAN AMERICA null null null
null null 102 null PELICULAS SA
null null 104 null PELICULAS SA

You might also like