10 Nov
10Nov

Introducción

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.

El álgebra relacional 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, estos son:

1. Selección
2. Proyección
3. Producto
4. Unión
5. Intersección
6. Diferencia
7. JOIN
8. División


Los operadores tienen símbolos que los identifican (en color rojo), ellos son:

 Unión                               Selección donde o σ

 Intersección                     Proyección [ ] o π

 Diferencia −                        Concatenación Natural

Producto Cartesiano ×         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.

Relación

El AR hace uso del orden de las componentes de las tuplas para definir operadores y propiedades de los operadores. 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 las tuplas resultado de ese producto cumplían y cumplen que

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

Vamos a combinar la definición anterior de tupla con la adaptación que en su momento introdujimos a la relación matemática para adecuarla al objetivo final que es una base de datos. Utilizaremos al mismo tiempo los nombres de atributos y el orden de las componentes en una tupla:

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. En realidad 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, por decirlo así, 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:

• nombre cualificado: R.Ai

• nombre no cualificado: Ai

alias de una relación

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. En otras palabras, las que constituyen nuestra base de datos.

relación derivada

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

Una relación derivada no tiene nombre ni alias. Así pues, los nombres de los atributos de ésta 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 grado de ambas es el mismo y los dominios asociados a los i-ésimos atributos de cada una son iguales.

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)

Dicho de otra forma, el número de atributos 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.

5.1 Operaciones fundamentales del álgebra relacional

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).

Mediante el siguiente gráfico se pueden apreciar las distintas operaciones y sus resultados.

Para ejecutar algunas operaciones se deben cumplir algunas restricciones:

- En las operaciones de UNION, 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 divisor

Selección

Para comprender los operadores consideremos las siguientes relaciones:

Dueño = {rut, nombre, teléfono, dirección, vigencia}

Chofer = {rut, nombre, teléfono, dirección, fecha_licencia_desde, fecha_licencia_hasta, vigencia}

Vale = {correlativo, hora_desde, hora_hasta, metraje_total, tarifa_total}

Móvil = {patente, rut_dueño, rut_chofer, marca, modelo, año}

Viaje = {correlativo_vale, patente_movil, Hora_Desde, hora_hasta, origen, destino, tarifa, metraje}


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 σ.


Ejemplo :


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.

Ejemplos : Considere las siguientes relaciones

Dueño = {rut, nombre, teléfono, dirección, vigencia}

Chofer = {rut, nombre, teléfono, dirección, fecha_licencia_desde, fecha_licencia_hasta, vigencia}


π nombre,rut (Dueño)  --> Proyecta solo el nombre y ruta

π nombre,licencia,vigencia (Chofer)  --> Proyecta el nombre la licencia y vigencia de los choferes

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.




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.

Ejemplo : Sean la relaciones

Dueño = {rut, nombre, teléfono, dirección, vigencia}

Chofer = {rut, nombre, teléfono, dirección, fecha_licencia_desde, fecha_licencia_hasta, vigencia}


La UNION Devuelve todos los Dueños y los Choferes.

Es la tabla que contiene las tuplas de la primera relación además de las tuplas de la segunda relación.

  • 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. 

Ejemplo: Considere las siguientes relaciones.




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.


Ejemplos:


Permite combinar información de cualquier par de relaciones.

R x S = { tq | t ∈∈ r and q ∈∈ s}.

Si R y S tienen atributos en común es necesario renombrarlos o cualificar los nombres de los atributos. Para evitar ambigüedades se precede el nombre del

Operación renombramiento

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

  ρx(E)

  La anterior expresion retorna la expresion E con el nombre x. Tambien 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.

atributo con el nombre de la relació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.

Ejemplo: Considera las siguientes relaciones


Join

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: ⋈ 

  La reunión natural 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: R ⋈θ 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)

Observa el siguiente ejemplo:

Aplica las operaciones vistas hasta el momento a tu modelo relacional ya creado y comprueba que obtengas resultados válidos para la toma de decisiones.


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).

5.2 Álgebra relacional extendida

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.

num-tarjeta
credito-disponible
limite-credito
vigencia
tipo
025
500
2500
01/2018
Visa
521
2800
10000
05/2017
Mastercard
650
800
1000
04/2016
Mastercard

π num-tarjeta, (limite-credito - credito-disponible) AS credito-utilizado (Tarjeta_credito)

la relación o esquema resultante sería a manera de ejemplo claro esta:

num-tarjeta
credito-utilizado
025
2000
521
7200
650
200

Te invito a que realices mas ejercicios con tu equipo de trabajo o compañeros de grupo para entender mejor y aplicar correctamente esta operación.

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.

Considere el siguiente esquema Tarjeta-credito:

num-tarjetacredito-disponiblelimite-creditovigenciatipo
025500250001/2018Visa
52128001000005/2017Mastercard
650800100004/2016Mastercard

Ejemplo de SUM

Supongamos que nos interesa conocer el total de credito que se otorga a todos los clientes.

G sum(limite-credito) (Tarjeta-credito)

limite-credito
13500

Ahora si deseamos conocer el total de los limites de créditos por tipo de tarjeta tendriamos lo siguiente:

tipo G tipo, sum(limite-credito) AS total-credito-tipo (Tarjeta-credito)

tipototal-credito-tipo
Visa2500
Mastercard11000

Ejemplo de AVG

Supongase que se desea calcular el promedio de los créditos disponibles.

G avg(credito-disponible) (Tarjeta-credito)

Como podras observar las funciones de agregación son operaciones sencillas y que se pueden aplicar en combinación con las operaciones básicas.

Comentarios
* No se publicará la dirección de correo electrónico en el sitio web.
ESTE SITIO FUE CONSTRUIDO USANDO