Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre...
Transcript of Algebra Relacional - informaticosst.files.wordpress.com · Conjunto de operadores que opera sobre...
![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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/1.jpg)
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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/2.jpg)
•
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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/3.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/4.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/5.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/6.jpg)
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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/7.jpg)
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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/8.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/9.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/10.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/11.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/12.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/13.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/14.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/15.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/16.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/17.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/18.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/19.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/20.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/21.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/22.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/23.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/24.jpg)
![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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/25.jpg)
![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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/26.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/27.jpg)
•
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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/28.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/29.jpg)
•
![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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/30.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/31.jpg)
![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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/32.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/33.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/34.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/35.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/36.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/37.jpg)
• 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](https://reader030.fdocuments.ec/reader030/viewer/2022040405/5e9aecce51c6573ba5702d35/html5/thumbnails/38.jpg)
•
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.