Tema 5

 Álgebra Relacional

 ¿Qué es?

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.

 

Es un lenguaje de consulta procedural. Consta de un conjunto de operaciones que toman como entrada una o dos relaciones y producen como resultado una nueva relación, por lo tanto, es posible unir y combinar operadores. Hay ocho operadores en el álgebra relacional que construyen relaciones y manipulan datos, te mostraremos cuales son y el símbolo por el que es representado:

1.- Selección 

dondeσ

2.- Proyección

[ ]π

3.- Producto Cartesiano

×

4.- Unión 

5.- Intersección


6.-  Diferencia

 

7.- JOIN


8.- División

÷


 

Conceptos previos

Al describir las propiedades de cada operador se van a utilizar una serie de términos que debemos definir previamente. En primer lugar se presentará una adaptación del concepto de relación matemática en la que se vuelve a hacer uso de la ordenación de las componentes de una tupla. El resto, son expresiones o reformulaciones de conceptos ya presentes en la definición del modelo.

 

Los conceptos a definir son:

Relación

        El Álgebra Relacional (AR) hace uso del orden de las componentes de las tuplas para definir operadores y propiedades de los mismos. En realidad, se trata de retomar la definición original de la relación matemática como el subconjunto de un producto cartesiano de n dominios, de tal forma que tuplas resulten de ese producto cumplen que:

    El conjunto de nombres de atributos es un conjunto ordenado.

    Las tuplas son listas de valores (conjunto ordenado) tal que el i-ésimo valor pertenece al i-ésimo dominio asociado al i-ésimo nombre de atributo.

    A partir de ahora, los operadores pueden utilizar tanto el nombre simbólico de un atributo como su orden dentro de la tupla.

Esquema de relación

     Es la descripción formal de la relación con sus atributos y dominios asociados. Se aplica únicamente a las relaciones nominadas, aquellas descritas en el esquema lógico relacional.

    R( A1:D1, A2:D2, ..., An:Dn )

    donde: R es el nombre de la relación

    Ai es el nombre del atributo

    Di es el nombre del dominio asociado a Ai 

 

Nombres Cualificados de Atributo

    Es el nombre completo de un atributo, por ejemplo R.Ai , el atributo Ai de la relación R. Su uso evita la ambigüedad de dos atributos en dos tablas distintas con el mismo nombre.

    En general, nos referimos a los atributos por su nombre sin especificar la relación a la que pertenecen. No obstante, es habitual que en distintas relaciones, y sobre todo en las relaciones derivadas (los resultados de operar con relaciones nominadas), nos podamos encontrar nombres de atributo coincidentes en relaciones distintas. La forma de diferenciar unos de otros es utilizar los nombres cualificados: “Alumno.Nombre”, “Asignatura.Nombre”.

    En definitiva, se pueden utilizar indistintamente, siempre y cuando no se produzcan ambigüedades, las dos formas ya conocidas de referirse a un atributo:

  1. Nombre cualificado: R.Ai
  2. Nombre no cualificado: Ai

 

Alias de una Relación

    Es un nombre alternativo para una relación. Dada una relación R se define un alias mediante la declaración:

    Definir alias S para R

    Entonces la relación puede referenciarse tanto por R como por S, y los nombres cualificados de atributos R.Ai o S.Ai.

 

Relación Nominada

    Es toda relación definida en el esquema lógico relacional.

 

Relación Derivada

   Es aquella que se obtiene como resultado de una expresión del Álgebra Relacional.

   Esta no tiene nombre ni alias, así pues, los nombres de los atributos de ella se obtendrán a partir de los nombres cualificados de atributos de las relaciones operando, y si existe ambigüedad se utilizarán los alias.

   Las reglas que rigen en los operadores para la asignación de nombres a los atributos de relaciones derivadas se verán con cada uno de ellos.

 

Relaciones Compatibles

    Dos relaciones son compatibles si el número de atributos(grados) ha de ser el mismo en ambas relaciones y, además, los dominios han de ser los mismos para atributos de la misma posición

    R( A1:D1, A2:D2, ..., An:Dn )

    S( B1:E1, B2:E2, ..., Bm:Em )

    R y S son compatibles si y sólo si:

        1) n = m

        2) ∀i Di = Ei (1 ≤ i ≤ n)

 

