28/Marzo/2019 Algebra Relacional · Operaciones Unarias Operaciones Binarias Marco General AR -...

115
Introducci´ on Operaciones Unarias Operaciones Binarias ´ Algebra Relacional 28/Marzo/2019 ´ Algebra Relacional

Transcript of 28/Marzo/2019 Algebra Relacional · Operaciones Unarias Operaciones Binarias Marco General AR -...

IntroduccionOperaciones UnariasOperaciones Binarias

Algebra Relacional

28/Marzo/2019

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

Marco General

AR - Marco General

Algebra Relacional. Consiste de un conjunto de elementos con unas propiedadesoperacionales determinadas que se pueden realizar con los elementos de dichoconjunto y las propiedades matematicas que dichas operaciones poseen.

Especifica un lenguaje formal utilizado en el modelo relacional

Permite a usuarios especificar consultas sobre instancias de relaciones

El resultado de una consulta es una nueva relacion

Importancia.

1 Provee fundamento formal a las operaciones asociadas al modelorelacional

2 Base para implementar y optimizar queries en RDBMS3 Principales operaciones y funciones del los modulos internos de la mayorıa

de los sistemas relacionales estan basados en operaciones del AR

Tecnica. Procedural/axiomatico (a diferencia del Calculo Relacional que es detipo declarativo, aquı el orden de evaluacion de las expresiones importa).

Operadores. Unarios y Binarios: toman relaciones y el resultado son relaciones.

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

Marco General

AR - Marco General

Algebra Relacional. Consiste de un conjunto de elementos con unas propiedadesoperacionales determinadas que se pueden realizar con los elementos de dichoconjunto y las propiedades matematicas que dichas operaciones poseen.

Especifica un lenguaje formal utilizado en el modelo relacional

Permite a usuarios especificar consultas sobre instancias de relaciones

El resultado de una consulta es una nueva relacion

Importancia.

1 Provee fundamento formal a las operaciones asociadas al modelorelacional

2 Base para implementar y optimizar queries en RDBMS3 Principales operaciones y funciones del los modulos internos de la mayorıa

de los sistemas relacionales estan basados en operaciones del AR

Tecnica. Procedural/axiomatico (a diferencia del Calculo Relacional que es detipo declarativo, aquı el orden de evaluacion de las expresiones importa).

Operadores. Unarios y Binarios: toman relaciones y el resultado son relaciones.

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

Marco General

AR - Marco General

Algebra Relacional. Consiste de un conjunto de elementos con unas propiedadesoperacionales determinadas que se pueden realizar con los elementos de dichoconjunto y las propiedades matematicas que dichas operaciones poseen.

Especifica un lenguaje formal utilizado en el modelo relacional

Permite a usuarios especificar consultas sobre instancias de relaciones

El resultado de una consulta es una nueva relacion

Importancia.

1 Provee fundamento formal a las operaciones asociadas al modelorelacional

2 Base para implementar y optimizar queries en RDBMS3 Principales operaciones y funciones del los modulos internos de la mayorıa

de los sistemas relacionales estan basados en operaciones del AR

Tecnica. Procedural/axiomatico (a diferencia del Calculo Relacional que es detipo declarativo, aquı el orden de evaluacion de las expresiones importa).

Operadores. Unarios y Binarios: toman relaciones y el resultado son relaciones.

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

Marco General

AR - Marco General

Algebra Relacional. Consiste de un conjunto de elementos con unas propiedadesoperacionales determinadas que se pueden realizar con los elementos de dichoconjunto y las propiedades matematicas que dichas operaciones poseen.

Especifica un lenguaje formal utilizado en el modelo relacional

Permite a usuarios especificar consultas sobre instancias de relaciones

El resultado de una consulta es una nueva relacion

Importancia.

1 Provee fundamento formal a las operaciones asociadas al modelorelacional

2 Base para implementar y optimizar queries en RDBMS3 Principales operaciones y funciones del los modulos internos de la mayorıa

de los sistemas relacionales estan basados en operaciones del AR

Tecnica. Procedural/axiomatico (a diferencia del Calculo Relacional que es detipo declarativo, aquı el orden de evaluacion de las expresiones importa).

Operadores. Unarios y Binarios: toman relaciones y el resultado son relaciones.

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

Marco General

AR - Marco General

Algebra Relacional. Consiste de un conjunto de elementos con unas propiedadesoperacionales determinadas que se pueden realizar con los elementos de dichoconjunto y las propiedades matematicas que dichas operaciones poseen.

Especifica un lenguaje formal utilizado en el modelo relacional

Permite a usuarios especificar consultas sobre instancias de relaciones

El resultado de una consulta es una nueva relacion

Importancia.

1 Provee fundamento formal a las operaciones asociadas al modelorelacional

2 Base para implementar y optimizar queries en RDBMS3 Principales operaciones y funciones del los modulos internos de la mayorıa

de los sistemas relacionales estan basados en operaciones del AR

Tecnica. Procedural/axiomatico (a diferencia del Calculo Relacional que es detipo declarativo, aquı el orden de evaluacion de las expresiones importa).

Operadores. Unarios y Binarios: toman relaciones y el resultado son relaciones.

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - SELECT

Funcion. Selecciona un subconjunto de tuplas de una relacion que satisfacecierta condicion

Notacion. σ<condici on de selecci on>(R)

Ejemplo.EMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

σSexo=F (EMPLEADO)

DNI Nombre Sexo Salario33456234 Laura F $25.000,0045432345 Marina F $10.000,00

σSexo=F AND Salario>$15.000(EMPLEADO)

DNI Nombre Sexo Salario33456234 Laura F $25.000,00

Genera una particion horizontal de la relacion

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - SELECT

Funcion. Selecciona un subconjunto de tuplas de una relacion que satisfacecierta condicion

Notacion. σ<condici on de selecci on>(R)

Ejemplo.EMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

σSexo=F (EMPLEADO)

DNI Nombre Sexo Salario33456234 Laura F $25.000,0045432345 Marina F $10.000,00

σSexo=F AND Salario>$15.000(EMPLEADO)

DNI Nombre Sexo Salario33456234 Laura F $25.000,00

Genera una particion horizontal de la relacion

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - SELECT

Funcion. Selecciona un subconjunto de tuplas de una relacion que satisfacecierta condicion

Notacion. σ<condici on de selecci on>(R)

Ejemplo.EMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

σSexo=F (EMPLEADO)

DNI Nombre Sexo Salario33456234 Laura F $25.000,0045432345 Marina F $10.000,00

σSexo=F AND Salario>$15.000(EMPLEADO)

DNI Nombre Sexo Salario33456234 Laura F $25.000,00

Genera una particion horizontal de la relacion

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - SELECT

Funcion. Selecciona un subconjunto de tuplas de una relacion que satisfacecierta condicion

Notacion. σ<condici on de selecci on>(R)

Ejemplo.EMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

σSexo=F (EMPLEADO)

DNI Nombre Sexo Salario33456234 Laura F $25.000,0045432345 Marina F $10.000,00

σSexo=F AND Salario>$15.000(EMPLEADO)

DNI Nombre Sexo Salario33456234 Laura F $25.000,00

Genera una particion horizontal de la relacion

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - SELECT

Funcion. Selecciona un subconjunto de tuplas de una relacion que satisfacecierta condicion

Notacion. σ<condici on de selecci on>(R)

Ejemplo.EMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

σSexo=F (EMPLEADO)

DNI Nombre Sexo Salario33456234 Laura F $25.000,0045432345 Marina F $10.000,00

σSexo=F AND Salario>$15.000(EMPLEADO)

DNI Nombre Sexo Salario33456234 Laura F $25.000,00

Genera una particion horizontal de la relacion

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - SELECT

Funcion. Selecciona un subconjunto de tuplas de una relacion que satisfacecierta condicion

Notacion. σ<condici on de selecci on>(R)

Ejemplo.EMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

σSexo=F (EMPLEADO)

DNI Nombre Sexo Salario33456234 Laura F $25.000,0045432345 Marina F $10.000,00

σSexo=F AND Salario>$15.000(EMPLEADO)

DNI Nombre Sexo Salario33456234 Laura F $25.000,00

Genera una particion horizontal de la relacion

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - SELECT - Propiedades

Operador Unario. Se aplica a una sola relacion

Grado.

Grado(σc (R)) = Grado(R)

# tuplas. |σc (R)| ≤ |R|La fraccion de tuplas seleccionadas se denomina selectividad de la condicion

Conmutatividad. σc1 (σc2 (R)) = σc2 (σc1 (R))

Cascada de SELECTs. σc1 (σc2 (...σcn (R))) = σc1 AND c2 AND ... AND cn (R)

SQL. Se especifica tıpicamente en la clausula WHERE

Ejemplo. σSexo=F AND Salario>$15.000(EMPLEADO) se puede corresponder con:

SELECT *FROM EMPLEADOWHERE Sexo=F AND Salario>$15.000;

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - SELECT - Propiedades

Operador Unario. Se aplica a una sola relacion

Grado. Grado(σc (R)) = Grado(R)

