Álgebra relacional.

agosto 20, 2020



5.1 Conceptualización y Operaciones fundamentales del álgebra relacional.

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 algebra relacional son selección, proyección, unión, diferencia de conjuntos, producto cartesiano y renombramiento.

Además de las operaciones fundamentales hay otras apreciaciones, por ejemplo, intersección de conjuntos, reunión natural, división y asignación. Estas operaciones se definirán en función de las operaciones fundamentales.

Operaciones Fundamentales

Existen 2 tipos de operadores algebraicos:
  1. Operadores básicos o primitivos.
  2. Operadores no básicos o derivados.
Operadores básicos o primitivos
Se clasifican en:
  1. Proyección (π).
  2. Selección (σ).
  3. Unión (U).
  4. Diferencia (-).
  5. Producto cartesiano (X).
Operadores no básicos o derivados
Se clasifican en:
  1. Intersección (∩).
  2. Unión natural ().
  3. División (/).

  • 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 de σ. Por tanto, para seleccionar las tuplas de la relación préstamo en que la sucursal es "Pachuca" hay que escribir:
σnombre-sucursal = «Pachuca» (préstamo)

  • Operación Proyección

Supóngase que se desea imprimir una lista determinada en las que no interesan algunos datos como código de empleado, código de sucursal, ni el salario. La operación de proyección permite producir esta relación. La operación de proyección es una operación unaria que devuelve su relación de argumentos excluyendo algunos argumentos. Dado que las relaciones son conjuntos se eliminan todas las filas duplicadas. La operación de proyección se denota por la letra mayúscula pi (Π). Se crea la lista de atributos que se desea que aparezcan en el resultado como subíndice de Π. La relación de argumentos se escribe a continuación entre paréntesis. Por tanto; la consulta para crear una lista de todos los empleados y sucursales puede escribirse como:
ΠNomSuc, Empleado (Salarios)

  • Operación Unión

Operación del álgebra relacional que crea un conjunto unión de dos relaciones unión compatibles.

Unión compatible: Dos o más relaciones que tienen columnas equivalentes en número y dominios.

Supongamos que:

VENDEDOR_SUBORDINADO {VENS_ID_VENDEDOR, VENS_NOMB_VENDEDOR, VENS_ID_JEFE, VENS_OFICINA, VENS_COMISION}
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  VENDEDOR_JEFE

  • Operación Diferencia de Conjuntos

La operación diferencia de conjuntos denotada por el operador aritmético "-", permite buscar las tuplas que estén en una relación pero no en otra.

La expresión r-s da como resultado una relación que contiene las tuplas que están en r pero no están en s.

Se pueden buscar todos los empleados que no tengan incentivos, o antigüedad, escribiendo:

ΠEmpleado (Salarios) - ΠEmpleado (Incentivos)
ΠEmpleado (Salarios) - ΠEmpleado (Antigüedad)

  • Operación Intersección de Conjuntos

La intersección de conjuntos (∩) comunes a dos relaciones, por ejemplo encontrar los clientes que tienen unacuenta y un préstamo en una sucursal sería:

∏ nombre_cliente( σ nombre_sucursal=”Nombre”(préstamo)∩ ∏ nombre_cliente( σ nombre_sucursal=”nombre” (depósito))

Cualquier expresión del álgebra relacional que use la intersección de conjuntos puede reescribirse sustituyendo la operación intersección por un par de operaciones diferencia de conjuntos: r ∩ s = r-(r-s). Así, la intersección de conjuntos no es una operación fundamental y no añade potencia al álgebra.
  • Operación Unión Natural

Típicamente, una consulta que implica un producto cartesiano incluye una operación de selección en el resultado del producto. Considérese la consulta “encontrar a todos los clientes que tiene un préstamo y las ciudades en las que viven”. Primero formamos el producto cartesiano de las relaciones préstamo y cliente, después seleccionamos aquellas tuplas que presenten un único nombre_cliente.

∏ préstamo.nombre_cliente, ciudad_cliente ( σ prestamo.nombre_cliente=cliente.nombre_cliente (préstamo x cliente))

  • Operación División

La operación división (÷) se establece para aquellas consultas que incluyen la frase “para todos2. Supóngase que queremos encontrar a todos los clientes que tienen una cuenta en todas las sucursales que están en Brooklyn. Podemos obtener todas las sucursales en Brooklyn mediante:

r1=∏nombre_sucursal(σ ciudad_sucursal=”Brooklyn”(depósito)

  • Operación de Asignación

A veces es conveniente escribir una expresión del álgebra relacional por partes usando la asignación a una variable de relación temporal. La operación asignación (ß), funciona de forma parecida a la asignación de los lenguajes de programación.

La evaluación de una asignación no da como resultado una relación que se presenta al usuario, más bien, el resultado de la expresión a la derecha de ß es asignado a la variable de relación de la parte izquierda. Esta variable de relación puede usarse en subsiguientes expresiones. Con la operación asignación, una consulta puede escribirse como un programa secuencial que consta de una serie de asignaciones seguidas de una expresión cuyo valor se presenta como el resultado de la consulta. En álgebra relacional, la asignación debe hacerse siempre a una variable de relación temporal. Es importante observar que la operación de asignación no proporciona potencia adicional al álgebra, es una forma conveniente de expresar consultas complejas de forma más sencilla

  • Operaciones de Modificación a la Base de Datos

Este tipo de operación se hace mediante comandos destinados a modificar tu base de datos, entre ellos se encuentra el borrado, la inserción y actualización.
  • La opción de borrado expresa la manera que pueda borrar sólo las tuplas completas.
  • La inserción se encarga de insertar de una o más tuplas en una relación.
  • La actualización es para cambiar el valor dentro de una tupla sin cambiar todos los valores de la misma.
Los operadores relacionales son símbolos que se usan para comparar dos valores. Si el resultado de la comparación es correcto la expresión considerada es verdadera, en caso contrario es falsa. En la primera columna de la tabla, se dan los símbolos de los operadores relacionales, el la segunda, el nombre de dichos operadores, y a continuación su significado mediante un ejemplo:

OperadorNombreEjemploSignificado
<menor quea<ba es menor que b
>mayor quea>ba es mayor que b
==igual aa==ba es igual a b
!=no igual aa!=ba no es igual a b
<=menor que o igual aa<=5a es menor que o igual a b
>=mayor que o igual aa>=ba es menor que o igual a b

Se debe tener especial cuidado en no confundir el operador asignación con el operador relacional igual a. Las asignaciones se realizan con el símbolo =, las comparaciones con ==.


5.2 Álgebra relacional extendida.

Las operaciones básicas del álgebra relacional se han ampliado de varias maneras. Una ampliación sencilla es permitir operaciones aritméticas como parte de la proyección. Una ampliación importante es permitir operaciones de agregación, como el cálculo de la suma de los elementos de un conjunto, o su media. Otra ampliación importante es la operación reunión externa, que permite a las expresiones del álgebra relacional trabajar con los valores nulos que modelan la información que falta.

Proyección generalizada

La operación proyección generalizada amplía la operación proyección permitiendo que se utilicen funciones aritméticas en la lista de proyección. La operación proyección generalizada tiene la forma:
ΠF1, F2, …, Fn (E) 
Donde "E" es cualquier expresión del álgebra relacional y "F1", "F2", …, "Fn" son expresiones aritméticas que incluyen constantes y atributos en el esquema de "E". Como caso especial la expresión aritmética puede ser simplemente un atributo o una constante.

Funciones de agregación

Las funciones de agregación son funciones que toman una colección de valores y devuelven como resultado un único valor. Por ejemplo, la función de agregación sum toma un conjunto de valores y devuelve la suma de los mismos. Por tanto, la función sum aplicada a la colección devuelve el valor 24.
{1, 1, 3, 4, 4, 11}
La función de agregación avg devuelve la media de los valores. Cuando se aplica al conjunto anterior devuelve el valor 4. La función de agregación count devuelve el número de elementos del conjunto, y devolvería 6 en el caso anterior. Otras funciones de agregación habituales son min y max, que devuelven el valor mínimo y el máximo de la colección; en el ejemplo anterior devuelven 1 y 11, respectivamente. Las colecciones en las que operan las funciones de agregación pueden tener valores repetidos; el orden en el que aparezcan los valores no tiene importancia. Estas colecciones se denominan multiconjuntos. Los conjuntos son un caso especial de los multiconjuntos, en los que sólo hay una copia de cada elemento.

Valores nulos

Estos valores pueden resultar un poco confuso hasta cuando lo utilizas, los valores nulos se definen como un valor desconocido.

“NULL indica que el valor es desconocido. Un valor NULL no es lo mismo que un valor cero o vacío. No hay dos valores NULL que sean iguales. La comparación entre dos valores NULL, o entre un valor NULL y cualquier otro valor, tiene un resultado desconocido porque el valor de cada NULL es desconocido.

Normalmente, los valores NULL indican que los datos son desconocidos, no aplicables o que se agregarán posteriormente. Por ejemplo, la inicial de un cliente puede que no sea conocida en el momento en que éste hace un pedido”. 

Reunión externa

La operación reunión externa es una ampliación de la operación reunión para trabajar con la información que falta. Supóngase que se dispone de relaciones con los siguientes esquemas, que contienen datos de empleados a tiempo completo:

empleado (nombre-empleado, calle, ciudad)

trabajo-a-tiempo-completo (nombre-empleado, nombre-sucursal, sueldo)



.             .             .



Si te a servido de utilidad la información que haz encontrado aquí acerca del tema cinco de Fundamentos de Base de Datos y te gustaría complementar lo que ya has visto, te invitamos a que nos escuches en el Podcast de Encoders justo aquí: https://bit.ly/3l7mTA4

You Might Also Like

0 comentarios

Podcast

Podcast

" Un podcast educacional universitario " Encoders . El objetivo de Encoders podcast es ser la voz de los alumnos de Ingeniería en ...