Operaciones Fundamentales

Dentro del conjunto de operadores algunos de ellos son básicos o fundamentales y otros son derivados o forman parte de los operadores de extensión del álgebra relacional (AR).


 

Se debe conocer que para ejecutar algunas operaciones se deben cumplir algunas restricciones:

    - En las operaciones de UNIÓN, INTERSECCIÓN y DIFERENCIA las relaciones deben ser compatibles.

    - En la CONCATENACIÓN o JOIN deben existir atributos comunes, de lo contrario el resultado será el producto cartesiano.

    - Para la DIVISIÓN, se debe cumplir que existan atributos comunes.

    • De no haberlos, el resultado es vacío de tuplas
    • Los únicos del divisor
    • Los últimos del dividendo
    • En el mismo orden en dividendo y división

El operador de selección opta por tuplas que satisfagan cierto predicado, se utiliza la letra griega sigma minúscula (σ) para señalar la selección. El predicado aparece como subíndice de σ. La Relación que constituye el argumento se da entre paréntesis después de la σ.

 

Básicos:

Unión

En álgebra relacional la unión de dos relaciones compatibles  

A y B es:

A UNION B o A ∪ B

Produce el conjunto de todas las tuplas que pertenecen ya sea a A o a B o a Ambas. Al igual que en teoría de conjuntos el símbolo ∪ representa aquí la unión de dos relaciones.

Al adaptar los operadores de conjuntos a relaciones se debe asegurar que exista compatibilidad entre ellas.

  • Tienen el mismo grado.

  • Los atributos tienen el mismo nombre.

  • El dominio del atributo-i de R es el mismo que el dominio del atributo-i en S, ∀i.

 

Diferencia

En álgebra relacional la diferencia entre dos relaciones compatibles A y B

A MENOS B o A – B

Produce el conjunto de todas las tuplas t que pertenecen a A y no pertenecen a B


 

Producto cartesiano

En álgebra relacional el producto de dos relaciones A y B es:

A Veces B o A X 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 X para representar el producto.

 
 

Selección 

Crea una nueva relación a partir de otra, pero incluyendo sólo algunas de las tuplas a partir de un criterio dado. El criterio se basa en restricciones sobre los atributos de la relación R y no pueden incluirse otras relaciones en dicho criterio que no estén en R.

 

Proyección

La operación de proyección permite quitar ciertos atributos de la relación, esta operación es unaria, copiando su relación base dada como argumento y quitando ciertas columnas, La proyección se señala con la letra griega pi mayúscula (Π). Como subíndice de Π se coloca una lista de todos los atributos que se desea aparezcan en el resultado. La relación argumento se escribe después de Π entre paréntesis.

Notación: π lista de atributos (R)
Es una tabla obtenida de R al eliminar los atributos no-especificados.
En la tabla resultante aparecen los atributos en el mismo orden que en la lista.
Los renglones duplicados se eliminan.
 

Derivados:

Dentro del conjunto de operaciones en el álgebra relacional aparecen estas operaciones que no añaden potencia al álgebra, pero simplifican las consultas habituales.

 Cada operación reemplaza un conjunto de operaciones “normales”.

- Intersección de conjuntos

- Concatenación natural

- División

 

Intersección

En álgebra relacional la intersección de dos relaciones compatibles A y B,  A INTERSECCION B o A ∩ B


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.

 


Una intersección expresada mediante operaciones básicas sería:

  R ∩ S = R – (R – S)

 

Join (Join natural o Concatenación natural)

El JOIN Natural es una operación binaria que permite combinar ciertas selecciones y un producto cartesiano en una sola operación. Se denota por el símbolo: ⋈ 

Es expresada en operaciones básicas equivale a:

R (X1;X2; ... Xm; Y1;Y2; ... ;Yn)

S (Y1;Y2; ... ;Yn; Z1; Z2; ... ; Zp)

Relación con atributos X, Y, Z y poblado por el conjunto de tuplas que tienen igual valor de Y en R y en S.

π R U S (σ R.Y1=S.Y1 ^ R.Y2=S.Y2 ^...^ R.Yn=S.Yn (R X S))

Si las relaciones R y S no tienen nombres de atributos en común entonces A ⋈ B = A X B

 

Θ - Join

Notación: θ S

