Post on 15-Apr-2017
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.
FUNDAMENTOS DE BASE DE DATOS
CompetenciaAplicar el álgebra relacional para la manipulación de datos.
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
Á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
• 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
• 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
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
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
• Relación resultante de la consulta
FUNDAMENTOS DE BASE DE DATOS
• 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
• 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
• Ejercicio:
FUNDAMENTOS DE BASE DE DATOS
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
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
• 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
• 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
• Ejercicio:
FUNDAMENTOS DE BASE DE DATOS
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
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
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
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
Ejercicio
FUNDAMENTOS DE BASE DE DATOS
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
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
• Ejercicio de Diferencia de Conjuntos
FUNDAMENTOS DE BASE DE DATOS
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
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
• Ejercicio de producto cartesiano:Π nombre-cliente (σ clientes.apellido-cliente=prestamos.apellido-cliente(σ nombre-sucursal= «GUASAVE» (clientes x prestamos)))
FUNDAMENTOS DE BASE DE DATOS
FUN
DAM
ENTO
S D
E BA
SE D
E D
ATO
S
Resultado Final
FUNDAMENTOS DE BASE DE DATOS
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
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
• Ejercicio de intersección de conjuntos
FUNDAMENTOS DE BASE DE DATOS
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
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)
• 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
• 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
Resultado:
FUNDAMENTOS DE BASE DE DATOS
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
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
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
• 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
• 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
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
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
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
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
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