SQL - Tema 4 - Información sobre Datos Agregados mediante las Funciones de Grupo
SQL 4
description
Transcript of SQL 4
SQL 4Ingeniero Ricardo Cujar Rosero
OPERACIÓN PRODUCTO CARTESIANO (X)
Es un operador primitivo y binario que toma como entrada dos relaciones y produce una nueva.
La estructura de la nueva relación tendrá la estructura correspondiente a la unión de las 2 relaciones de entrada.
Los registros serán la concatenación de cada una de las tuplas de la relación 1 con todas las tuplas de la relación 2.
A Ba1 b1 a2 b2
C D Ec1 d1 e1c2 d2 e2c3 d3 e3
A B C D Ea1 b1 c1 d1 e1a1 b1 c2 d2 e2a1 b1 c3 d3 e3a2 b2 c1 d1 e1a2 b2 c2 d2 e2a2 b2 c3 d3 e3
Sea R(A,B) Sea P(C,D, E)
R X P
EJEMPLO
cedula
nombre
123 Pepito Perez456 Tino Asprilla
cedula labor oficina123 Gerente OF 405456 Asesor Of 301
persona.cedula
persona.nombre
cargo.cedula
cargo.labor
cargo.oficina
123 Pepito Perez
123 Gerente OF 405
123 Pepito Perez
456 Asesor Of 301
456 Tino Asprilla
123 Gerente OF 405
456 Tino Asprilla
456 Asesor Of 301
persona(cedula,nombre)
cargo(cedula, labor, oficina)
R X P
IMPLEMENTACIÓN DEL PRODUCTO CARTESIANO EN SQL
select * from <relación 1>, <relación 2> select * from persona, cargo
La operación producto Cartesiano es binaria, si se realiza la ste. operación:
Select * from A,B,C,D Primero se hace AxB Luego (AxB)xC Luego (AxBxC)xD
EXPRESIONES ALGEBRAICAS CON PROYECCIÓN, RESTRICCIÓN Y PRODUCTO CARTESIANO
Visualizar el nombre y la labor del señor Tino Asprilla .
Πpersona.nombre,cargo,labor(б(persona.nombre=tino asprilla)(personaxcargo))
Primero se ejecuta la operación producto cartesiano (personax cargo) obteniendo el ste. resultado.persona.
cedulapersona.nombre
cargo.cedula
cargo.labor
cargo.oficina
123 Pepito Perez
123 Gerente OF 405
123 Pepito Perez
456 Asesor Of 301
456 Tino Asprilla
123 Gerente OF 405
456 Tino Asprilla
456 Asesor Of 301
Luego se realiza la operación restricción a la relación obtenida. б(persona.nombre=tino asprilla)
persona.cedula
persona.nombre
cargo.cedula
cargo.labor
cargo.oficina
456 Tino Asprilla
123 Gerente OF 405
456 Tino Asprilla
456 Asesor Of 301
Por último se realiza la tercera operación, la proyección de los atributos nombre y labor.
Πpersona.nombre,cargo,laborpersona.nombre
cargo.labor
Tino Asprilla
Gerente
Tino Asprilla
Asesor
SQL select persona.nombre, cargo.labor
from persona,cargo where persona.nombre=Tino Asprilla.
JOIN El Join es una operación binaria y
derivada del producto cartesiano. Toma dos relaciones y produce una
nueva concatenando las tuplas de la primera con las tuplas de la segunda que cumplan una condición determinada.
Es un producto cartesiano restringido.
Sea R(A,B,C) P (C,D,E)
R P(R.C=P.C)
A B Ca1 b1 c1a3 b3 c3
C D Ec1 d1 e1c2 d2 e2c3 d3 e3
R.A R.B R.C P.C P.D P.Ea1 b1 c1 c1 d1 e1a3 b3 c3 c3 d3 e3
SQL select * from R,P where R.C=P.C
EJEMPLO
cedula
nombre
123 Pepito Perez456 Tino Asprilla
cedula labor oficina123 Gerente OF 405456 Asesor Of 301
persona(cedula,nombre)
cargo(cedula, labor, oficina)
(persona.cedula=cargo.cedula)persona cargo
cedula
nombre cedula labor oficina
123 Pepito Perez
123 Gerente OF 405
456 Tino Asprilla
456 Asesor Of 301
SQL Select * from persona, cargo where
persona.cedula=cargo.cedula
EJEMPLO CON JOIN, PROYECCIÓN Y RESTRICCIÓN
Visualizar el nombre, cedula y la labor de pepito perez.
Select persona.nombre, persona.cedula, cargo.labor from persona, cargo where persona.nombre=pepito perez and persona.cedula=cargo.cedula
persona. nombre
persona. cedula
cargo. labor
Pepito Perez
123 Gerente