Logo Studenta

Algebra Relacional

¡Este material tiene más páginas!

Vista previa del material en texto

Álgebra relacional
Documento de lectura
INDICE
Lenguajes de consultas ..................................................................... 1
Álgebra relacional .............................................................................. 1
Operaciones fundamentales del álgebra relacional ........................... 2
Operaciones conjuntistas .................................................................. 2
Operadores Relacionales - Unarios .................................................... 6
Operadores relacionales Binarias ....................................................... 7
OPERADOR BINARIO JOIN ................................................................. 11
JOIN EXTERNO (OUTER JOIN),(RIGHT JOIN) Y (LEFT JOIN) ............. 11
JOIN Natural ....................................................................................... 11
Ejemplo Natural Join .......................................................................... 12
Ejemplo: (left Join y rigth outer Join) ................................................. 12
Tres tipos de JOIN .............................................................................. 13
Join externo izquierdo (left ounter join) ............................................. 13
Join externo derecho (rigth outer join) ............................................... 14
Join externo completo ........................................................................ 14
Practicando las relaciones usando el operador JOIN......................... 15
Bibliografía ........................................................................................ 17
1
Lenguajes de consultas 
Un lenguaje de consultas es aquel en el que los usuarios solicitan información de la base de datos. 
Estos lenguajes suelen ser superior que el de los lenguajes de programación habituales. Los lenguajes 
de consultas, pueden clasificarse como procedimentales o no procedimentales. En los lenguajes 
procedimentales el usuario indica al sistema que lleve a cabo una serie de operaciones en la base de 
datos para calcular el resultado deseado. En los lenguajes no procedimentales el usuario describe la 
información deseada sin dar un procedimiento concreto para obtener esa información.
Existen varios lenguajes de consultas puros: el álgebra relacional es procedimental e ilustra 
técnicas fundamentales para la extracción de datos.
Álgebra relacional 
El Álgebra Relacional es un lenguaje procedural para la manipulación de relaciones. 
El álgebra relacional define nueve operaciones: unión, intersección, diferencia y producto (que vienen de 
la teoría de conjuntos de la matemática), selección, proyección, reunión y división (que son las que se 
aplican específicamente al modelo de datos relacional) y asignación (operación estándar de los lenguajes 
de computación) que le da un valor a un nombre, para la operación de asignación ocuparemos: 
2
Una característica destacable de todas las operaciones del álgebra relacional es que tanto los 
operandos como el resultado son relaciones. Esta propiedad se denomina cierre relacional.
Los operadores relacionales se pueden clasificar a su vez en operadores unarios aplicados a una sola 
relación o binarios aplicados a más de una relación
A continuación, el siguiente gráfico clasifica los tipos de operadores:
Operaciones fundamentales del álgebra relacional
Operaciones conjuntistas 
Unión U:
Operación del álgebra relacional que crea un conjunto, unión de dos relaciones, unión compatibles.
3
Unión compatible: Dos o más relaciones que tienen columnas equivalentes en número y dominios.
Ejemplo:
Vendedor_subordinado
{VENS_ID_VENDEDOR, VENS_NOMB_VENDEDOR, VENS_ID_JEFE, VENS_OFICINA, VENS_COMISIO}
Vendedor_jefe
{VENJ_ID_VENDEDOR, VENJ_NOMB_VENDEDOR, VENJ_ID_JEFE, VENJ_OFICINA, VENJ_COMISION}
Si queremos calcular el conjunto de todos los vendedores:
vendedor:= vendedor_subordinado U vendedor_jefe
Intersección ∩:
Operación del álgebra relacional que crea un conjunto intersección de dos relaciones unión compatibles.
 
 
4
Si queremos calcular el conjunto de los vendedores que son jefes y subordinados a la vez:
VENDEDOR_JEFE_SUBORDINADO := VENDEDOR_SUBORDINADO ∩ VENDEDOR_JEFE
Diferencia -: Operación del álgebra relacional que crea un conjunto diferencia de dos relaciones unión 
compatibles. Ojo que la diferencia no es conmutativa.
 
 
Si queremos calcular quién (es) son jefe solamente (es decir, quien es el personaje que está en VENDEDOR_
JEFE, pero que no está en VENDEDOR_SUBORDINADO):
VENDEDOR_JEFE_JEFE := VENDEDOR_JEFE - VENDEDOR_SUBORDINADO
Producto *: Operación del álgebra relacional que crea el producto cartesiano de dos relaciones. 
5
sí A {X, Y} tiene los siguientes elementos
y B {W, Z} contiene:
Entonces el producto de A y B es:
C := A * B
Ojo que si hacemos el producto cartesiano de dos relaciones que tienen un atributo en común, vamos 
a tener un problema con el nombre de la columna, para ello se recomienda como regla general que el 
nombre de un atributo está compuesto por:
1. Una sigla que hace referencia al nombre de la relación 
2. Un subrayado
3. El nombre del atributo
6
Ejemplo: 
PRODUCTO {PROD_ID_PROD, PROD_NOMBRE, ...} 
VENTA {VTA_ID_PROD, VTA_FECHA, ...}
Operadores Relacionales - Unarios
Operadores unarios operan sobre una sola relación, en cambio los operadores binarios se aplican sobre 
2 relaciones. En ambos casos, siempre devuelven una sola relación como resultado.
Proyección [π]: Operación del álgebra relacional que crea una relación borrando columnas de una 
relación existente.
El operador de proyección se denota con la letra P del alfabeto griego [π] (pi). 
 
