algebra relacional - informaticosst.files.wordpress.com · conjunto de operadores que opera sobre...

38
Algebra Relacional

Upload: others

Post on 16-Apr-2020

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

Algebra Relacional

Page 2: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

Conjunto de operadores que opera sobre relaciones •

Cada uno de estos operadores toma una o dos relaciones como entrada y produce una nueva relación como salida.

Las relaciones originales no cambian.

Lenguaje de consulta

Page 3: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Operador Restricción

• Selecciona tuplas

que satisfacen un predicado dado.

• Restringe la relacion

solo a las tuplas

que satisfagan

una condicion

especifica.

predicado (R)

Page 4: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Conocer las tuplas

de la relación préstamo en que la

sucursal es ‘Navacerrada’:

nombre-sucursal = ‘Navacerrada’

(préstamo)

Page 5: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Operador de comparación (>, <, =)

• Operadores booleanos

"AND", "OR", "NOT".

A3>16 (R) •

A3>16 and

A3 < 45 (R)

nombre='Carlos' and

edad=45 (R)

Page 6: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

Conocer a los autores que tengan nacionalidad española:

nacionalidad = ‘española’

(AUTOR)

Page 7: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

Conocer aquellas películas cuya duracion

(lenght) es mayor o igual que 100 minutos

lenght

>= 100 (MOVIE)

Page 8: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Conocer aquellas películas cuya duracion

(lenght) sea

mayor o igual que 100 minutos y el nombre del estudio sea Fox:

length>=100 and studioName='Fox' (Movie)

• Grado de la relación resultante?

• Cardinalidad?

Page 9: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Ejercicios.

• Obtener todos los empleados con un salario anual superior a 15.000.

• Plantilla(Enum, Nombre, Apellido, Dirección, Teléfono, Puesto, Fecha_nac, Salario, DNI, Onum)

• Obtener todos los inmuebles de la poblacion

Castellón

con un alquiler mensual de hasta 350 euros.•

Inmueble(Inum, Calle, Area, Población, Tipo, Hab, Alquiler, Pnum)

Page 10: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Operador Proyección

• Extrae los atributos especificados en una relacion

dada. •

Dado que las relaciones son conjuntos, se eliminan todas las filas duplicadas.

atributo1, atributo2 (R)

Page 11: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Conocer la nacionalidad y la institución de los autores:

• nacionalidad, institución (AUTOR)

Page 12: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Conocer el titulo y nombre de estudio de aquellas películas cuya duracion

sea mayor a 100 minutos.

• title,studioName

( length>=100 (Movie))

• Grado?

• Cardinalidad?

Page 13: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Ejercicios

• Obtener un listado de empleados mostrando su número, nombre, apellido y salario.

• Plantilla(Enum, Nombre, Apellido, Dirección, Teléfono, Puesto, Fecha_nac, Salario, DNI, Onum)

• Obtener los distintos puestos que pueden ocupar los empleados.

• Obtener los nombres y apellidos de los empleados que sean supervisores.

Page 14: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Operadores Binarios

• Se aplican a dos relaciones y algunos de ellos exigen que las dos relaciones involucradas sean compatibles en sus esquemas.

• No quiere decir que los nombres de los atributos sean los mismos, sino que deben estar definidos sobre los mismos dominios.

Page 15: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Unión (U)

• La unión de dos relaciones compatibles en su esquema es otra relación definida sobre el mismo esquema de relación.

• Estará

constituida por las tuplas

que pertenezcan a R

o a R’

o a ambas.•

Se eliminan las tuplas

repetidas.

• Construye una relacion

formada por todas las tuplas

que aparecen en cualquiera de las dos relaciones especificadas.

• R U R’

Page 16: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Conocer todas las personas que sean autor, editor o ambas cosas.

Page 17: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Averiguar el nombre de todos los clientes del banco que tienen una cuenta, un préstamo o ambas cosas.

• Nombres de todos los clientes con préstamos en el banco:

nombre-cliente (prestatario)•

Nombres de los clientes con cuenta en el banco:

nombre-cliente (impositor)

nombre-cliente (prestatario) U nombre-cliente (impositor)

Page 18: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Ejercicio

• Obtener un listado de las áreas en las que hay oficinas o inmuebles para alquilar.

