El
álgebra relacional es un conjunto de operaciones que describen paso a paso como 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.
Básicas [
editar]
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 (σ) [
editar] Permite seleccionar un
subconjunto de
tuplas de una relación (
R), todas aquellas que cumplan la(s) condición(es)
P, esto es:

Ejemplo:

Selecciona todas las tuplas que contengan Gómez como apellido en la relación Alumnos
Proyección (Π) [
editar] Permite extraer columnas(atributos) de una relación, dando como resultado un
subconjunto vertical de atributos de la relación, esto es:

donde

son atributos de la relación
R .
Ejemplo:

Selecciona los atributos Apellido, Semestre y NumeroControl de la relación Alumnos, mostrados como un subconjunto de la relación Alumnos
Producto cartesiano (x) [
editar] El producto cartesiano de
dos relaciones se escribe como:

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:

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 las atributos de la relación Alumnos seguidos por las tuplas de la relación Maestros.
Unión (∪) [
editar] La operación

retorna el conjunto de tuplas que están en R, o en S, o en ambas. R y S deben ser
uniones compatibles.
Diferencia (-) [
editar] La diferencia de dos relaciones, R y S denotada por:

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 [
editar] Entre los operadores no básicos tenemos:
Intersección (∩) [
editar] La intersección de dos relaciones se puede especificar en función de otros operadores básicos:R

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.
Combinación (⊲⊳) (Natural Join) [
editar] Una combinación de dos relaciones es equivalente a:R ⊲⊳
F S = σ
F (R × S) Esto es mucho más útil que el uso del operador básico
producto cartesiano, pues especifica una regla para la combinación de los atributos.
División (/) [
editar] 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 distintos valores de
x tales que para todo valor
y en B existe una tupla

en A.
4.2 Conjunto de operaciones en relaciones
- R
S, la unión de R y S es el conjunto de elementos que están en R o S o ambos. Un elemento solo aparece una sola vez. - R
S, el conjunto de elementos que aparecen en ambos R y S - R - S, la diferencia de R y S, el conjunto de elementos que estan en R pero no en S. Es importante resaltar que R - S es diferente a S - R.
- R / S, la división de una relación entre otra, debe cumplirse que para toda tupla en R exista su correspondiente en S.
Restricciones:
- R y S deben tener esquemas idénticos.
- El orden de las columnas debe ser el mismo
Ejemplos:
| name | address | gender | birthdate |
| Carrie Fisher | 123 Maple St. | F | 9/9/99 |
| Mark Hamill | 456 Oak Rd. | M | 8/8/88 |
| name | address | gender | birthdate |
| Harrison Ford | 789 Palm Dr. | M | 7/7/77 |
| Carrie Fisher | 123 Maple St. | F | 9/9/99 |
Unión
| name | address | gender | birthdate |
| Harrison Ford | 789 Palm Dr. | M | 7/7/77 |
| Mark Hamill | 456 Oak Rd. | M | 8/8/88 |
| Carrie Fisher | 123 Maple St. | F | 9/9/99 |
Intersección
| name | address | gender | birthdate |
| Carrie Fisher | 123 Maple St. | F | 9/9/99 |
Resta
| name | address | gender | birthdate |
| Mark Hamill | 456 Oak Rd. | M | 8/8/88 |
4.3 Proyección 
- Crea una nueva relación a partir de otra, pero incluyendo sólo algunas de las columnas
A1,A3,A6 (R)
| title | year | length | filmType | studioName |
| Star Wars | 1977 | 124 | color | Fox |
| Mighty Ducks | 1991 | 104 | color | Disney |
| Wayne's World | 1992 | 95 | color | Paramount |
Movie
Ejemplo:
title,year,length(Movie)
| title | year | length |
| Star Wars | 1977 | 124 |
| Mighty Ducks | 1991 | 104 |
| Wayne's World | 1992 | 95 |
filmType(Movie)
4.4 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 esten en R
A3>16 (R) ,
A3>16 and A3 < 45 (R),
nombre='Carlos' and edad=45 (R)
| title | year | length | filmType | studioName |
| Star Wars | 1977 | 124 | color | Fox |
| Mighty Ducks | 1991 | 104 | color | Disney |
| Wayne's World | 1992 | 95 | color | Paramount |
Movie
Ejemplos:
length>=100 (Movie)
| title | year | length | filmType | studioName |
| Star Wars | 1977 | 124 | color | Fox |
| Mighty Ducks | 1991 | 104 | color | Disney |
length>=100 and studioName='Fox' (Movie)
| title | year | length | filmType | studioName |
| Star Wars | 1977 | 124 | color | Fox |
title,studioName(
length>=100 (Movie))
| title | studioName |
| Star Wars | Fox |
| Mighty Ducks | Disney |
4.5 Asignación <--
Almacena temporalmente el resultado de un operación en un relación dada
LOLO <--
title,studioName(
length>=100 (Movie))
4.6 División
Sean
| A | B | C | D | | a | b | c | d | | a | b | e | f | | b | c | e | f | | e | d | c | d | | e | d | e | f | | a | b | d | e | R | S |
R / S
Ejemplo: Estudiantes que han tomado todos los cursos de "IS"
ID,num (
depto='IS' (estudiante_cursos)) /
num(
depto='IS'(cursos))
4.7 Producto cartesiano X
Producto cruz o solo producto
R X S, los esquemas de ambas relaciones se mezclan y unen.
Dados
| R | | B | C | D | | 2 | 5 | 6 | | 4 | 7 | 8 | | 9 | 10 | 11 | S |
| A | R.B | S.B | C | D |
| 1 | 2 | 2 | 5 | 6 |
| 1 | 2 | 4 | 7 | 8 |
| 1 | 2 | 9 | 10 | 11 |
| 3 | 4 | 2 | 5 | 6 |
| 3 | 4 | 4 | 7 | 8 |
| 3 | 4 | 9 | 10 | 11 |
R X S
4.8 Producto natural |X|
Es un producto cartesiano donde nos interesan únicamente algunas tuplas que hacen "match" en algun criterio.
| A | R.B | S.B | C | D |
| 1 | 2 | 2 | 5 | 6 |
| 1 | 2 | 4 | 7 | 8 |
| 1 | 2 | 9 | 10 | 11 |
| 3 | 4 | 2 | 5 | 6 |
| 3 | 4 | 4 | 7 | 8 |
| 3 | 4 | 9 | 10 | 11 |
R |X| S