Ojo que la proyección genera conjuntos, luego si en la tabla original la subtupla seleccionada se repite, 
al proyectar sólo vemos la fila una vez.
Consulta: ¿Quiénes son los vendedores que tienen una comisión menor que 20%?
SELECT (VENDEDOR : VEND_COMISION < 20) [VEND_NOMBRE]
Selección SELECT: Operación del álgebra relacional que usa una condición para seleccionar filas de una 
relación. Si quisiéramos resolver la siguiente consulta: Dar toda la información de los vendedores en la 
oficina de Tokyo.
El operador de selección se denota con la letra S del alfabeto griego (sigma) [σ].
VEND_TOKYO := SELECT (VENDEDOR : VEND_OFICINA = ‘Tokyo’) 
Noten que las condiciones de selección (las que van después del ‘:’) son similares a las usadas en la 
instrucción IF.
7
Consulta: ¿Qué vendedores tienen ID 23? 
SELECT (VENDEDOR : VEND_ID_VENDEDOR = 23) 
Consulta: ¿Qué vendedores tienen trabajan en Tokio y tienen comisión superior a 11%? 
SELECT (VENDEDOR : VEND_OFICINA = ‘Tokyo’ and VEND_COMISION > 11)
Operadores relacionales Binarias
Combinación JOIN (reunión): A partir de las relaciones especificadas construye una relación concatenando 
cada tupla de la primera relación con cada una de las tuplas de la segunda, siempre que ambas tuplas 
satisfagan la condición dada. Si la condición es igualdad y en la relación resultante se elimina el atributo 
común, se denomina combinación natural, en la combinación externa se incluyen las tuplas de una 
relación que no están relacionadas con otra relación concatenando con NULOS. 
 
BECASEXTERNAS 
8
BECASESPECIALES 
Planteamiento 
1. Se desea tener una lista de estudiantes que tienen al menos una Beca.
2. Conseguir una lista de estudiantes que están asignados en ambas Becas.
3. Obtener los estudiantes que tienen solo Beca externa.
4. Obtener las posibles combinaciones de alumnos que tienen ambas Becas (Externa y especial).
5. Proyectar los nombres de los alumnos.
6. Mostrar los alumnos de becas externas que viven en managua.
Para la solución de estos planteamientos sigue los siguientes pasos:
1. Consulte el manual de instalación del programa Relational 
2. Ejecute el programa Relational.
3. Descargar de la plataforma los archivos Tabla#1: Becas Externas, y Tabla#2: Becas Especiales 
en formato .cvs al escritorio de tu PC.
4. Haga clic en la opción Load para cargar desde elprograma Relational, las tablas Becas Externas, 
y Becas Especiales.
 