# tuplas. |σc (R)| ≤ |R|La fraccion de tuplas seleccionadas se denomina selectividad de la condicion

Conmutatividad. σc1 (σc2 (R)) = σc2 (σc1 (R))

Cascada de SELECTs. σc1 (σc2 (...σcn (R))) = σc1 AND c2 AND ... AND cn (R)

SQL. Se especifica tıpicamente en la clausula WHERE

Ejemplo. σSexo=F AND Salario>$15.000(EMPLEADO) se puede corresponder con:

SELECT *FROM EMPLEADOWHERE Sexo=F AND Salario>$15.000;

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - SELECT - Propiedades

Operador Unario. Se aplica a una sola relacion

Grado. Grado(σc (R)) = Grado(R)

# tuplas.

|σc (R)| ≤ |R|La fraccion de tuplas seleccionadas se denomina selectividad de la condicion

Conmutatividad. σc1 (σc2 (R)) = σc2 (σc1 (R))

Cascada de SELECTs. σc1 (σc2 (...σcn (R))) = σc1 AND c2 AND ... AND cn (R)

SQL. Se especifica tıpicamente en la clausula WHERE

Ejemplo. σSexo=F AND Salario>$15.000(EMPLEADO) se puede corresponder con:

SELECT *FROM EMPLEADOWHERE Sexo=F AND Salario>$15.000;

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - SELECT - Propiedades

Operador Unario. Se aplica a una sola relacion

Grado. Grado(σc (R)) = Grado(R)

# tuplas. |σc (R)| ≤ |R|

La fraccion de tuplas seleccionadas se denomina selectividad de la condicion

Conmutatividad. σc1 (σc2 (R)) = σc2 (σc1 (R))

Cascada de SELECTs. σc1 (σc2 (...σcn (R))) = σc1 AND c2 AND ... AND cn (R)

SQL. Se especifica tıpicamente en la clausula WHERE

Ejemplo. σSexo=F AND Salario>$15.000(EMPLEADO) se puede corresponder con:

SELECT *FROM EMPLEADOWHERE Sexo=F AND Salario>$15.000;

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - SELECT - Propiedades

Operador Unario. Se aplica a una sola relacion

Grado. Grado(σc (R)) = Grado(R)

# tuplas. |σc (R)| ≤ |R|La fraccion de tuplas seleccionadas se denomina selectividad de la condicion

Conmutatividad.

σc1 (σc2 (R)) = σc2 (σc1 (R))

Cascada de SELECTs. σc1 (σc2 (...σcn (R))) = σc1 AND c2 AND ... AND cn (R)

SQL. Se especifica tıpicamente en la clausula WHERE

Ejemplo. σSexo=F AND Salario>$15.000(EMPLEADO) se puede corresponder con:

SELECT *FROM EMPLEADOWHERE Sexo=F AND Salario>$15.000;

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - SELECT - Propiedades

Operador Unario. Se aplica a una sola relacion

Grado. Grado(σc (R)) = Grado(R)

# tuplas. |σc (R)| ≤ |R|La fraccion de tuplas seleccionadas se denomina selectividad de la condicion

Conmutatividad. σc1 (σc2 (R)) = σc2 (σc1 (R))

Cascada de SELECTs. σc1 (σc2 (...σcn (R))) = σc1 AND c2 AND ... AND cn (R)

SQL. Se especifica tıpicamente en la clausula WHERE

Ejemplo. σSexo=F AND Salario>$15.000(EMPLEADO) se puede corresponder con:

SELECT *FROM EMPLEADOWHERE Sexo=F AND Salario>$15.000;

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - SELECT - Propiedades

Operador Unario. Se aplica a una sola relacion

Grado. Grado(σc (R)) = Grado(R)

# tuplas. |σc (R)| ≤ |R|La fraccion de tuplas seleccionadas se denomina selectividad de la condicion

Conmutatividad. σc1 (σc2 (R)) = σc2 (σc1 (R))

Cascada de SELECTs. σc1 (σc2 (...σcn (R))) = σc1 AND c2 AND ... AND cn (R)

SQL. Se especifica tıpicamente en la clausula WHERE

Ejemplo. σSexo=F AND Salario>$15.000(EMPLEADO) se puede corresponder con:

SELECT *FROM EMPLEADOWHERE Sexo=F AND Salario>$15.000;

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - SELECT - Propiedades

Operador Unario. Se aplica a una sola relacion

Grado. Grado(σc (R)) = Grado(R)

# tuplas. |σc (R)| ≤ |R|La fraccion de tuplas seleccionadas se denomina selectividad de la condicion

Conmutatividad. σc1 (σc2 (R)) = σc2 (σc1 (R))

Cascada de SELECTs. σc1 (σc2 (...σcn (R))) = σc1 AND c2 AND ... AND cn (R)

SQL. Se especifica tıpicamente en la clausula WHERE

Ejemplo. σSexo=F AND Salario>$15.000(EMPLEADO) se puede corresponder con:

SELECT *FROM EMPLEADOWHERE Sexo=F AND Salario>$15.000;

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT

Funcion. Selecciona un subconjunto de columnas de una relacion

Notacion. π<lista de atributos>(R)

Ejemplo.EMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πDNI,Salario (EMPLEADO)

DNI Salario20222333 $20.000,0033456234 $25.000,0045432345 $10.000,00

Genera una particion vertical de la relacion

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT

Funcion. Selecciona un subconjunto de columnas de una relacion

Notacion. π<lista de atributos>(R)

Ejemplo.EMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πDNI,Salario (EMPLEADO)

DNI Salario20222333 $20.000,0033456234 $25.000,0045432345 $10.000,00

Genera una particion vertical de la relacion

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT

Funcion. Selecciona un subconjunto de columnas de una relacion

Notacion. π<lista de atributos>(R)

Ejemplo.EMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πDNI,Salario (EMPLEADO)

DNI Salario20222333 $20.000,0033456234 $25.000,0045432345 $10.000,00

Genera una particion vertical de la relacion

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT

Funcion. Selecciona un subconjunto de columnas de una relacion

Notacion. π<lista de atributos>(R)

Ejemplo.EMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πDNI,Salario (EMPLEADO)

DNI Salario20222333 $20.000,0033456234 $25.000,0045432345 $10.000,00

Genera una particion vertical de la relacion

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT - Propiedades

Operador Unario. Se aplica a una sola relacion

Grado.

Grado(π<lista de atributos>(R)) = | < lista de atributos > |# tuplas. |π<lista de atributos>(R)| ≤ |R|. Remueve tuplas duplicadas de larelacion resultante

Ejemplo.EMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πSexo(EMPLEADO)

SexoMF

Conservacion # tuplas. En π<lista de atributos>(R), si < lista de atributos > essuper clave de R entonces |π<lista de atributos>(R)| = |R|

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT - Propiedades

Operador Unario. Se aplica a una sola relacion

Grado. Grado(π<lista de atributos>(R)) = | < lista de atributos > |

# tuplas. |π<lista de atributos>(R)| ≤ |R|. Remueve tuplas duplicadas de larelacion resultante

Ejemplo.EMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πSexo(EMPLEADO)

SexoMF

Conservacion # tuplas. En π<lista de atributos>(R), si < lista de atributos > essuper clave de R entonces |π<lista de atributos>(R)| = |R|

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT - Propiedades

Operador Unario. Se aplica a una sola relacion

Grado. Grado(π<lista de atributos>(R)) = | < lista de atributos > |# tuplas.

|π<lista de atributos>(R)| ≤ |R|. Remueve tuplas duplicadas de larelacion resultante

Ejemplo.EMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πSexo(EMPLEADO)

SexoMF

Conservacion # tuplas. En π<lista de atributos>(R), si < lista de atributos > essuper clave de R entonces |π<lista de atributos>(R)| = |R|

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT - Propiedades

Operador Unario. Se aplica a una sola relacion

Grado. Grado(π<lista de atributos>(R)) = | < lista de atributos > |# tuplas. |π<lista de atributos>(R)| ≤ |R|. Remueve tuplas duplicadas de larelacion resultante

Ejemplo.EMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πSexo(EMPLEADO)

SexoMF

Conservacion # tuplas. En π<lista de atributos>(R), si < lista de atributos > essuper clave de R entonces |π<lista de atributos>(R)| = |R|

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT - Propiedades

Operador Unario. Se aplica a una sola relacion

Grado. Grado(π<lista de atributos>(R)) = | < lista de atributos > |# tuplas. |π<lista de atributos>(R)| ≤ |R|. Remueve tuplas duplicadas de larelacion resultante

Ejemplo.EMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πSexo(EMPLEADO)

SexoMF

Conservacion # tuplas. En π<lista de atributos>(R), si < lista de atributos > essuper clave de R entonces |π<lista de atributos>(R)| = |R|

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT - Propiedades

Operador Unario. Se aplica a una sola relacion

Grado. Grado(π<lista de atributos>(R)) = | < lista de atributos > |# tuplas. |π<lista de atributos>(R)| ≤ |R|. Remueve tuplas duplicadas de larelacion resultante