Equivalente al Join sólo que se permite usar cualquier condición de comparación. θ.

El resultado se construye:

  • Toma el R X S
  • Selecciona sólo las tuplas que satisfacen a θ.

R θ S

es equivalente a: σ θ (R X S)

 

División

Sean R y S dos relaciones con esquemas

(A1, ... ,An;B1, ... ,Bm) y (B1, ... , Bm) respectivamente.

La operación:
(R ÷ S)
da como resultado otra relación

  • cuyo esquema es (A1, ... ,An)
  • y su contenido son las tuplas tomadas a partir de las de r (R) tales que su valor (a1, ... ,an) está asociado en r (R) con TODOS los valores (b1, ... ,bm) que están en s (S)

Esta operación puede ser un poco difícil de entender pero estoy seguro que realizando diversos ejercicios podrás comprenderla adecuadamente.

Otras Operaciones:

Operación renombramiento

El operador renombramiento permite ponerle nombre a las relaciones “resultado” de operaciones de álgebra relacional. Se denota con la letra “ρ”

  ρx(E)

  La anterior expresión retorna E con el nombre x. También se pueden renombrar los atributos de E.

  ρx(a1, a2, …, an)(E)

Ejemplo:

ρ Totales (Empleados X Clientes)

La relación resultante se denomina "Totales" y es la generada por el producto cartesiano de Empleados por Clientes

Como se puede ver esta operación es muy sencilla.

 

Álgebra relacional extendida

Las operaciones básicas del álgebra relacional se han extendido o ampliado de varias maneras.

1.- Una de las extensiones es permitir operaciones aritméticas como parte de la operación proyección (Proyección Generalizada).

2.- Permitir operaciones de agregación.

 

PROYECCIÓN GENERALIZADA

Esta función amplía la proyección permitiendo que se utilicen funciones aritméticas en la lista de proyección. La operación proyección generalizada tiene la forma siguiente:

π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 pertenecientes al esquema E. Como caso especial la expresión aritmética puede ser simplemente un atributo o una constante. Cuando se hace uso de esta operación generalizada se recomienda dar nombre al atributo o columna generada con la función que se aplique.

Ejemplo: Suponga el esquema Tarjeta_credito (num-tarjeta, credito-disponible, limite-credito, vigencia, tipo) y se desea conocer lo gastado.

 

Funciones de agregación

Este tipo de operaciones se pueden como su nombre lo dice agregar a la operación de proyección, dichas operaciones toman un conjunto de valores y retornan o proyectan un valor único. Las operaciones que veremos son:

- SUM: retorna la suma de los valores

- AVG: retorna la media de los valores

- MIN: retorna el mínimo de los valores

- MAX: retorna el máximo de los valores

-COUNT: retorna el número de elementos del conjunto

La forma general:

  g1, g2…gn G f1(a1), f2(a2)... Fm(am)(E)

Donde:

  g1,g2,…gn constituye la lista de atributos que indica como se realiza la agrupación.

  fi es una función de agregación y ai es un nombre del atributo.

 

Videos de Interés:

Conceptos:

AR Selección con ejemplo:

AR División con ejemplo en SQL:

AR Unión, intersección y diferencia con ejemplo:

AR Producto Cartesiano con ejemplo en SQL:

AR Proyección con ejemplo:


AR Tutorial en Relational:

AR Conceptos y Tutorial en Relax:

 

 

Nota: Si se deseas encontrar un ejemplo hecha por nosotros te invitamos a revisar nuestro portafolio de evidencias

 

Referencias:

Anónimo. 4 Algebra relacional. (s. f.). Recuperado de http://ict.udlap.mx/people/carlos/is341/bases04.html

Zapata, P.J.A. y Felipe, G.A. (s/f). Bases de datos. [html]. Recuperado el 20/05/2016 de
http://basdatos.tripod.com/enlaces.html

López, G.A. (2014). Álgebra Relacional. [ppt]. Recuperado el 20/09/2016 de
http://hp.fciencias.unam.mx/~alg/bd/alg.pdf

Gonzalez, B. y Alonso, F. (2016). Apuntes Base de Datos 2 [pdf]. Recuperado el 01/10/2016 de
https://www.fing.edu.uy/tecnoinf/mvd/

 


No hay comentarios:

Publicar un comentario