fundamentos de bd - unidad 5 algebra relacional

48
FUNDAMENTOS DE BASE DE DATOS Unidad V: Álgebra Relacional Este material está desarrollado para la asignatura Fundamentos de Base de Datos, de la carrera de Ingeniería en Sistemas Computacionales, plan de estudios ISIC-2010-224.

Upload: jose-antonio-sandoval-acosta

Post on 15-Apr-2017

105 views

Category:

Engineering


4 download

TRANSCRIPT

Page 1: Fundamentos de BD - Unidad 5 algebra relacional

FUNDAMENTOS DE BASE DE DATOS

Unidad V: Álgebra Relacional

Este material está desarrollado para la asignatura Fundamentos de Base de Datos, de la carrera de Ingeniería en Sistemas Computacionales, plan de estudios ISIC-2010-224.

Page 2: Fundamentos de BD - Unidad 5 algebra relacional

FUNDAMENTOS DE BASE DE DATOS

CompetenciaAplicar el álgebra relacional para la manipulación de datos.

Page 3: Fundamentos de BD - Unidad 5 algebra relacional

Competencia Específica de la Unidad• Aplicar el álgebra relacional para la manipulación de datos.

Desarrollo de la Unidad• En la unidad cinco, se trabaja con álgebra relacional a un nivel de

comprensión de las funciones que se utilizan en lenguaje de consulta SQL, sin profundizar en la formalización matemática.

FUNDAMENTOS DE BASE DE DATOS

Page 4: Fundamentos de BD - Unidad 5 algebra relacional

Álgebra Relacional

• Un álgebra es un sistema matemático constituido por operandos: objetos (valores o variables) desde los cuales nuevos objetos pueden ser construidos, y por operadores: símbolos que denotan nuevos objetos desde objetos dados.

FUNDAMENTOS DE BASE DE DATOS

Page 5: Fundamentos de BD - Unidad 5 algebra relacional

• El álgebra relacional es un álgebra en la cual sus operandos son relaciones (instancias) o variables que representan relaciones. Sus operadores están diseñados para hacer las tareas más comunes que se necesitan para manipular relaciones en una base de datos.• El resultado es que el álgebra relacional se puede utilizar como un

lenguaje de consulta.

FUNDAMENTOS DE BASE DE DATOS

Page 6: Fundamentos de BD - Unidad 5 algebra relacional

• El álgebra relacional es un lenguaje de consulta procedimental. Consta de un conjunto de operaciones que toman como entrada una o dos relaciones y producen como resultado una nueva relación. • Las operaciones fundamentales del álgebra relacional son selección,

proyección, unión, diferencia de conjuntos, producto cartesiano y renombramiento. • Además de las operaciones fundamentales hay otras operaciones, por

ejemplo; intersección de conjuntos, reunión natural, división y asignación. Estas operaciones se definirán en términos de las operaciones fundamentales.

FUNDAMENTOS DE BASE DE DATOS

Page 7: Fundamentos de BD - Unidad 5 algebra relacional

Operaciones fundamentales del álgebra relacional

• Las operaciones selección, proyección y renombramiento se denominan operaciones unarias, porque operan sobre una sola relación. Las otras tres operaciones funcionan sobre pares de relaciones y se denominan, por lo tanto, operaciones binarias.

FUNDAMENTOS DE BASE DE DATOS

Page 8: Fundamentos de BD - Unidad 5 algebra relacional

La Operación Selección (σ)• La operación selección selecciona tuplas que satisfacen un predicado

dado. Se utiliza la letra griega sigma minúscula (σ) para denotar la selección. El predicado aparece como subíndice de σ. La relación del argumento se da entre paréntesis a continuación del predicado.

Sintaxis σP(r)

• Por ejemplo, para seleccionar las tuplas de la relación préstamo en que el nombre-sucursal es «GUASAVE» hay que escribir:

σnombre-sucursal = «GUASAVE» (préstamo)

FUNDAMENTOS DE BASE DE DATOS

Page 9: Fundamentos de BD - Unidad 5 algebra relacional

• Relación resultante de la consulta

FUNDAMENTOS DE BASE DE DATOS

Page 10: Fundamentos de BD - Unidad 5 algebra relacional

• En general, se permiten las comparaciones que utilizan =, ≠, <, ≤, > y ≥ en el predicado de selección. Además, se pueden combinar varios predicados en uno mayor utilizando las conectivas and (∧) y or (∨). • Ejemplo: buscar todas las tuplas en las que el importe prestado sea