Ejemplo.EMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πSexo(EMPLEADO)

SexoMF

Conservacion # tuplas. En π<lista de atributos>(R), si < lista de atributos > essuper clave de R entonces |π<lista de atributos>(R)| = |R|

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT - Propiedades

Operador Unario. Se aplica a una sola relacion

Grado. Grado(π<lista de atributos>(R)) = | < lista de atributos > |# tuplas. |π<lista de atributos>(R)| ≤ |R|. Remueve tuplas duplicadas de larelacion resultante

Ejemplo.EMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πSexo(EMPLEADO)

SexoMF

Conservacion # tuplas. En π<lista de atributos>(R), si < lista de atributos > essuper clave de R entonces |π<lista de atributos>(R)| = |R|

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT - Propiedades

Operador Unario. Se aplica a una sola relacion

Grado. Grado(π<lista de atributos>(R)) = | < lista de atributos > |# tuplas. |π<lista de atributos>(R)| ≤ |R|. Remueve tuplas duplicadas de larelacion resultante

Ejemplo.EMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πSexo(EMPLEADO)

SexoMF

Conservacion # tuplas.

En π<lista de atributos>(R), si < lista de atributos > essuper clave de R entonces |π<lista de atributos>(R)| = |R|

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT - Propiedades

Operador Unario. Se aplica a una sola relacion

Grado. Grado(π<lista de atributos>(R)) = | < lista de atributos > |# tuplas. |π<lista de atributos>(R)| ≤ |R|. Remueve tuplas duplicadas de larelacion resultante

Ejemplo.EMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πSexo(EMPLEADO)

SexoMF

Conservacion # tuplas. En π<lista de atributos>(R), si < lista de atributos > essuper clave de R entonces |π<lista de atributos>(R)| = |R|

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT - Propiedades (Cont.)

Conmutatividad.

πlista1(πlista2

(R)) = πlista1(R). lista1 ⊆ lista2, de lo contrario

lado izq. de la expresion es incorrecto. Conmutatividad no aplica a PROJECTEjemplo Conmutatividad.

EMPLEADODNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πSexo(πNombre,Sexo(EMPLEADO))

Nombre SexoDiego MLaura FMarina F

SexoMF

πNombre,Sexo(πSexo(EMPLEADO)) ¡NO ES POSIBLE!SQL. Se especifica tıpicamente en la clausula SELECT DISTINCTEjemplo. πSexo,Salario(EMPLEADO) se puede corresponder con:

SELECT DISTINCT Sexo, SalarioFROM EMPLEADO

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT - Propiedades (Cont.)

Conmutatividad. πlista1(πlista2

(R)) = πlista1(R). lista1 ⊆ lista2, de lo contrario

lado izq. de la expresion es incorrecto. Conmutatividad no aplica a PROJECT

Ejemplo Conmutatividad.EMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πSexo(πNombre,Sexo(EMPLEADO))

Nombre SexoDiego MLaura FMarina F

SexoMF

πNombre,Sexo(πSexo(EMPLEADO)) ¡NO ES POSIBLE!SQL. Se especifica tıpicamente en la clausula SELECT DISTINCTEjemplo. πSexo,Salario(EMPLEADO) se puede corresponder con:

SELECT DISTINCT Sexo, SalarioFROM EMPLEADO

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT - Propiedades (Cont.)

Conmutatividad. πlista1(πlista2

(R)) = πlista1(R). lista1 ⊆ lista2, de lo contrario

lado izq. de la expresion es incorrecto. Conmutatividad no aplica a PROJECTEjemplo Conmutatividad.

EMPLEADODNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πSexo(πNombre,Sexo(EMPLEADO))

Nombre SexoDiego MLaura FMarina F

SexoMF

πNombre,Sexo(πSexo(EMPLEADO)) ¡NO ES POSIBLE!SQL. Se especifica tıpicamente en la clausula SELECT DISTINCTEjemplo. πSexo,Salario(EMPLEADO) se puede corresponder con:

SELECT DISTINCT Sexo, SalarioFROM EMPLEADO

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT - Propiedades (Cont.)

Conmutatividad. πlista1(πlista2

(R)) = πlista1(R). lista1 ⊆ lista2, de lo contrario

lado izq. de la expresion es incorrecto. Conmutatividad no aplica a PROJECTEjemplo Conmutatividad.

EMPLEADODNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πSexo(πNombre,Sexo(EMPLEADO))

Nombre SexoDiego MLaura FMarina F

SexoMF

πNombre,Sexo(πSexo(EMPLEADO)) ¡NO ES POSIBLE!SQL. Se especifica tıpicamente en la clausula SELECT DISTINCTEjemplo. πSexo,Salario(EMPLEADO) se puede corresponder con:

SELECT DISTINCT Sexo, SalarioFROM EMPLEADO

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT - Propiedades (Cont.)

Conmutatividad. πlista1(πlista2

(R)) = πlista1(R). lista1 ⊆ lista2, de lo contrario

lado izq. de la expresion es incorrecto. Conmutatividad no aplica a PROJECTEjemplo Conmutatividad.

EMPLEADODNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πSexo(πNombre,Sexo(EMPLEADO))

Nombre SexoDiego MLaura FMarina F

SexoMF

πNombre,Sexo(πSexo(EMPLEADO)) ¡NO ES POSIBLE!SQL. Se especifica tıpicamente en la clausula SELECT DISTINCTEjemplo. πSexo,Salario(EMPLEADO) se puede corresponder con:

SELECT DISTINCT Sexo, SalarioFROM EMPLEADO

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT - Propiedades (Cont.)

Conmutatividad. πlista1(πlista2

(R)) = πlista1(R). lista1 ⊆ lista2, de lo contrario

lado izq. de la expresion es incorrecto. Conmutatividad no aplica a PROJECTEjemplo Conmutatividad.

EMPLEADODNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πSexo(πNombre,Sexo(EMPLEADO))

Nombre SexoDiego MLaura FMarina F

SexoMF

πNombre,Sexo(πSexo(EMPLEADO)) ¡NO ES POSIBLE!SQL. Se especifica tıpicamente en la clausula SELECT DISTINCTEjemplo. πSexo,Salario(EMPLEADO) se puede corresponder con:

SELECT DISTINCT Sexo, SalarioFROM EMPLEADO

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT - Propiedades (Cont.)

Conmutatividad. πlista1(πlista2

(R)) = πlista1(R). lista1 ⊆ lista2, de lo contrario

lado izq. de la expresion es incorrecto. Conmutatividad no aplica a PROJECTEjemplo Conmutatividad.

EMPLEADODNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πSexo(πNombre,Sexo(EMPLEADO))

Nombre SexoDiego MLaura FMarina F

SexoMF

πNombre,Sexo(πSexo(EMPLEADO))

¡NO ES POSIBLE!SQL. Se especifica tıpicamente en la clausula SELECT DISTINCTEjemplo. πSexo,Salario(EMPLEADO) se puede corresponder con:

SELECT DISTINCT Sexo, SalarioFROM EMPLEADO

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT - Propiedades (Cont.)

Conmutatividad. πlista1(πlista2

(R)) = πlista1(R). lista1 ⊆ lista2, de lo contrario

lado izq. de la expresion es incorrecto. Conmutatividad no aplica a PROJECTEjemplo Conmutatividad.

EMPLEADODNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πSexo(πNombre,Sexo(EMPLEADO))

Nombre SexoDiego MLaura FMarina F

SexoMF

πNombre,Sexo(πSexo(EMPLEADO)) ¡NO ES POSIBLE!

SQL. Se especifica tıpicamente en la clausula SELECT DISTINCTEjemplo. πSexo,Salario(EMPLEADO) se puede corresponder con:

SELECT DISTINCT Sexo, SalarioFROM EMPLEADO

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - PROJECT - Propiedades (Cont.)

Conmutatividad. πlista1(πlista2

(R)) = πlista1(R). lista1 ⊆ lista2, de lo contrario

lado izq. de la expresion es incorrecto. Conmutatividad no aplica a PROJECTEjemplo Conmutatividad.

EMPLEADODNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πSexo(πNombre,Sexo(EMPLEADO))

Nombre SexoDiego MLaura FMarina F

SexoMF

πNombre,Sexo(πSexo(EMPLEADO)) ¡NO ES POSIBLE!SQL. Se especifica tıpicamente en la clausula SELECT DISTINCTEjemplo. πSexo,Salario(EMPLEADO) se puede corresponder con:

SELECT DISTINCT Sexo, SalarioFROM EMPLEADO

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - RENAME

Funcion. Asigna nombre a atributos / relacion resultado

Muy util para asignar nombre a resultados intermedios

Notacion. ρS (R) o ρ(A1 → B1, ...,An → Bn,R)

Ejemplo 1. RelacionesEMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πNombre,Sexo(σSalario≥$15.000(EMPLEADO))

1 SALARIO MAYOR ← σSalario≥$15.000(EMPLEADO)2 RESULT ← πNombre,Sexo(SALARIO MAYOR)

SALARIO MAYORDNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,00

RESULTNombre SexoDiego MLaura F

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - RENAME