Page 19: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Diferencia (-)

• La diferencia de dos relaciones compatibles en su esquema es otra relación definida sobre el mismo esquema de relación.

• Estará

constituida por el conjunto de tuplas

que

pertenezcan a R

pero no a R’.•

Construye una relacion

formada por todas las tuplas

de la primera relacion

que no aparezcan en la segunda de las dos relaciones especificadas.

• R -

R’

Page 20: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Conocer todas las personas que sean autores, pero no son editores.

Page 21: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Conocer los nombres de los clientes del banco que tienen abierta una cuenta pero no tienen ningún préstamo

nombre-cliente (impositor) – nombre-cliente (prestatario)

Page 22: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Ejercicio

• Obtener un listado de todas las poblaciones en donde hay una oficina y no hay inmuebles para alquilar.

Page 23: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Producto cartesiano generalizado X

• A partir de dos relaciones especificadas, construye una relacion

que contiene todas las combinaciones

posibles de tuplas, una de cada una de las dos relaciones.

• R X S, los esquemas de ambas relaciones se mezclan y unen.

Page 24: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada
Page 25: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada
Page 26: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Se desea averiguar los nombres de todos los clientes que tienen concedido un préstamo en la sucursal de Navacerrada.

nombre-sucursal = ‘Navacerrada’

(prestatario X préstamo)

Page 27: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

prestatario.número-préstamo = préstamo.número- préstamo ( nombre-sucursal = ‘Navacerrada’ (prestatario X préstamo))

nombre-cliente ( prestatario.número-préstamo = préstamo.número-préstamo ( nombre-sucursal = ‘Navacerrada’ (prestatario X préstamo)))

Page 28: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Obtener los nombres de los inquilinos y lo

s

comentarios que éstos han realizado cuando han visto algún inmueble.

Page 29: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

Page 30: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Reunión (θ

)

• A partir de dos relaciones especificadas, construye una relacion

que contiene todas las posibles

combinaciones de tuplas, una de cada una de las dos relaciones, tales que las dos tuplas

participantes en

una combinación dada satisfagan alguna condicion especificada.

• Permite reconstruir las tablas originales previas al proceso de normalización.

• Se combina proyección, selección y producto cartesiano en una sola operación, donde la condición θ

es la igualdad Clave Primaria = Clave Foranea, y la

proyección elimina la columna duplicada (clave foranea).

Page 31: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada
Page 32: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Obtener los nombres y los comentarios que los inquilinos han realizado cuando han visto algún inmueble.

Page 33: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Intersección (∩)

• La intersección de dos relaciones compatibles en su esquema es otra relación definida sobre el mismo esquema de relación, cuya extensión estará

constituida por las tuplas

que pertenezcan a ambas relaciones.

• Construye una relacion

formada por todas aquellas

tuplas

que aparecen en las 2 relaciones especificadas.

• R ∩

R’

• Se puede escribir en función de la union

y la

diferencia: R ∩

R’=(R U R’)-((R-R’) U (R’-R))

Page 34: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Conocer a autores que son editores

Page 35: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• División (:)

• La división de dos relaciones es otra relación cuya extensión estará

constituida por las tuplas

que al

completarse con las tuplas

de la segunda relación permiten obtener la primera.

• R : R’

• Se puede escribir en función de la proyeccion, producto cartesiano y diferencia.

Page 36: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Conocer los autores que han publicado en las editoriales Addison y Rama

Page 37: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

• Dadas las 2 relaciones siguientes, indique un query

en

algebra relacional para encontrar los nombres de las estrellas que trabajan en películas cuya duración sera

mayor o igual que 100.

• Movie (title,year,length,filmType,studioName)

• Movie_star(title,year,starName)

Page 38: Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre relaciones • Cada uno de estos operadores toma una o dos relaciones como entrada

Investigar:•

Objetivos e importancia de SQL.

Evolución histórica.

Consultas simples a través de SELECT.•

Selección de filas utilizando WHERE.

Orden de los resultados con ORDER BY.•

Funciones de agregación de SQL (COUNT, SUM, AVG, MIN, MAX).

Otras funciones ej. BETWEEN, DISTINCT.•

Agrupando resultados GROUP BY, HAVING.