mayor que 1.200 escribiendo:σimporte>1200 (préstamo)

• Relación resultante:

FUNDAMENTOS DE BASE DE DATOS

Page 11: Fundamentos de BD - Unidad 5 algebra relacional

• El predicado de selección puede incluir comparaciones entre dos atributos. Por ejemplo; considere la relación responsable-préstamo, que consta de tres atributos: nombre-cliente, nombre-banquero y númeropréstamo, que especifica que un empleado concreto es el responsable del préstamo concedido a un cliente. Para hallar todos los clientes que se llaman igual que su responsable de préstamos se puede escribir:

σnombre-cliente = nombre-banquero (responsable-préstamo)

• Dado que el valor especial nulo indica «valor desconocido o inexistente», cualquier comparación que implique a un valor nulo se evalúa como falsa.

FUNDAMENTOS DE BASE DE DATOS

Page 12: Fundamentos de BD - Unidad 5 algebra relacional

• Ejercicio:

FUNDAMENTOS DE BASE DE DATOS

Page 13: Fundamentos de BD - Unidad 5 algebra relacional

Obtener las tuplas con las siguientes características: 1. Empleados con sueldo mayor a 1000.002. Empleados que pertenecen al depto. A33. Empleados que ingresaron antes del año 20034. Empleados que entraron en el año 20035. Empleados que pertenecen al depto. A1 y tienen un sueldo igual o

mayor a 1200.006. Empleados que entraron antes del año 2004 y tienen un sueldo

menor a 1000.00

FUNDAMENTOS DE BASE DE DATOS

Page 14: Fundamentos de BD - Unidad 5 algebra relacional

La Operación Proyección (Π)• La operación proyección es una operación unaria que devuelve su

relación de argumentos, excluyendo algunos argumentos. • Supóngase que se desea hacer una lista de todos los números de

préstamo y del importe de los mismos, pero sin que aparezcan los nombres de las sucursales.• Dado que las relaciones son conjuntos, se eliminan todas las filas

duplicadas. La proyección se denota por la letra griega mayúscula pi (Π). Se crea una lista de los atributos que se desea que aparezcan en el resultado como subíndice de Π.

FUNDAMENTOS DE BASE DE DATOS

Page 15: Fundamentos de BD - Unidad 5 algebra relacional

• La relación a la que pertenecen los argumentos se escribe a continuación de los mismos entre paréntesis. Por tanto, la consulta para crear una lista de todos los números de préstamo y del importe de los mismos puede escribirse como sigue:

Πnúmero-préstamo, importe (préstamo)

FUNDAMENTOS DE BASE DE DATOS

Page 16: Fundamentos de BD - Unidad 5 algebra relacional

• Es importante el hecho de que el resultado de una operación relacional sea también una relación. Considérese la consulta más compleja «Encontrar los clientes que viven en «guasave». Hay que escribir:

Πnombre-cliente (σciudad-cliente = «guasave» (cliente))

• Debemos tener en cuenta que, en vez de dar en el argumento de la operación proyección el nombre de una relación, se da una expresión que se evalúa como una relación.

FUNDAMENTOS DE BASE DE DATOS

Page 17: Fundamentos de BD - Unidad 5 algebra relacional

• Ejercicio:

FUNDAMENTOS DE BASE DE DATOS

Page 18: Fundamentos de BD - Unidad 5 algebra relacional

De la tabla anterior obtener las tuplas correspondientes:1. El nombre y la sucursal de todos los clientes.2. El nombre, fecha de préstamo y cantidad de los clientes de la sucursal

Los Mochis.3. El número de préstamo, nombre y apellido del cliente, y el importe de

aquellos prestamos que son anteriores al 2012.4. Apellido del cliente e importe prestado de aquellos que son de la

sucursal Guasave y el monto es mayor a 1000.5. Número de préstamo, fecha y apellido del cliente cuyo monto sea

menor a 1000 y la fecha del préstamo del año 2013

FUNDAMENTOS DE BASE DE DATOS

Page 19: Fundamentos de BD - Unidad 5 algebra relacional

La Operación Unión (∪ )• En ocasiones se requiere extraer información de dos o más relaciones, por

o que las operaciones que hemos visto hasta ahora no funcionan por si solas ya que son operaciones unarias. Por lo tanto se requiere de un nuevo tipo de operación que es binaria, es decir, trabaja con dos tablas o más.• La unión de dos relaciones A y B que deben ser compatibles a tal