Funcion. Asigna nombre a atributos / relacion resultado

Muy util para asignar nombre a resultados intermedios

Notacion. ρS (R) o ρ(A1 → B1, ...,An → Bn,R)

Ejemplo 1. RelacionesEMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πNombre,Sexo(σSalario≥$15.000(EMPLEADO))

1 SALARIO MAYOR ← σSalario≥$15.000(EMPLEADO)2 RESULT ← πNombre,Sexo(SALARIO MAYOR)

SALARIO MAYORDNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,00

RESULTNombre SexoDiego MLaura F

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - RENAME

Funcion. Asigna nombre a atributos / relacion resultado

Muy util para asignar nombre a resultados intermedios

Notacion. ρS (R) o ρ(A1 → B1, ...,An → Bn,R)

Ejemplo 1. RelacionesEMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

πNombre,Sexo(σSalario≥$15.000(EMPLEADO))

1 SALARIO MAYOR ← σSalario≥$15.000(EMPLEADO)2 RESULT ← πNombre,Sexo(SALARIO MAYOR)

SALARIO MAYORDNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,00

RESULTNombre SexoDiego MLaura F

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - RENAME (Cont.)

Ejemplo 2. AtributosEMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

EMP(id , Ingreso)← πDNI ,Salario(EMPLEADO)EMP

id Ingreso20222333 $20.000,0033456234 $25.000,0045432345 $10.000,00

SQL. Se especifica tıpicamente en la clausula AS

Ejemplo.

SELECT EMP.DNI AS id, EMP.Salario AS IngresoFROM EMPLEADO AS EMP

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - RENAME (Cont.)

Ejemplo 2. AtributosEMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

EMP(id , Ingreso)← πDNI ,Salario(EMPLEADO)

EMPid Ingreso20222333 $20.000,0033456234 $25.000,0045432345 $10.000,00

SQL. Se especifica tıpicamente en la clausula AS

Ejemplo.

SELECT EMP.DNI AS id, EMP.Salario AS IngresoFROM EMPLEADO AS EMP

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - RENAME (Cont.)

Ejemplo 2. AtributosEMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

EMP(id , Ingreso)← πDNI ,Salario(EMPLEADO)EMP

id Ingreso20222333 $20.000,0033456234 $25.000,0045432345 $10.000,00

SQL. Se especifica tıpicamente en la clausula AS

Ejemplo.

SELECT EMP.DNI AS id, EMP.Salario AS IngresoFROM EMPLEADO AS EMP

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - RENAME (Cont.)

Ejemplo 2. AtributosEMPLEADO

DNI Nombre Sexo Salario20222333 Diego M $20.000,0033456234 Laura F $25.000,0045432345 Marina F $10.000,00

EMP(id , Ingreso)← πDNI ,Salario(EMPLEADO)EMP

id Ingreso20222333 $20.000,0033456234 $25.000,0045432345 $10.000,00

SQL. Se especifica tıpicamente en la clausula AS

Ejemplo.

SELECT EMP.DNI AS id, EMP.Salario AS IngresoFROM EMPLEADO AS EMP

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

SELECTPROJECTRENAME

AR - Ejercicio 1

VUELONumero Origen Destino Salida345 MAD CDG 12:30

321 MAD ORY 19:05

165 LHR CDG 09:55

903 CDG LHR 14:40

447 CDG LHR 17:00

AEROPUERTO

Codigo Nombre CiudadMAD Barajas Madrid

LGW Gatwick Londres

LHR Heathrow Londres

ORY Orly Parıs

CDG Charles de Gaulle Parıs

PASAJERO

DNI Nombre123 Marıa

456 Pedro

789 Isabel

RESERVA

DNI Nro Vuelo Fecha Precio789 165 07-01-11 210

123 345 20-12-10 170

789 321 15-12-10 250

456 345 03-11-10 190

1 Retornar Codigo y Nombre de los aeropuertos de Londres

2 ¿Que retorna Cities(City)←πCiudad (σCodigo=ORY OR Codigo=CDG (AEROPUERTO))

3 Obtener los numeros de vuelo que van desde CDG hacia LHR

4 Obtener los numeros de vuelo que van desde CDG hacia LHR o viceversa

5 Devolver las fechas de reservas cuyos precios son mayores a $200

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - UNION, INTERSECTION, MINUS

Funcion. Equivalente a operaciones matematicas sobre conjuntos

Notacion. R ∪ S, R ∩ S , R − S

Duplicados. La relacion resultante no contiene duplicados

Union Compatible. Se dice que dos relaciones R(A1,A2, ...,An) y

S(B1,B2, ...,Bn) son union compatibles (o compatibles por tipos) si:

Ambas tienen grado n(∀i , 1 ≤ i ≤ n) tipo(Ai ) = tipo(Bi )

UNION. R ∪ S. Relacion que incluye todas las tuplas que estan en R, S o enambas relaciones a la vez. Duplicados son eliminados

INTERSECTION. R ∩ S. Relacion que incluye todas las tuplas que estan a lavez en R y S

SET DIFFERENCE (o MINUS). R − S. Relacion que incluye todas las tuplasque estan en R, pero no incluye a aquellas que aparecen en S

Convencion. Relacion resultante conserva los nombres de atributo de la primerrelacion.

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - UNION, INTERSECTION, MINUS

Funcion. Equivalente a operaciones matematicas sobre conjuntos

Notacion. R ∪ S, R ∩ S , R − S

Duplicados. La relacion resultante no contiene duplicados

Union Compatible. Se dice que dos relaciones R(A1,A2, ...,An) y

S(B1,B2, ...,Bn) son union compatibles (o compatibles por tipos) si:

Ambas tienen grado n(∀i , 1 ≤ i ≤ n) tipo(Ai ) = tipo(Bi )

UNION. R ∪ S. Relacion que incluye todas las tuplas que estan en R, S o enambas relaciones a la vez. Duplicados son eliminados

INTERSECTION. R ∩ S. Relacion que incluye todas las tuplas que estan a lavez en R y S

SET DIFFERENCE (o MINUS). R − S. Relacion que incluye todas las tuplasque estan en R, pero no incluye a aquellas que aparecen en S

Convencion. Relacion resultante conserva los nombres de atributo de la primerrelacion.

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - UNION, INTERSECTION, MINUS

Funcion. Equivalente a operaciones matematicas sobre conjuntos

Notacion. R ∪ S, R ∩ S , R − S

Duplicados. La relacion resultante no contiene duplicados

Union Compatible. Se dice que dos relaciones R(A1,A2, ...,An) y

S(B1,B2, ...,Bn) son union compatibles (o compatibles por tipos) si:

Ambas tienen grado n(∀i , 1 ≤ i ≤ n) tipo(Ai ) = tipo(Bi )

UNION. R ∪ S. Relacion que incluye todas las tuplas que estan en R, S o enambas relaciones a la vez. Duplicados son eliminados

INTERSECTION. R ∩ S. Relacion que incluye todas las tuplas que estan a lavez en R y S

SET DIFFERENCE (o MINUS). R − S. Relacion que incluye todas las tuplasque estan en R, pero no incluye a aquellas que aparecen en S

Convencion. Relacion resultante conserva los nombres de atributo de la primerrelacion.

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - UNION, INTERSECTION, MINUS

Funcion. Equivalente a operaciones matematicas sobre conjuntos

Notacion. R ∪ S, R ∩ S , R − S

Duplicados. La relacion resultante no contiene duplicados

Union Compatible. Se dice que dos relaciones R(A1,A2, ...,An) y

S(B1,B2, ...,Bn) son union compatibles (o compatibles por tipos) si:

Ambas tienen grado n(∀i , 1 ≤ i ≤ n) tipo(Ai ) = tipo(Bi )

UNION. R ∪ S. Relacion que incluye todas las tuplas que estan en R, S o enambas relaciones a la vez. Duplicados son eliminados

INTERSECTION. R ∩ S. Relacion que incluye todas las tuplas que estan a lavez en R y S

SET DIFFERENCE (o MINUS). R − S. Relacion que incluye todas las tuplasque estan en R, pero no incluye a aquellas que aparecen en S

Convencion. Relacion resultante conserva los nombres de atributo de la primerrelacion.

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - UNION, INTERSECTION, MINUS (Cont.)

Ejemplo 1. UNION

ALUMNOS BDsid Nombre1 Diego2 Laura3 Marina

ALUMNOS TLENGid Nombre2 Laura4 Alejandro

RESULT 1 ← ALUMNOS BD ∪ ALUMNOS TLENG

RESULT 1id Nombre1 Diego2 Laura3 Marina4 Alejandro

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - UNION, INTERSECTION, MINUS (Cont.)

Ejemplo 1. UNION

ALUMNOS BDsid Nombre1 Diego2 Laura3 Marina

ALUMNOS TLENGid Nombre2 Laura4 Alejandro

RESULT 1 ← ALUMNOS BD ∪ ALUMNOS TLENG

RESULT 1id Nombre1 Diego2 Laura3 Marina4 Alejandro

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - UNION, INTERSECTION, MINUS (Cont.)

