Algebra Relacional
Ingeniería de Sistemas y
Modelamiento.
Nelson Vásquez.
Yonathan Cabezas.
Ing. en Computación e Informática. Inst. Prof. La Araucana.
Algebra Relacional
El álgebra relacional consiste de algunas
simples pero poderosas maneras de construir
nuevas relaciones a partir de otras. Si
pensamos que las relaciones iniciales son los
datos almacenados entonces las nuevas
relaciones se pueden ver como respuestas a
algunas consultas deseadas.
Conceptos Básicos
Tabla :Es el tipo de modelamiento, en donde se guardan los datos recolectados
por un sistema de información, su estructura se compone de:
Atributos :Son todas y cada una de las columnas de una tabla
Tuplas :Son todas y cada una de las filas de una tabla.
Tabla Empleados
Operaciones
Consta de 9 operaciones:
–
–
–
–
–
–
–
–
–
Unión.
Diferencia.
Producto Cartesiano.
Selección.
Proyección.
Intersección.
Reunión.
División.
Asignación.
Reunión
Es la operación que conecta relaciones. Se utiliza para
recuperar datos a través de varias tablas conectadas
unas con otras a través de cláusulas JOIN.
Existen tres cláusulas:
Reunión Natural (FULL, INNER).
Reunión Externa (LEFT).
Reunión Externa (RIGHT).
Reunión Natural
FULL JOIN.
Operación de reunión que conecta todas las relaciones.
Ejemplo:
Tabla Empleados
Tabla Salarios
Reunión Natural
FULL JOIN.
Notación
Sentencia SQL:
SELECT * FROM EMPLEADOS E FULL JOIN SALARIO S ON
S.CODIGO = E.CODIGO
Resultado:
Reunión Natural
INNER JOIN.
Operación de reunión que conecta relaciones cuando las columnas
comunes tienen iguales valores.
Notación
Reunión Natural
INNER JOIN.
Sentencia SQL:
SELECT E.CODIGO, E.NOMBRES, E.APELLIDOS, E.TELEFONO,
E.DIRECCION, S.SECCION, S.CARGO, S.SALARIO FROM
EMPLEADOS E INNER JOIN SALARIO S ON S.CODIGO =
E.CODIGO
Resultado:
Reunión EXTERNA
LEFT.
Operación de reunión que conecta todas las relaciones de la tabla
izquierda reemplazando los datos no existentes de la tabla derecha
por valores nulos.
Notación.
Reunión EXTERNA
LEFT.
Sentencia SQL:
SELECT E.CODIGO, E.NOMBRES, E.APELLIDOS, E.TELEFONO,
E.DIRECCION, S.SECCION, S.CARGO, S.SALARIO FROM
EMPLEADOS E LEFT JOIN SALARIO S ON S.CODIGO = E.CODIGO
Resultado:
Reunión EXTERNA
RIGHT.
Operación de reunión que conecta todas las relaciones de la tabla
derecha reemplazando los datos no existentes de la tabla izquierda
por valores nulos.
Notación.
Reunión EXTERNA
RIGHT.
Sentencia SQL:
SELECT E.CODIGO, E.NOMBRES, E.APELLIDOS, E.TELEFONO,
E.DIRECCION, S.SECCION, S.CARGO, S.SALARIO FROM
EMPLEADOS E RIGHT JOIN SALARIO S ON S.CODIGO = E.CODIGO
Resultado:
División o Cociente.
La División se realiza entre dos tablas que cumplan las siguientes
condiciones:
“R” debe tener columnas de “S” y el número de
columnas de “R” ha de ser mayor que el de “S”.
– “S” debe tener al menos una tupla.
– El cociente es una nueva tabla formada por las columnas de “R”
que no están en “S” y por las filas obtenidas al concatenar con
“S” que estén contenidas en “R”.
– Esta operación es útil para los casos en los que la consulta
incluye el cuantificador
y se vuelve necesario crear tablas
intermedias.
A
División o Cociente.
Notación.
Sentencia SQL:
– Para División no existe una sentencia en SQL como para las operaciones
anteriores ( Unión, Intersec, Join) por lo que es necesario hacer una
combinación de sentencias y condiciones para obtener la tabla resultado.
Ejemplos
1
2
División o Cociente.
EJEMPLO PRACTICO
De acuerdo a las tablas mencionadas en las operaciones anteriores, un ejemplo para
aplicar la operación de DIVISION o COCIENTE seria el siguiente:
– Tenemos dos tablas :
“Salario” es la tabla en donde esta la tabla de sueldos según el cargo y el
Depto al que pertenecen.
CARGO_MENOR” que tiene los cargo y salario menor de la empresa,
(para nuestro ejemplo “ADMINISTRATIVO”).
Necesitamos una tabla que tenga código y Sección de los Deptos en los
cuales exista el “CARGO_MENOR”:
División o Cociente.
Ejemplo
“SALARIO”
“CARGO_MENOR”
“SALARIO ÷ CARGO_MENOR”
Asignación.
La Asignación es talvez la operación mas sencilla de Algebra
relacional, consiste en asignar un valor a uno o mas Registros de una
tabla.
Sentencia SQL CASO 1:
– Para asignar 1.000.000 a salarios de todos los registros la Tabla
“Salarios”:
– Update SALARIO set SALARIO.SALARIO = 1000000
“SALARIO”
Asignación.
Para asignar 1.000.000 a todos los salarios de la Tabla “Salarios”:
Sentencia SQL CASO 2:
Update SALARIO set SALARIO.SALARIO = 1600000 Where
SALARIO.SECCION=‘INFORMATICA’
“SALARIO” antes de la Asignación
“SALARIO” Después de la Asignación
Fin.
Descargar

Diapositiva 1