operación, es el conjunto de tuplas que pertenecen a la relación A, a la relación B o a ambas relaciones, y es denotada, como en la teoría de conjuntos, por ∪:

A ∪ B (A UNION B)

FUNDAMENTOS DE BASE DE DATOS

Page 20: Fundamentos de BD - Unidad 5 algebra relacional

Dos relaciones son compatibles a la unión si y solo si:

• Tienen el mismo número de atributos (es decir son del mismo grado), y• Tienen atributos equivalentes dentro de las dos relaciones, es decir: El

atributo 1 de la relación A debe estar definido en el mismo dominio del atributo 1 de la relación B, el atributo 2 de la relación A debe estar definido en el mismo dominio del atributo 2 de la relación B, y así sucesivamente.

FUNDAMENTOS DE BASE DE DATOS

Page 21: Fundamentos de BD - Unidad 5 algebra relacional

Todos ΠEMP#, SAL (Solteros) ∪ Π#EMP, SUELDO (Casados)

• El resultado de la unión conserva los nombres de los atributos de la primer relación.

FUNDAMENTOS DE BASE DE DATOS

Page 22: Fundamentos de BD - Unidad 5 algebra relacional

Ejercicio

FUNDAMENTOS DE BASE DE DATOS

Page 23: Fundamentos de BD - Unidad 5 algebra relacional

Obtener las tuplas que cumplan con lo siguiente:1. Unión de ambas relaciones.2. Unión de ambas relaciones dónde los clientes tengan un crédito por

monto superior a 1000.3. Unión de ambas relaciones dónde los clientes hayan recibido su

préstamo con fecha del año 2014.4. Unión de ambas relaciones dónde los clientes hayan recibido su

préstamo antes del año 2012.5. Unión de ambas relaciones dónde los clientes tengan un préstamo

menor o igual a 1000.

FUNDAMENTOS DE BASE DE DATOS

Page 24: Fundamentos de BD - Unidad 5 algebra relacional

Operación Diferencia de Conjuntos (–)• En álgebra relacional la diferencia entre dos relaciones compatibles A y B

produce el conjunto de todas las tuplas t que pertenecen a A y no pertenecen a B. Se representa con el signo menos (-):

A – B (A menos B)

EjemploΠ apellido, nombre(clientes) – Π apellido, nombre(prestamos)

El ejemplo anterior regresa todos los clientes que no tienen un préstamo

FUNDAMENTOS DE BASE DE DATOS

Page 25: Fundamentos de BD - Unidad 5 algebra relacional

• Ejercicio de Diferencia de Conjuntos

FUNDAMENTOS DE BASE DE DATOS

Page 26: Fundamentos de BD - Unidad 5 algebra relacional

Obtenga lo siguiente aplicando diferencia de conjuntos1. Nombre y apellido de todos los clientes que no tienen un préstamo2. Nombre y apellido de todos los clientes que son de los Mochis y

que no tienen préstamo3. Nombre y apellido de todos los clientes que son de Guasave tienen

préstamo mayor o igual a 2000.Π apellido, nombre(σimporte>=2000(prestamos)) – Π apellido,

nombre(σciudad-cliente<>«Guasave»(prestamos))

FUNDAMENTOS DE BASE DE DATOS

Page 27: Fundamentos de BD - Unidad 5 algebra relacional

Operación Producto Cartesiano (×)• La operación producto cartesiano, denotada por un aspa (×), permite

combinar información de cualesquiera dos relaciones. El producto cartesiano de las relaciones A y B como:

A × B (A Veces B )• Produce el conjunto de todas las tuplas t tales que t es el encadenamiento

de una tupla a perteneciente a A y de una b que pertenece a B. se utiliza el símbolo × para representar el producto.• Es decir, dadas dos relaciones específicas, construye una tercera relación

que contiene todas las combinaciones posibles de tuplas, una de cada una de las relaciones

FUNDAMENTOS DE BASE DE DATOS

Page 28: Fundamentos de BD - Unidad 5 algebra relacional

• Ejercicio de producto cartesiano:Π nombre-cliente (σ clientes.apellido-cliente=prestamos.apellido-cliente(σ nombre-sucursal= «GUASAVE» (clientes x prestamos)))

FUNDAMENTOS DE BASE DE DATOS

Page 29: Fundamentos de BD - Unidad 5 algebra relacional