Ejemplo 1. UNION

ALUMNOS BDsid Nombre1 Diego2 Laura3 Marina

ALUMNOS TLENGid Nombre2 Laura4 Alejandro

RESULT 1 ← ALUMNOS BD ∪ ALUMNOS TLENG

RESULT 1id Nombre1 Diego2 Laura3 Marina4 Alejandro

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - UNION, INTERSECTION, MINUS (Cont.)

Ejemplo 2. INTERSECTION

ALUMNOS BDsid Nombre1 Diego2 Laura3 Marina

ALUMNOS TLENGid Nombre2 Laura4 Alejandro

RESULT 2 ← ALUMNOS BD ∩ ALUMNOS TLENG

RESULT 2id Nombre2 Laura

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - UNION, INTERSECTION, MINUS (Cont.)

Ejemplo 2. INTERSECTION

ALUMNOS BDsid Nombre1 Diego2 Laura3 Marina

ALUMNOS TLENGid Nombre2 Laura4 Alejandro

RESULT 2 ← ALUMNOS BD ∩ ALUMNOS TLENG

RESULT 2id Nombre2 Laura

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - UNION, INTERSECTION, MINUS (Cont.)

Ejemplo 2. INTERSECTION

ALUMNOS BDsid Nombre1 Diego2 Laura3 Marina

ALUMNOS TLENGid Nombre2 Laura4 Alejandro

RESULT 2 ← ALUMNOS BD ∩ ALUMNOS TLENG

RESULT 2id Nombre2 Laura

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - UNION, INTERSECTION, MINUS (Cont.)

Ejemplo 3. SET DIFFERENCE

ALUMNOS BDsid Nombre1 Diego2 Laura3 Marina

ALUMNOS TLENGid Nombre2 Laura4 Alejandro

RESULT 3 ← ALUMNOS BD − ALUMNOS TLENG

RESULT 3id Nombre1 Diego3 Marina

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - UNION, INTERSECTION, MINUS (Cont.)

Ejemplo 3. SET DIFFERENCE

ALUMNOS BDsid Nombre1 Diego2 Laura3 Marina

ALUMNOS TLENGid Nombre2 Laura4 Alejandro

RESULT 3 ← ALUMNOS BD − ALUMNOS TLENG

RESULT 3id Nombre1 Diego3 Marina

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - UNION, INTERSECTION, MINUS (Cont.)

Ejemplo 3. SET DIFFERENCE

ALUMNOS BDsid Nombre1 Diego2 Laura3 Marina

ALUMNOS TLENGid Nombre2 Laura4 Alejandro

RESULT 3 ← ALUMNOS BD − ALUMNOS TLENG

RESULT 3id Nombre1 Diego3 Marina

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - UNION, INTERSECTION, MINUS (Cont.)

Conmutatividad.

R ∪ S = S ∪ RR ∩ S = S ∩ REn general, R − S 6= S − R

Asociatividad.

R ∪ (S ∪ T ) = (R ∪ S) ∪ TR ∩ (S ∩ T ) = (R ∩ S) ∩ T

Equivalencia. R ∩ S = ((R ∪ S)− (R − S))− (S − R)

SQL 1. Operaciones en SQL UNION, INTERSECT, EXCEPT funcionan comoen AR

SQL 2. Operaciones en SQL UNION ALL, INTERSECT ALL, EXCEPT ALLno eliminan duplicados

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - UNION, INTERSECTION, MINUS (Cont.)

Conmutatividad.

R ∪ S = S ∪ RR ∩ S = S ∩ REn general, R − S 6= S − R

Asociatividad.

R ∪ (S ∪ T ) = (R ∪ S) ∪ TR ∩ (S ∩ T ) = (R ∩ S) ∩ T

Equivalencia. R ∩ S = ((R ∪ S)− (R − S))− (S − R)

SQL 1. Operaciones en SQL UNION, INTERSECT, EXCEPT funcionan comoen AR

SQL 2. Operaciones en SQL UNION ALL, INTERSECT ALL, EXCEPT ALLno eliminan duplicados

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - UNION, INTERSECTION, MINUS (Cont.)

Conmutatividad.

R ∪ S = S ∪ RR ∩ S = S ∩ REn general, R − S 6= S − R

Asociatividad.

R ∪ (S ∪ T ) = (R ∪ S) ∪ TR ∩ (S ∩ T ) = (R ∩ S) ∩ T

Equivalencia. R ∩ S = ((R ∪ S)− (R − S))− (S − R)

SQL 1. Operaciones en SQL UNION, INTERSECT, EXCEPT funcionan comoen AR

SQL 2. Operaciones en SQL UNION ALL, INTERSECT ALL, EXCEPT ALLno eliminan duplicados

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - UNION, INTERSECTION, MINUS (Cont.)

Conmutatividad.

R ∪ S = S ∪ RR ∩ S = S ∩ REn general, R − S 6= S − R

Asociatividad.

R ∪ (S ∪ T ) = (R ∪ S) ∪ TR ∩ (S ∩ T ) = (R ∩ S) ∩ T

Equivalencia. R ∩ S = ((R ∪ S)− (R − S))− (S − R)

SQL 1. Operaciones en SQL UNION, INTERSECT, EXCEPT funcionan comoen AR

SQL 2. Operaciones en SQL UNION ALL, INTERSECT ALL, EXCEPT ALLno eliminan duplicados

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - UNION, INTERSECTION, MINUS (Cont.)

Conmutatividad.

R ∪ S = S ∪ RR ∩ S = S ∩ REn general, R − S 6= S − R

Asociatividad.

R ∪ (S ∪ T ) = (R ∪ S) ∪ TR ∩ (S ∩ T ) = (R ∩ S) ∩ T

Equivalencia. R ∩ S =

((R ∪ S)− (R − S))− (S − R)

SQL 1. Operaciones en SQL UNION, INTERSECT, EXCEPT funcionan comoen AR

SQL 2. Operaciones en SQL UNION ALL, INTERSECT ALL, EXCEPT ALLno eliminan duplicados

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - UNION, INTERSECTION, MINUS (Cont.)

Conmutatividad.

R ∪ S = S ∪ RR ∩ S = S ∩ REn general, R − S 6= S − R

Asociatividad.

R ∪ (S ∪ T ) = (R ∪ S) ∪ TR ∩ (S ∩ T ) = (R ∩ S) ∩ T

Equivalencia. R ∩ S = ((R ∪ S)− (R − S))− (S − R)

SQL 1. Operaciones en SQL UNION, INTERSECT, EXCEPT funcionan comoen AR

SQL 2. Operaciones en SQL UNION ALL, INTERSECT ALL, EXCEPT ALLno eliminan duplicados

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - UNION, INTERSECTION, MINUS (Cont.)

Conmutatividad.

R ∪ S = S ∪ RR ∩ S = S ∩ REn general, R − S 6= S − R

Asociatividad.

R ∪ (S ∪ T ) = (R ∪ S) ∪ TR ∩ (S ∩ T ) = (R ∩ S) ∩ T

Equivalencia. R ∩ S = ((R ∪ S)− (R − S))− (S − R)

SQL 1. Operaciones en SQL UNION, INTERSECT, EXCEPT funcionan comoen AR

SQL 2. Operaciones en SQL UNION ALL, INTERSECT ALL, EXCEPT ALLno eliminan duplicados

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - Ejercicio 2

VUELONumero Origen Destino Salida345 MAD CDG 12:30

321 MAD ORY 19:05

165 LHR CDG 09:55

903 CDG LHR 14:40

447 CDG LHR 17:00

AEROPUERTO

Codigo Nombre CiudadMAD Barajas Madrid

LGW Gatwick Londres

LHR Heathrow Londres

ORY Orly Parıs

CDG Charles de Gaulle Parıs

PASAJERO

DNI Nombre123 Marıa

456 Pedro

789 Isabel

RESERVA

DNI Nro Vuelo Fecha Precio789 165 07-01-11 210

123 345 20-12-10 170

789 321 15-12-10 250

456 345 03-11-10 190

1 Devolver los codigos de vuelo que tienen reservas generadas (utilizar ∩)

2 Devolver los codigos de vuelo que aun no tienen reservas

3 Retornar los codigos de aeropuerto de los que parten o arriban los vuelos

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - CARTESIAN PRODUCT

Funcion. Produce una nueva relacion que combina cada tupla de una relacioncon cada una de las tuplas de la otra relacion

Notacion. R X S

Ejemplo. PERSONANombre NacionalidadDiego ARLaura BRMarina AR

NACIONALIDADESIDN DetalleAR ArgentinaBR BrasileraCH Chilena

RESULT←PERSONAX NACIONALIDADESRESULT

Nombre Nacionalidad IDN DetalleDiego AR AR ArgentinaDiego AR BR BrasileraDiego AR CH ChilenaLaura BR AR ArgentinaLaura BR BR BrasileraLaura BR CH ChilenaMarina AR AR ArgentinaMarina AR BR BrasileraMarina AR CH Chilena

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - CARTESIAN PRODUCT

