Á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 o σ |
2.- Proyección [ ] o π |
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:
- Nombre cualificado: R.Ai
- 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
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.
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: 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)
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