FUN

DAM

ENTO

S D

E BA

SE D

E D

ATO

S

Page 30: Fundamentos de BD - Unidad 5 algebra relacional

Resultado Final

FUNDAMENTOS DE BASE DE DATOS

Page 31: Fundamentos de BD - Unidad 5 algebra relacional

Otras Operaciones• Las operaciones fundamentales del álgebra relacional son suficientes

para expresar cualquier consulta del álgebra relacional. Sin embargo, si uno se limita únicamente a las operaciones fundamentales, algunas consultas habituales resultan de expresión intrincada. • Por lo tanto, se definen otras operaciones que no añaden potencia al

álgebra, pero que simplifican las consultas habituales. Para cada operación nueva se facilita una expresión equivalente utilizando sólo las operaciones fundamentales.

FUNDAMENTOS DE BASE DE DATOS

Page 32: Fundamentos de BD - Unidad 5 algebra relacional

La Operación Intersección de Conjuntos (∩)• En álgebra relacional la intersección de dos relaciones compatibles A y B

(A ∩ B) o (A INTERSECCION B)

• Esta operación produce el conjunto de todas las tuplas pertenecientes a A y B. Al igual que en teoría de conjuntos el símbolo ∩ representa aquí la intersección entre dos relaciones.

Ejemplo: Π apellido, nombre(clientes) ∩ Π apellido, nombre (prestamos)

Devuelve todos los clientes que tienen un préstamo

FUNDAMENTOS DE BASE DE DATOS

Page 33: Fundamentos de BD - Unidad 5 algebra relacional

• Ejercicio de intersección de conjuntos

FUNDAMENTOS DE BASE DE DATOS

Page 34: Fundamentos de BD - Unidad 5 algebra relacional

Obtenga las siguientes intersecciones:1. Nombre y apellido de los clientes que tienen un préstamo2. Nombre y apellido de los clientes que tienen un préstamo y son de la

ciudad de Guasave3. Nombre y apellido de los clientes que tienen un préstamo mayor a

10004. Nombre y apellido de los clientes que tienen un préstamo y fue

otorgado antes del año 2014

FUNDAMENTOS DE BASE DE DATOS

Page 35: Fundamentos de BD - Unidad 5 algebra relacional

La operación reunión natural ( Join)• Dadas dos relaciones específicas A y B, construye una tercera relación C que

combina ciertas selecciones, proyección y un producto cartesiano en una sola operación. Se representa con el símbolo

FUNDAMENTOS DE BASE DE DATOS

A B (A Reunión B) o (A Join B)

Page 36: Fundamentos de BD - Unidad 5 algebra relacional

• La reunión natural es una operación binaria que permite combinar ciertas selecciones y un producto cartesiano en una sola operación. La operación reunión natural forma un producto cartesiano de sus dos argumentos, realiza una selección forzando la igualdad de los atributos que aparecen en ambos esquemas de relación y, finalmente, elimina los atributos duplicados.

FUNDAMENTOS DE BASE DE DATOS

Page 37: Fundamentos de BD - Unidad 5 algebra relacional

• Ejemplo: Averiguar los nombres de todos los clientes que tienen concedido un préstamo, el importe de éste y la sucursal donde se lo otorgaron;

Prestatario Préstamo

Π N_cliente, N_Sucursal, $Importe (Prestatario Préstamo)

FUNDAMENTOS DE BASE DE DATOS

Page 38: Fundamentos de BD - Unidad 5 algebra relacional

Resultado:

FUNDAMENTOS DE BASE DE DATOS

Page 39: Fundamentos de BD - Unidad 5 algebra relacional

La operación División ()• La operación división, denotada

por ÷, resulta adecuada para las consultas que incluyen la expresión «para todos». • Supóngase que se desea hallar

el producto de la división de la relación r entre la relación s.

r s

FUNDAMENTOS DE BASE DE DATOS

Page 40: Fundamentos de BD - Unidad 5 algebra relacional

Valores Nulos• En este apartado se define la forma en que las diferentes operaciones

del álgebra relacional tratan los valores nulos y las complicaciones que surgen cuando los valores nulos participan en las operaciones aritméticas o en las comparaciones.• Dado que el valor especial nulo indica «valor desconocido o no

existente», cualquier operación aritmética (como +, –, * y /) que incluya valores nulos debe devolver un valor nulo.• De manera similar, cualquier comparación (como <, <=, >, >= y ≠) que