Funcion. Produce una nueva relacion que combina cada tupla de una relacioncon cada una de las tuplas de la otra relacion

Notacion. R X S

Ejemplo. PERSONANombre NacionalidadDiego ARLaura BRMarina AR

NACIONALIDADESIDN DetalleAR ArgentinaBR BrasileraCH Chilena

RESULT←PERSONAX NACIONALIDADES

RESULTNombre Nacionalidad IDN DetalleDiego AR AR ArgentinaDiego AR BR BrasileraDiego AR CH ChilenaLaura BR AR ArgentinaLaura BR BR BrasileraLaura BR CH ChilenaMarina AR AR ArgentinaMarina AR BR BrasileraMarina AR CH Chilena

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - CARTESIAN PRODUCT

Funcion. Produce una nueva relacion que combina cada tupla de una relacioncon cada una de las tuplas de la otra relacion

Notacion. R X S

Ejemplo. PERSONANombre NacionalidadDiego ARLaura BRMarina AR

NACIONALIDADESIDN DetalleAR ArgentinaBR BrasileraCH Chilena

RESULT←PERSONAX NACIONALIDADESRESULT

Nombre Nacionalidad IDN DetalleDiego AR AR ArgentinaDiego AR BR BrasileraDiego AR CH ChilenaLaura BR AR ArgentinaLaura BR BR BrasileraLaura BR CH ChilenaMarina AR AR ArgentinaMarina AR BR BrasileraMarina AR CH Chilena

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - CARTESIAN PRODUCT (Cont.)

Union compatible. Las relaciones no tienen que ser union compatibles

Grado. Si T = R X S entonces grado(T ) = grado(R) + grado(S)

SQL. CROSS JOIN

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - CARTESIAN PRODUCT (Cont.)

Union compatible. Las relaciones no tienen que ser union compatibles

Grado.

Si T = R X S entonces grado(T ) = grado(R) + grado(S)

SQL. CROSS JOIN

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - CARTESIAN PRODUCT (Cont.)

Union compatible. Las relaciones no tienen que ser union compatibles

Grado. Si T = R X S entonces grado(T ) = grado(R) + grado(S)

SQL. CROSS JOIN

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - CARTESIAN PRODUCT (Cont.)

Union compatible. Las relaciones no tienen que ser union compatibles

Grado. Si T = R X S entonces grado(T ) = grado(R) + grado(S)

SQL. CROSS JOIN

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - JOIN

Funcion. Permite combinar pares de tuplas relacionadas entre dos relaciones

Notacion. R ./<condici on> S

Ejemplo.PERSONA

Nombre NacionalidadDiego ARLaura BRMarina AR

NACIONALIDADESIDN DetalleAR ArgentinaBR BrasileraCH Chilena

RESULT ← PERSONA ./Nacionalidad=IDN NACIONALIDADES

RESULTNombre Nacionalidad IDN DetalleDiego AR AR ArgentinaLaura BR BR BrasileraMarina AR AR Argentina

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - JOIN

Funcion. Permite combinar pares de tuplas relacionadas entre dos relaciones

Notacion. R ./<condici on> S

Ejemplo.PERSONA

Nombre NacionalidadDiego ARLaura BRMarina AR

NACIONALIDADESIDN DetalleAR ArgentinaBR BrasileraCH Chilena

RESULT ← PERSONA ./Nacionalidad=IDN NACIONALIDADES

RESULTNombre Nacionalidad IDN DetalleDiego AR AR ArgentinaLaura BR BR BrasileraMarina AR AR Argentina

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - JOIN

Funcion. Permite combinar pares de tuplas relacionadas entre dos relaciones

Notacion. R ./<condici on> S

Ejemplo.PERSONA

Nombre NacionalidadDiego ARLaura BRMarina AR

NACIONALIDADESIDN DetalleAR ArgentinaBR BrasileraCH Chilena

RESULT ← PERSONA ./Nacionalidad=IDN NACIONALIDADES

RESULTNombre Nacionalidad IDN DetalleDiego AR AR ArgentinaLaura BR BR BrasileraMarina AR AR Argentina

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - JOIN (Cont.)

CARTESIAN PRODUCT vs JOIN.

CARTESIAN PRODUCT aparecen todas las combinaciones de tuplasJOIN aparecen solo combinaciones de tuplas que satisfacen condicion

Condicion 1. En general, formato de condicion de JOIN entre R y S :< condici on > AND < condici on > AND...AND < condici on >

Condicion 2. Forma de < condici on > es AiθBj , siendo Ai atributo de R y Bj

atributo de S

Condicion 3. dom(Ai ) = dom(Bj )

Condicion 4. θ ∈ {=, <,≤, >,≥, 6=}NULL. Tuplas cuyos atributos de JOIN son NULL o cuya condicion es falsa noaparecen en el resultado

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - JOIN (Cont.)

CARTESIAN PRODUCT vs JOIN.

CARTESIAN PRODUCT aparecen todas las combinaciones de tuplasJOIN aparecen solo combinaciones de tuplas que satisfacen condicion

Condicion 1. En general, formato de condicion de JOIN entre R y S :< condici on > AND < condici on > AND...AND < condici on >

Condicion 2. Forma de < condici on > es AiθBj , siendo Ai atributo de R y Bj

atributo de S

Condicion 3. dom(Ai ) = dom(Bj )

Condicion 4. θ ∈ {=, <,≤, >,≥, 6=}

NULL. Tuplas cuyos atributos de JOIN son NULL o cuya condicion es falsa noaparecen en el resultado

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - JOIN (Cont.)

CARTESIAN PRODUCT vs JOIN.

CARTESIAN PRODUCT aparecen todas las combinaciones de tuplasJOIN aparecen solo combinaciones de tuplas que satisfacen condicion

Condicion 1. En general, formato de condicion de JOIN entre R y S :< condici on > AND < condici on > AND...AND < condici on >

Condicion 2. Forma de < condici on > es AiθBj , siendo Ai atributo de R y Bj

atributo de S

Condicion 3. dom(Ai ) = dom(Bj )

Condicion 4. θ ∈ {=, <,≤, >,≥, 6=}NULL. Tuplas cuyos atributos de JOIN son NULL o cuya condicion es falsa noaparecen en el resultado

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - JOIN (Cont.)

EQUIJOIN. JOIN donde solo se utiliza la operacion = en la < condici on >.

Duplicacion de campos. Al utililzar la igualdad, se generan campos duplicados.Ejemplo.

PERSONANombre NacionalidadDiego ARLaura BRMarina AR

NACIONALIDADESIDN DetalleAR ArgentinaBR BrasileraCH Chilena

RESULT ← PERSONA ./Nacionalidad=IDN NACIONALIDADES

RESULTNombre Nacionalidad IDN DetalleDiego AR AR ArgentinaLaura BR BR BrasileraMarina AR AR Argentina

NATURAL JOIN. Realiza el JOIN entre campos de mismo nombre y deja solouno de los campos duplicadosNotacion. R ./ S (tambien en la bibliografıa R ∗ S)Requerimiento. Requiere que atributos de JOIN tengan el mismo nombre. Deno ser el caso, se debe hacer un RENAME previo

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - JOIN (Cont.)

EQUIJOIN. JOIN donde solo se utiliza la operacion = en la < condici on >.Duplicacion de campos. Al utililzar la igualdad, se generan campos duplicados.Ejemplo.

PERSONANombre NacionalidadDiego ARLaura BRMarina AR

NACIONALIDADESIDN DetalleAR ArgentinaBR BrasileraCH Chilena

RESULT ← PERSONA ./Nacionalidad=IDN NACIONALIDADES

RESULTNombre Nacionalidad IDN DetalleDiego AR AR ArgentinaLaura BR BR BrasileraMarina AR AR Argentina

NATURAL JOIN. Realiza el JOIN entre campos de mismo nombre y deja solouno de los campos duplicadosNotacion. R ./ S (tambien en la bibliografıa R ∗ S)Requerimiento. Requiere que atributos de JOIN tengan el mismo nombre. Deno ser el caso, se debe hacer un RENAME previo

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - JOIN (Cont.)

EQUIJOIN. JOIN donde solo se utiliza la operacion = en la < condici on >.Duplicacion de campos. Al utililzar la igualdad, se generan campos duplicados.Ejemplo.

PERSONANombre NacionalidadDiego ARLaura BRMarina AR

NACIONALIDADESIDN DetalleAR ArgentinaBR BrasileraCH Chilena

RESULT ← PERSONA ./Nacionalidad=IDN NACIONALIDADES

RESULTNombre Nacionalidad IDN DetalleDiego AR AR ArgentinaLaura BR BR BrasileraMarina AR AR Argentina

NATURAL JOIN. Realiza el JOIN entre campos de mismo nombre y deja solouno de los campos duplicadosNotacion. R ./ S (tambien en la bibliografıa R ∗ S)Requerimiento. Requiere que atributos de JOIN tengan el mismo nombre. Deno ser el caso, se debe hacer un RENAME previo

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - JOIN (Cont.)

