Sunteți pe pagina 1din 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.
FUNDAMENTOS DE BASE DE DATOS

Competencia
Aplicar el álgebra relacional para la manipulación de datos.
FUNDAMENTOS DE BASE 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.00
2. Empleados que pertenecen al depto. A3
3. Empleados que ingresaron antes del año 2003
4. Empleados que entraron en el año 2003
5. Empleados que pertenecen al depto. A1 y tienen un sueldo igual o
mayor a 1200.00
6. 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 conjuntos
1. Nombre y apellido de todos los clientes que no tienen un préstamo
2. Nombre y apellido de todos los clientes que son de los Mochis y
que no tienen préstamo
3. 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
FUNDAMENTOS DE BASE DE DATOS
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éstamo
2. Nombre y apellido de los clientes que tienen un préstamo y son de la
ciudad de Guasave
3. Nombre y apellido de los clientes que tienen un préstamo mayor a
1000
4. 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 

A  B (A Reunión B) o (A Join B)
FUNDAMENTOS DE BASE DE DATOS
• 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−E
Donde 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/2004
departamento ← 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))

S-ar putea să vă placă și