Documente Academic
Documente Profesional
Documente Cultură
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
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
Sintaxis σP(r)
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
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
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)
Ejemplo:
Π apellido, nombre(clientes) ∩ Π apellido, nombre (prestamos)
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
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
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.
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):