EQUIJOIN. JOIN donde solo se utiliza la operacion = en la < condici on >.Duplicacion de campos. Al utililzar la igualdad, se generan campos duplicados.Ejemplo.

PERSONANombre NacionalidadDiego ARLaura BRMarina AR

NACIONALIDADESIDN DetalleAR ArgentinaBR BrasileraCH Chilena

RESULT ← PERSONA ./Nacionalidad=IDN NACIONALIDADES

RESULTNombre Nacionalidad IDN DetalleDiego AR AR ArgentinaLaura BR BR BrasileraMarina AR AR Argentina

NATURAL JOIN. Realiza el JOIN entre campos de mismo nombre y deja solouno de los campos duplicadosNotacion. R ./ S (tambien en la bibliografıa R ∗ S)Requerimiento. Requiere que atributos de JOIN tengan el mismo nombre. Deno ser el caso, se debe hacer un RENAME previo

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - JOIN (Cont.)

EQUIJOIN. JOIN donde solo se utiliza la operacion = en la < condici on >.Duplicacion de campos. Al utililzar la igualdad, se generan campos duplicados.Ejemplo.

PERSONANombre NacionalidadDiego ARLaura BRMarina AR

NACIONALIDADESIDN DetalleAR ArgentinaBR BrasileraCH Chilena

RESULT ← PERSONA ./Nacionalidad=IDN NACIONALIDADES

RESULTNombre Nacionalidad IDN DetalleDiego AR AR ArgentinaLaura BR BR BrasileraMarina AR AR Argentina

NATURAL JOIN. Realiza el JOIN entre campos de mismo nombre y deja solouno de los campos duplicadosNotacion. R ./ S (tambien en la bibliografıa R ∗ S)Requerimiento. Requiere que atributos de JOIN tengan el mismo nombre. Deno ser el caso, se debe hacer un RENAME previo

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - JOIN (Cont.)

Ejemplo NATURAL JOIN.

PERSONANombre NacionalidadDiego ARLaura BRMarina AR

NACIONALIDADESIDN DetalleAR ArgentinaBR BrasileraCH Chilena

NACIONALIDADES TEMP(Nacionalidad,Detalle)←πIDN,Detalle (NACIONALIDADES)

RESULT←PERSONA ./NACIONALIDADES TEMP

RESULTNombre Nacionalidad DetalleDiego AR ArgentinaLaura BR BrasileraMarina AR Argentina

Tamano resultado JOIN(S,R). Puede ir de 0 a S*R registros

Selectividad de JOIN. Es una tasa y corresponde a: |resultado JOIN(S,R)||S|∗|R|

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - JOIN (Cont.)

Ejemplo NATURAL JOIN.

PERSONANombre NacionalidadDiego ARLaura BRMarina AR

NACIONALIDADESIDN DetalleAR ArgentinaBR BrasileraCH Chilena

NACIONALIDADES TEMP(Nacionalidad,Detalle)←πIDN,Detalle (NACIONALIDADES)

RESULT←PERSONA ./NACIONALIDADES TEMP

RESULTNombre Nacionalidad DetalleDiego AR ArgentinaLaura BR BrasileraMarina AR Argentina

Tamano resultado JOIN(S,R). Puede ir de 0 a S*R registros

Selectividad de JOIN. Es una tasa y corresponde a: |resultado JOIN(S,R)||S|∗|R|

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - JOIN (Cont.)

Ejemplo NATURAL JOIN.

PERSONANombre NacionalidadDiego ARLaura BRMarina AR

NACIONALIDADESIDN DetalleAR ArgentinaBR BrasileraCH Chilena

NACIONALIDADES TEMP(Nacionalidad,Detalle)←πIDN,Detalle (NACIONALIDADES)

RESULT←PERSONA ./NACIONALIDADES TEMP

RESULTNombre Nacionalidad DetalleDiego AR ArgentinaLaura BR BrasileraMarina AR Argentina

Tamano resultado JOIN(S,R). Puede ir de 0 a S*R registros

Selectividad de JOIN. Es una tasa y corresponde a: |resultado JOIN(S,R)||S|∗|R|

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - JOIN (Cont.)

Ejemplo NATURAL JOIN.

PERSONANombre NacionalidadDiego ARLaura BRMarina AR

NACIONALIDADESIDN DetalleAR ArgentinaBR BrasileraCH Chilena

NACIONALIDADES TEMP(Nacionalidad,Detalle)←πIDN,Detalle (NACIONALIDADES)

RESULT←PERSONA ./NACIONALIDADES TEMP

RESULTNombre Nacionalidad DetalleDiego AR ArgentinaLaura BR BrasileraMarina AR Argentina

Tamano resultado JOIN(S,R). Puede ir de 0 a S*R registros

Selectividad de JOIN. Es una tasa y corresponde a: |resultado JOIN(S,R)||S|∗|R|

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - JOIN (Cont.)

SQL. Se Puede realizar de multiples maneras.

Ejemplo.NACIONALIDADES TEMP(Nacionalidad,Detalle)←πIDN,Detalle (NACIONALIDADES)

RESULT←PERSONA ./NACIONALIDADES TEMP

se puede corresponder con:

SELECT Persona.Nombre, Persona.Nacionalidad, NACIONALIDADES.DetalleFROM PERSONA, NACIONALIDADESWHERE PERSONA.Nacionalidad=NACIONALIDADES.IDN;

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - OUTER JOIN

INNER JOIN. JOIN donde tuplas que no cumplen condicion de JOIN soneliminadas del resultado (Ej. NULL en atributo de JOIN)

OUTER JOIN. JOIN en el cual se incorpora adicionalmente al resultado lastuplas de R, S , o ambas relaciones, que no cumplen la condicion de JOIN

LEFT OUTER JOIN. R ./ S. Conserva todas las tuplas de R. Si no seencuentra ninguna tupla de S que cumpla con condicion de JOIN, entonces losatributos de S en el resultado se completan en NULL

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - OUTER JOIN

INNER JOIN. JOIN donde tuplas que no cumplen condicion de JOIN soneliminadas del resultado (Ej. NULL en atributo de JOIN)

OUTER JOIN. JOIN en el cual se incorpora adicionalmente al resultado lastuplas de R, S , o ambas relaciones, que no cumplen la condicion de JOIN

LEFT OUTER JOIN. R ./ S. Conserva todas las tuplas de R. Si no seencuentra ninguna tupla de S que cumpla con condicion de JOIN, entonces losatributos de S en el resultado se completan en NULL

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - OUTER JOIN

Ejemplo. PERSONANombre NacionalidadDiego BRLaura NULLMarina ARSantiago UY

NACIONALIDADESIDN DetalleAR ArgentinaBR BrasileraCH Chilena

RESULT←PERSONA ./ Nacionalidad=IDN NACIONALIDADES

RESULTNombre Nacionalidad IDN DetalleDiego BR BR BrasileraMarina AR AR Argentina

RESULT←PERSONA ./ Nacionalidad=IDN NACIONALIDADES

RESULTNombre Nacionalidad IDN DetalleDiego BR BR BrasileraLaura NULL NULL NULLMarina AR AR ArgentinaSantiago UY NULL NULL

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - OUTER JOIN

Ejemplo. PERSONANombre NacionalidadDiego BRLaura NULLMarina ARSantiago UY

NACIONALIDADESIDN DetalleAR ArgentinaBR BrasileraCH Chilena

RESULT←PERSONA ./ Nacionalidad=IDN NACIONALIDADES

RESULTNombre Nacionalidad IDN DetalleDiego BR BR BrasileraMarina AR AR Argentina

RESULT←PERSONA ./ Nacionalidad=IDN NACIONALIDADES

RESULTNombre Nacionalidad IDN DetalleDiego BR BR BrasileraLaura NULL NULL NULLMarina AR AR ArgentinaSantiago UY NULL NULL

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - OUTER JOIN

Ejemplo. PERSONANombre NacionalidadDiego BRLaura NULLMarina ARSantiago UY

NACIONALIDADESIDN DetalleAR ArgentinaBR BrasileraCH Chilena

RESULT←PERSONA ./ Nacionalidad=IDN NACIONALIDADES

RESULTNombre Nacionalidad IDN DetalleDiego BR BR BrasileraMarina AR AR Argentina

RESULT←PERSONA ./ Nacionalidad=IDN NACIONALIDADES

RESULTNombre Nacionalidad IDN DetalleDiego BR BR BrasileraLaura NULL NULL NULLMarina AR AR ArgentinaSantiago UY NULL NULL

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - OUTER JOIN

Ejemplo. PERSONANombre NacionalidadDiego BRLaura NULLMarina ARSantiago UY

NACIONALIDADESIDN DetalleAR ArgentinaBR BrasileraCH Chilena

RESULT←PERSONA ./ Nacionalidad=IDN NACIONALIDADES

RESULTNombre Nacionalidad IDN DetalleDiego BR BR BrasileraMarina AR AR Argentina

RESULT←PERSONA ./ Nacionalidad=IDN NACIONALIDADES

