top of page

Álgebra relacional

El álgebra relacional es un conjunto de operaciones que describen paso a paso cómo computar una respuesta sobre las relaciones, tal y como éstas son definidas en el modelo relacional. Denominada de tipo procedimental, a diferencia del Cálculo relacional que es de tipo declarativo.

Describe el aspecto de la manipulación de datos. Estas operaciones se usan como una representación intermedia de una consulta a una base de datos y, debido a sus propiedades algebraicas, sirven para obtener una versión más optimizada y eficiente de dicha consulta.

Las operaciones básicas

​

Cada operador del álgebra acepta una o dos relaciones y retorna una relación como resultado. σ y Π son operadores unarios, el resto de los operadores son binarios. Las operaciones básicas del álgebra relacional son:

​

Selección - restricción (σ)

Permite seleccionar un subconjunto de tuplas de una relación (R), todas aquellas que cumplan la(s) condición(es) P, esto es:

{\displaystyle \sigma _{P}(R)\!}

Ejemplo:

{\displaystyle \sigma _{Apellido=Gomez}(Alumnos)\!}

Selecciona todas las tuplas que contengan Gómez como apellido en la relación Alumnos.

Una condición puede ser una combinación booleana, donde se pueden usar operadores como: {\displaystyle \wedge } , {\displaystyle \vee }, combinándolos con operadores {\displaystyle <,>,\leq ,\geq ,=,\neq }.

​

Proyección (Π)

Permite extraer columnas (atributos) de una relación, dando como resultado un subconjunto vertical de atributos de la relación, esto es:

{\displaystyle \Pi _{A_{1},A_{2},\dots ,A_{n}}\!}

donde {\displaystyle A_{1},A_{2},\dots ,A_{n}} son atributos de la relación R .

Ejemplo:

{\displaystyle \Pi _{Apellido,Semestre,NumeroControl}(Alumnos)\!}

Selecciona los atributos Apellido, Semestre y NumeroControl de la relación Alumnos, mostrados como un subconjunto de la relación Alumnos.

​

Producto cartesiano (x)

El producto cartesiano de dos relaciones se escribe como:

{\displaystyle R\times S}

y entrega una relación, cuyo esquema corresponde a una combinación de todas las tuplas de R con cada una de las tuplas de S, y sus atributos corresponden a los de R seguidos por los de S.

​

Ejemplo:

{\displaystyle Alumnos\times Maestros}

Muestra una nueva relación, cuyo esquema contiene cada una de las tuplas de la relación Alumnos junto con las tuplas de la relación Maestros, mostrando primero los atributos de la relación Alumnos seguidos por las tuplas de la relación Maestros.

​

Unión (∪)[

La operación

{\displaystyle R\cup S}

retorna el conjunto de tuplas que están en R, o en S, o en ambas. R y S deben ser uniones compatibles.

​

Diferencia (-)

La diferencia de dos relaciones, R y S denotada por:

{\displaystyle R-S\!}

entrega todas aquellas tuplas que están en R, pero no en S. R y S deben ser uniones compatibles.

Estas operaciones son fundamentales en el sentido en que (1) todas las demás operaciones pueden ser expresadas como una combinación de éstas y (2) ninguna de estas operaciones pueden ser omitidas sin que con ello se pierda información.

​

No básicas o Derivadas

Entre los operadores no básicos tenemos:

​

Intersección (∩)

La intersección de dos relaciones se puede especificar en función de otros operadores básicos:

{\displaystyle R\cap S=R-(R-S)}

La intersección, como en Teoría de conjuntos, corresponde al conjunto de todas las tuplas que están en R y en S, siendo R y S uniones compatibles.

​

Unión natural (⋈) (Natural Join)

La operación unión natural en el álgebra relacional es la que permite reconstruir las tablas originales previas al proceso de normalización. Consiste en combinar las proyección, selección y producto cartesiano en una sola operación, donde la condición {\displaystyle \theta } es la igualdad Clave Primaria = Clave Externa (o Foránea), y la proyección elimina la columna duplicada (clave externa).

Expresada en las operaciones básicas, queda

{\displaystyle R\bowtie S=\Pi _{A1,A2...An}(\sigma _{\theta }(R\times S))}


Una reunión theta ( θ-Join) de dos relaciones es equivalente a:

{\displaystyle R\bowtie _{\theta }S=\sigma _{\theta }(R\times S)}

donde la condición {\displaystyle \theta } es libre.

Si la condición {\displaystyle \theta } es una igualdad se denomina EquiJoin.

​

División (/) (Cociente)

Supongamos que tenemos dos relaciones A(x, y) y B(y) donde el dominio de y en A y B, es el mismo.

El operador división A / B retorna todos los valores de x tales que para todo valor y en B existe una tupla {\displaystyle \langle x,y\rangle } en A.

​

Agrupación (Ä¢) (Unión)

Permite agrupar conjuntos de valores en función de un campo determinado y hacer operaciones con otros campos.

​

​

Consultas a resolver 

​

1.- Mostrar el código de los proveedores que venden el artículo con id 200 Consultas a resolver 2.- Mostrar el id y nombre de los clientes que solicitan algún artículo provisto por proveedores de Guadalajara

3.- Mostrar el nombre de los proveedores que han surtido artículos que han comprado clientes de Monterrey, pero que además la venta haya sido mayor a $5000.00

4.- Mostrar los pedidos del cliente 50 en donde solicita artículos que el cliente 30 no ha pedido 5.- Mostrar el nombre del proveedor que vende el artículo más caro

​

​

​

​

​

​

​

​

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

​

WhatsApp Image 2020-12-10 at 11.32.08 PM
  • Facebook
  • Twitter
  • LinkedIn

©2020 por Bases de Datos. Creada con Wix.com

bottom of page