9
5. Seleccione las tablas guardadas en el escritorio de la computadora
 
6. Verifique que las tablas han sido incorporadas.
 
7. Interactúe con el software y las tablas para conocer los datos que almacena
a. Tablas incorporadas al software Relational
b. Lista de atributos de la tabla seleccionada
c. Datos de la tabla seleccionada
d. Operadores unarios y binarios
e. Bitácora de consultas
f. Inserción y ejecución de consultas
g. Opciones para la gestión de tablas 
 
10
Seguidamente haremos las primeras consultas
• Se desea obtener una lista de estudiantes que tengan al menos una beca.
Esto se resolvería con una unión
Ingrese en el cuadro de texto la consulta y haga clic en el botón Execute
R1=becasexternas U becasespeciales
 
• Conseguir una lista de estudiantes que están asignados en ambas becas.
R2=becasexternas ∩ becasespeciales
 
• Obtener una lista de estudiantes que tienen solo becas externas
R3=becasexternas - becasespeciales
 
11
• Proyectar los nombres de alumnos
R4=πPnombre(becasexternas U becasespeciales)
 
• Mostrar los nombres de alumnos de becas externas que viven en Managua
R5=πPnombre(σLugar==”Managua”(becasexternas))
OPERADOR BINARIO JOIN
JOIN NATURAL (INNER JOIN) Con esta operación se calcula el producto cruzado de todos los registros; 
así cada registro en la tabla A es combinado con cada registro de la tabla B; pero sólo permanecen 
aquellos registros en la tabla combinada que satisfacen las condiciones que se especifiquen. Este es el 
tipo de JOIN más utilizado por lo que es considerado el tipo de combinación predeterminado.
JOIN EXTERNO (OUTER JOIN),(RIGHT JOIN) Y (LEFT JOIN)
Mediante esta operación no se requiere que cada registro en las tablas a tratar tenga un registro 
equivalente en la otra tabla. El registro es mantenido en la tabla combinada si no existe otro registro que 
le corresponda.
JOIN Natural
Es el operador más importante del álgebra relacional cuyo papel primordial es fusionar en una sola 
relación dos relaciones que tengan al menos un atributo en común. 
Si sólo se considera uno de los atributos comunes en la relación resultado se denomina JOIN Natural o 
sólo JOIN
R * S
12
A continuación, se puede observar la aplicación gráfica del Join Natural
Ejemplo Natural Join
Ejemplo: (left Join y rigth outer Join)
13
Tres tipos de JOIN
Al igual que el operador unión, se puede definir un operador JOIN externo del inglés outer join, right 
join, left join.
En la realidad se debe hablar de tres tipos de Join externos y que formalmente se definen:
Join externo izquierdo (left ounter join)
 
14
Join externo derecho (rigth outer join)
Join externo completo
 
15
 
Practicando las relaciones usando el operador JOIN
Descargar de la plataforma los archivos Tabla#1: Turista, Tabla#2: Sitio y Tabla#2: Viaje en formato 
.cvs al escritorio de tu PC.
Importe y aplique las siguientes consultas en el programa Relational
• Dar los números de turistas que han visitado sitios de áfrica.
R1=πNumeroTurista(σContinente==”África”(viaje⋈sitio⋈turista))
 
16
• Dar la información de los viajes y turistas.
R2=viaje⋈turista
 
 
• Dar la lista de nombres y las fechas de salida de los turistas.
R3=πNombreTurista,FechaSalida(viaje⋈turista) 
 
17
Bibliografía 
Silberschatz, A., Korth, H. y Sudarshan, S (2002). Fundamentos de Bases de Datos. McGraw Hill