incluya un valor nulo se evalúa al valor especial desconocido; no se puede decir si el resultado de la comparación es cierto o falso, así que se dice que el resultado es el nuevo valor lógico desconocido.

FUNDAMENTOS DE BASE DE DATOS

Page 41: Fundamentos de BD - Unidad 5 algebra relacional

Valores Nulos• Las comparaciones que incluyan nulos pueden aparecer dentro de

expresiones booleanas que incluyan las operaciones y (conjunción), o (disyunción) y no (negación). Se debe definir la forma en que estas operaciones tratan el valor lógico desconocido.• y: (cierto y desconocido) = desconocido; (falso y desconocido) = falso;

(desconocido y desconocido) = desconocido.• o: (cierto o desconocido) = cierto; (falso o desconocido) = desconocido;

(desconocido o desconocido) = desconocido.• no: (no desconocido) = desconocido.

FUNDAMENTOS DE BASE DE DATOS

Page 42: Fundamentos de BD - Unidad 5 algebra relacional

• reunión: las reuniones se pueden expresar como un producto cartesiano seguido de una selección. Por tanto, la definición de la forma en que la selección trata los nulos también define la forma en que la operación reunión trata los nulos.• proyección: la operación proyección trata los nulos como cualquier

otro valor al eliminar duplicados. Así, si dos tuplas del resultado de la proyección son exactamente iguales, y ambos tienen nulos en los mismos campos, se tratan como duplicados. La decisión es un tanto arbitraria porque sin saber cuál es el valor real no se sabe si los dos valores nulos son duplicados o no.

FUNDAMENTOS DE BASE DE DATOS

Page 43: Fundamentos de BD - Unidad 5 algebra relacional

• unión, intersección, diferencia: estas operaciones tratan los valores nulos al igual que la operación proyección; tratan las tuplas que tienen los mismos valores en todos los campos como duplicados incluso si algunos de los campos tienen valores nulos en ambas tuplas.• El comportamiento es un tanto arbitrario, especialmente en

el caso de la intersección y la diferencia, dado que no se sabe si los valores reales (si existen) representados por los nulos son los mismos.

FUNDAMENTOS DE BASE DE DATOS

Page 44: Fundamentos de BD - Unidad 5 algebra relacional

Operaciones de Modificación de la Base de Datos

• Hasta ahora hemos visto como obtener información desde la Base de Datos. En ocasiones es necesario entregar herramientas para poder alterar el estado de la Base de Datos.• Eliminación, Inserción, Actualización son algunas de las tareas

necesarias, usaremos el álgebra relacional.

FUNDAMENTOS DE BASE DE DATOS

Page 45: Fundamentos de BD - Unidad 5 algebra relacional

Operación de Eliminación• Usamos el operador de diferencia (−) y asignación (←)

r ← r − EDonde r es una relación y E una expresión del álgebra relacional.

Ejemplo: Eliminar los datos de los empleados que se apellidan «Soto»

empleado ← empleado - apellido_empleado = «Soto» (empleado)

FUNDAMENTOS DE BASE DE DATOS

Page 46: Fundamentos de BD - Unidad 5 algebra relacional

Operación de Inserción• Para realizar la inserción de tuplas en una relación usamos el

operador de unión.r ← r E∪

donde r es una relación y E una expresión del álgebra relacional.• Ejemplo: Agregar el departamento de Finanzas con código A5 y fecha

de creación 5/8/2004departamento ← departamento {(Finanzas,A5, 5/8/2004)}∪

FUNDAMENTOS DE BASE DE DATOS

Page 47: Fundamentos de BD - Unidad 5 algebra relacional

Operación de Actualización• A veces queremos cambiar el valor de algún atributo de una tupla sin

cambiarla entera. Podría hacerse una eliminación e inserción, pero resulta laborioso muchas veces. Para hacer esta operación usamos un nuevo operador (no reasignamos):

que representa el hecho de cambiar el atributo A por la expresión matemática E en la relación r.

FUNDAMENTOS DE BASE DE DATOS

Page 48: Fundamentos de BD - Unidad 5 algebra relacional

Ejemplo: Subir el sueldo de todos los empleados en%10 si su sueldo actual es mayor que $1.000.000 y en %20 si es menor

sueldo←sueldo 1.1(sueldo≥1000000(empleado))∗sueldo←sueldo 1.2(sueldo<1000000(empleado))∗

FUNDAMENTOS DE BASE DE DATOS