SQL 4

Post on 15-Feb-2016

44 views 0 download

description

Ingeniero Ricardo Cujar Rosero. SQL 4. 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. - PowerPoint PPT Presentation

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