RESULTNombre Nacionalidad IDN DetalleDiego BR BR BrasileraLaura NULL NULL NULLMarina AR AR ArgentinaSantiago UY NULL NULL

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - OUTER JOIN

Ejemplo. PERSONANombre NacionalidadDiego BRLaura NULLMarina ARSantiago UY

NACIONALIDADESIDN DetalleAR ArgentinaBR BrasileraCH Chilena

RESULT←PERSONA ./ Nacionalidad=IDN NACIONALIDADES

RESULTNombre Nacionalidad IDN DetalleDiego BR BR BrasileraMarina AR AR Argentina

RESULT←PERSONA ./ Nacionalidad=IDN NACIONALIDADES

RESULTNombre Nacionalidad IDN DetalleDiego BR BR BrasileraLaura NULL NULL NULLMarina AR AR ArgentinaSantiago UY NULL NULL

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - OUTER JOIN (Cont.)

RIGHT OUTER JOIN. R ./ S. Conserva todas las tuplas de S. Si no seencuentra ninguna tupla de R que cumpla con condicion de JOIN, entonces losatributos de R en el resultado se completan en NULL

FULL OUTER JOIN. R ./ S. Conserva todas las tuplas de R y S . Si no seencuentra ninguna tupla de R o S que cumpla con condicion de JOIN, entoncessus atributos en el resultado se completan en NULL

SQL. Las tres operaciones de OUTER JOIN son parte del estandar SQL2

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - Ejercicio 3

VUELONumero Origen Destino Salida345 MAD CDG 12:30

321 MAD ORY 19:05

165 LHR CDG 09:55

903 CDG LHR 14:40

447 CDG LHR 17:00

AEROPUERTO

Codigo Nombre CiudadMAD Barajas Madrid

LGW Gatwick Londres

LHR Heathrow Londres

ORY Orly Parıs

CDG Charles de Gaulle Parıs

PASAJERO

DNI Nombre123 Marıa

456 Pedro

789 Isabel

RESERVA

DNI Nro Vuelo Fecha Precio789 165 07-01-11 210

123 345 20-12-10 170

789 321 15-12-10 250

456 345 03-11-10 190

1 Devolver el nombre de la ciudad de partida del vuelo numero 165

2 Retornar el nombre de las personas que realizaron reservas a un valor menor a$200

3 Obtener Nombre, Fecha y Destino del Viaje de todos los pasajeros que vuelandesde Madrid

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - DIVISION

Funcion. Retorna los valores de R que se encuentran emparejados con TODOSlos valores de S

Notacion. R ÷ S. Requiere que atributos de S ⊂ atributos de R. Resultadocontiene atributos de R menos atributos de S

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - DIVISION (Cont.)

Ejemplo.ALUMNOS

Nombre MateriaDiego BDDiego PLPLaura BDLaura PLPLaura TLENGMarina BDMarina TLENGSantiago BDSantiago PLPSantiago TLENG

MATERIAS 1MateriaBD

MATERIAS 2MateriaBDTLENG

MATERIAS 3MateriaBDPLPTLENG

ALUMNOS÷MATERIAS 1

NombreDiegoLauraMarinaSantiago

ALUMNOS÷MATERIAS 2

NombreLauraMarinaSantiago

ALUMNOS÷MATERIAS 3

NombreLauraSantiago

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - DIVISION (Cont.)

Ejemplo.ALUMNOS

Nombre MateriaDiego BDDiego PLPLaura BDLaura PLPLaura TLENGMarina BDMarina TLENGSantiago BDSantiago PLPSantiago TLENG

MATERIAS 1MateriaBD

MATERIAS 2MateriaBDTLENG

MATERIAS 3MateriaBDPLPTLENG

ALUMNOS÷MATERIAS 1

NombreDiegoLauraMarinaSantiago

ALUMNOS÷MATERIAS 2

NombreLauraMarinaSantiago

ALUMNOS÷MATERIAS 3

NombreLauraSantiago

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - DIVISION (Cont.)

Ejemplo.ALUMNOS

Nombre MateriaDiego BDDiego PLPLaura BDLaura PLPLaura TLENGMarina BDMarina TLENGSantiago BDSantiago PLPSantiago TLENG

MATERIAS 1MateriaBD

MATERIAS 2MateriaBDTLENG

MATERIAS 3MateriaBDPLPTLENG

ALUMNOS÷MATERIAS 1

NombreDiegoLauraMarinaSantiago

ALUMNOS÷MATERIAS 2

NombreLauraMarinaSantiago

ALUMNOS÷MATERIAS 3

NombreLauraSantiago

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - DIVISION (Cont.)

Ejemplo.ALUMNOS

Nombre MateriaDiego BDDiego PLPLaura BDLaura PLPLaura TLENGMarina BDMarina TLENGSantiago BDSantiago PLPSantiago TLENG

MATERIAS 1MateriaBD

MATERIAS 2MateriaBDTLENG

MATERIAS 3MateriaBDPLPTLENG

ALUMNOS÷MATERIAS 1

NombreDiegoLauraMarinaSantiago

ALUMNOS÷MATERIAS 2

NombreLauraMarinaSantiago

ALUMNOS÷MATERIAS 3

NombreLauraSantiago

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - DIVISION (Cont.)

Ejemplo.ALUMNOS

Nombre MateriaDiego BDDiego PLPLaura BDLaura PLPLaura TLENGMarina BDMarina TLENGSantiago BDSantiago PLPSantiago TLENG

MATERIAS 1MateriaBD

MATERIAS 2MateriaBDTLENG

MATERIAS 3MateriaBDPLPTLENG

ALUMNOS÷MATERIAS 1

NombreDiegoLauraMarinaSantiago

ALUMNOS÷MATERIAS 2

NombreLauraMarinaSantiago

ALUMNOS÷MATERIAS 3

NombreLauraSantiago

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - DIVISION (Cont.)

Ejemplo.ALUMNOS

Nombre MateriaDiego BDDiego PLPLaura BDLaura PLPLaura TLENGMarina BDMarina TLENGSantiago BDSantiago PLPSantiago TLENG

MATERIAS 1MateriaBD

MATERIAS 2MateriaBDTLENG

MATERIAS 3MateriaBDPLPTLENG

ALUMNOS÷MATERIAS 1

NombreDiegoLauraMarinaSantiago

ALUMNOS÷MATERIAS 2

NombreLauraMarinaSantiago

ALUMNOS÷MATERIAS 3

NombreLauraSantiago

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - DIVISION (Cont.)

Ejemplo.ALUMNOS

Nombre MateriaDiego BDDiego PLPLaura BDLaura PLPLaura TLENGMarina BDMarina TLENGSantiago BDSantiago PLPSantiago TLENG

MATERIAS 1MateriaBD

MATERIAS 2MateriaBDTLENG

MATERIAS 3MateriaBDPLPTLENG

ALUMNOS÷MATERIAS 1

NombreDiegoLauraMarinaSantiago

ALUMNOS÷MATERIAS 2

NombreLauraMarinaSantiago

ALUMNOS÷MATERIAS 3

NombreLauraSantiago

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - DIVISION

Operacion compuesta. Se puede expresar como secuencia de otras operaciones(π, X , −)

En ejemplo anterior (ALUMNOS÷MATERIAS 3):

TEMP1 ← πNombre(ALUMNOS)TEMP2 ← πNombre((TEMP1 X MATERIAS 3)− ALUMNOS)RESULT ← TEMP1 − TEMP2

TEMP 1

NombreDiegoLauraMarinaSantiago

TEMP 2

NombreDiegoMarina

RESULT

NombreLauraSantiago

SQL. No suele implementar DIVISION

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - DIVISION

Operacion compuesta. Se puede expresar como secuencia de otras operaciones(π, X , −)

En ejemplo anterior (ALUMNOS÷MATERIAS 3):

TEMP1 ← πNombre(ALUMNOS)TEMP2 ← πNombre((TEMP1 X MATERIAS 3)− ALUMNOS)RESULT ← TEMP1 − TEMP2

TEMP 1

NombreDiegoLauraMarinaSantiago

TEMP 2

NombreDiegoMarina

RESULT

NombreLauraSantiago

SQL. No suele implementar DIVISION

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - DIVISION

Operacion compuesta. Se puede expresar como secuencia de otras operaciones(π, X , −)

En ejemplo anterior (ALUMNOS÷MATERIAS 3):

TEMP1 ← πNombre(ALUMNOS)TEMP2 ← πNombre((TEMP1 X MATERIAS 3)− ALUMNOS)RESULT ← TEMP1 − TEMP2

TEMP 1

NombreDiegoLauraMarinaSantiago

TEMP 2

NombreDiegoMarina

RESULT

NombreLauraSantiago

SQL. No suele implementar DIVISION

Algebra Relacional

IntroduccionOperaciones UnariasOperaciones Binarias

UNION, INTERSECTION, MINUSCARTESIAN PRODUCT / JOINDIVISION

AR - Bibliografıa

Capıtulo 6 (hasta 6.5 inclusive) Elmasri/Navathe - Fundamentals of DatabaseSystems, 6th Ed., Pearson, 2011.

Algebra Relacional