Álgebra relacional en sistemas de gestión de bases de datos con ejemplos

⚡ Resumen inteligente

El álgebra relacional en los sistemas de gestión de bases de datos (DBMS) es un lenguaje de consulta procedimental que toma relaciones como entrada y produce nuevas relaciones como salida. Agrupa los operadores en categorías unarias, de conjuntos y binarias, proporcionando la base teórica que los motores SQL traducen en planes de consulta ejecutables.

  • 🔍 Comencemos con los operadores unarios: Las funciones SELECT, PROJECT y RENAME filtran filas, seleccionan columnas y renombran atributos en una única relación.
  • 📚 Aplicar la teoría de conjuntos: UNIÓN, INTERSECCIÓN, DIFERENCIA y PRODUCTO CARTESIANO combinan relaciones compatibles con la unión para generar nuevos resultados.
  • 🔗 Únete intencionalmente: Las uniones Theta, Equi y Natural manejan las coincidencias internas, mientras que las uniones Left, Right y Full Outer mantienen las tuplas no coincidentes con valores nulos.
  • 📐 Compatibilidad del reloj: Confirme siempre que la aridad, los nombres de los atributos y los dominios coincidan antes de realizar cualquier operación de conjunto o unión.
  • 🤖 Utilizar IA para traducir: Los asistentes de IA convierten expresiones algebraicas a SQL, explican la precedencia de los operadores e indican las condiciones de unión faltantes en lenguaje sencillo.

Álgebra relacional en DBMS

¿Qué es el álgebra relacional?

Álgebra relacional SQL es un lenguaje de consulta procedimental que acepta instancias de relaciones como entrada y devuelve nuevas instancias de relaciones como salida. Aplica un conjunto fijo de operadores de forma recursiva sobre una o más relaciones, y el resultado de cada operador es a su vez una relación que puede utilizarse en la siguiente operación. Los motores SQL se basan en este álgebra para planificar y ejecutar consultas.

Álgebra relacional básica OperaSupuestos de Alcance

Los operadores del álgebra relacional se dividen en tres grupos.

Relacional unario OperaSupuestos de Alcance

  • SELECCIONAR (σ)
  • PROYECTO (π)
  • CAMBIAR NOMBRE (ρ)

Operaconceptos de la teoría de conjuntos

  • UNIÓN (∪)
  • INTERSECCIÓN (∩)
  • DIFERENCIA (−)
  • PRODUCTO CARTESIANO (×)

Binario Relacional OperaSupuestos de Alcance

  • ÚNETE
  • DIVISIÓN

Las secciones siguientes explican cada operador con ejemplos prácticos.

SELECCIONAR (σ)

El SELECT La operación elige un subconjunto de tuplas que satisfacen un predicado dado. El símbolo sigma σ lo denota:

σp(r)

dónde σ es el operador, p es la condición proposicional, y r es la relación (tabla). SELECT conserva el esquema y descarta las filas que no cumplen el predicado.

Ejemplo

σ topic = "Database" (Tutorials)

Selecciona tuplas de Tutoriales donde el tema es igual a “Base de datos”.

Ejemplo

σ topic = "Database" AND author = "guru99" (Tutorials)

Selecciona tuplas de Tutoriales donde el tema es “Base de datos” y el autor es guru99.

Ejemplo

σ sales > 50000 (Customers)

Selecciona tuplas de Clientes cuyo valor de ventas sea superior a 50,000.

Proyección (π)

El proyección El operador elimina todos los atributos de la relación de entrada excepto los enumerados, produciendo un subconjunto vertical. La proyección también elimina las filas duplicadas que resultan de la eliminación.ping atributos. El símbolo pi π lo indica.

Ejemplo: Considere la siguiente tabla.

Identificación del cliente Nombre del cliente Estado
1 Google Activo
2 Amazon Activo
3 Apple Inactivo
4 Alibaba Activo

Proyección basada en el nombre y el estado del cliente:

π CustomerName, Status (Customers)
Nombre del cliente Estado
Google Activo
Amazon Activo
Apple Inactivo
Alibaba Activo

Cambiar nombre (ρ)

El rebautizar El operador es una operación unaria que le da un nuevo nombre a un atributo (o a una relación completa). Por ejemplo, ρ(a/b) R renombra atributo b de relación R a aLa función de renombrar es particularmente útil cuando se necesita realizar una auto-unión o unir dos relaciones que comparten nombres de atributos.

Union Operación (∪)

El UNIÓN operador, denotado por , devuelve todas las tuplas que aparecen en la relación A o en la relación B, eliminando automáticamente los duplicados.

Result ← A ∪ B

Para que un sindicato sea válido:

  • A y B deben tener el mismo número de atributos (misma aridad).
  • Los dominios de atributos correspondientes deben ser compatibles.
  • Las tuplas duplicadas se eliminan automáticamente.

Ejemplo. Consideremos estas dos tablas:

Tabla A Tabla b
columna 1 columna 2 columna 1 columna 2
1 1 1 1
1 2 1 3

A ∪ B da:

columna 1 columna 2
1 1
1 2
1 3

Diferencia de conjuntos (−)

El símbolo menos denota diferencia establecida. El resultado de A − B es una relación que contiene todas las tuplas que están en A pero no en B.

  • A y B deben ser compatibles en materia sindical.
  • Los nombres de los atributos y los dominios deben coincidir.

Ejemplo: A − B

columna 1 columna 2
1 2

Intersección (∩)

El intersección operador, denotado por , define una relación que contiene cada tupla que aparece tanto en A como en B. A y B deben ser compatibles en la unión.

Definición visual de intersección

Definición visual de intersección.

Ejemplo: A ∩ B

columna 1 columna 2
1 1

Producto cartesiano (×) en sistemas de gestión de bases de datos

El producto cartesiano Combina cada tupla de una relación con cada tupla de otra, fusionando sus columnas. Por sí solo, el resultado rara vez es útil, pero combinado con un predicado SELECT se convierte en la base de JOIN. También se le conoce como producto cartesiano o unión cartesiana.

Ejemplo: σ columna 2 = '1' (A × B)

La expresión devuelve cada fila de A × B cuyo column 2 el valor es 1.

columna 1 columna 2
1 1
1 1

Recibir el boletín OperaSupuestos de Alcance

A Únete es un producto cartesiano seguido de un predicado de selección. Las uniones se denotan por el símbolo y te permite combinar tuplas relacionadas de diferentes relaciones de una manera significativa.

Tipos de unión:

  • Uniones internas: Unión Theta, unión Equi, unión Natural.
  • Uniones externas: Uniones izquierda, derecha y exterior completa.

Unir internamente

En una unión interna, solo se incluyen las tuplas que cumplen los criterios de coincidencia; el resto se descartan.

Unión theta

La forma general de JOIN es la Theta unirse, denotado por θ. Theta join puede utilizar cualquier condición de comparación en sus criterios de selección.

A ⋈θ B

Por ejemplo:

A ⋈ A.column 2 > B.column 2 (B)
columna 1 columna 2
1 2

Equi Join

Cuando una unión Theta utiliza únicamente condiciones de igualdad, se convierte en una Equi unirse.

A ⋈ A.column 2 = B.column 2 (B)
columna 1 columna 2
1 1

La unión equi es uno de los estilos de unión más utilizados, y la RDBMS El optimizador de consultas suele dedicar un esfuerzo considerable a lograr que sea eficiente.

Unión natural (⋈)

A Unión natural Requiere un atributo (columna) común entre las relaciones. El atributo compartido debe tener el mismo nombre y dominio. El resultado contiene una copia de la columna coincidente.

Considere estas dos tablas.

Tabla C
num Cuadrado
2 4
3 9
Cuadro D
num Cubo
2 8
3 27

C ⋈ D produce:

num Cuadrado Cubo
2 4 8
3 9 27

Unión externa

An unión externa conserva las tuplas que satisfacen los criterios de coincidencia y tuplas que no lo hacen, rellenando las columnas faltantes con NULL.

Unión exterior izquierda (A ⟕ B)

La unión externa izquierda conserva todas las tuplas de la relación izquierda. Si una fila en A no tiene una fila correspondiente en B, los atributos aportados por B se rellenan con NULL.

Izquierda combinación externa

Considere las siguientes tablas:

Tabla A
num Cuadrado
2 4
3 9
4 16
Tabla b
num Cubo
2 8
3 18
5 75

A ⟕ B da:

num Cuadrado Cubo
2 4 8
3 9 18
4 16 NULL

Unión externa derecha (A ⟖ B)

La unión externa derecha mantiene cada tupla en la relación correcta. Si una fila en B no tiene una fila correspondiente en A, las columnas aportadas por A se rellenan con NULL.

Unión exterior derecha

A ⟖ B da:

num Cubo Cuadrado
2 8 4
3 18 9
5 75 NULL

Unión externa completa (A ⟗ B)

La unión externa completa conserva todas las tuplas de ambas relaciones, independientemente de si se cumple la condición de unión. Los valores que faltan en cualquiera de los lados se convierten en NULL.

A ⟗ B da:

num Cuadrado Cubo
2 4 8
3 9 18
4 16 NULL
5 NULL 75

OperaResumen de referencias de tor

Utilice esta tabla de referencia para recordar de un vistazo qué hace cada operador.

Operación (Símbolo) Propósito
SELECCIONAR (σ) Selecciona un subconjunto de tuplas que satisfacen un predicado dado.
PROYECTO (π) Conserva únicamente los atributos indicados y elimina las filas duplicadas.
UNIÓN (∪) Devuelve todas las tuplas que aparecen en A o B sin duplicados.
DIFERENCIA DE CONJUNTOS (−) Devuelve las tuplas de A que no están en B.
INTERSECCIÓN (∩) Devuelve las tuplas que aparecen tanto en A como en B.
PRODUCTO CARTESIANO (×) Combina cada tupla de A con cada tupla de B.
INNER JOIN Conserva únicamente las tuplas que coinciden con la condición de unión.
UNIÓN THETA (θ) Unión en forma general utilizando cualquier predicado de comparación.
EQUI UNIR Unión Theta que utiliza únicamente comparaciones de igualdad.
UNIÓN NATURAL (⋈) Une relaciones basadas en atributos que comparten el mismo nombre y dominio.
UNIÓN EXTERNA IZQUIERDA (⟕) Conserva cada tupla de la relación de la izquierda y rellena la de la derecha con NULL.
UNIÓN EXTERNA DERECHA (⟖) Conserva cada tupla de la relación derecha y rellena la izquierda con NULL.
UNIÓN EXTERNA COMPLETA (⟗) Conserva todas las tuplas de ambas relaciones, rellenando los valores faltantes con NULL.

Preguntas Frecuentes

El álgebra relacional es un lenguaje matemático procedimental que se utiliza para definir operaciones sobre relaciones. SQL es un lenguaje de consulta declarativo que los motores de bases de datos traducen internamente en planes de ejecución de estilo algebraico.

Dos relaciones son compatibles entre sí cuando tienen el mismo número de atributos y cada atributo correspondiente comparte el mismo dominio. Las relaciones UNIÓN, INTERSECCIÓN y DIFERENCIA requieren compatibilidad entre sí.

Un producto cartesiano multiplica cada fila de A por cada fila de B, generando enormes relaciones intermedias con poco significado. Normalmente, se le añade un predicado SELECT para que funcione como una unión.

No. El álgebra relacional pura trata las relaciones como conjuntos, por lo que los duplicados se eliminan automáticamente después de cada operación. SQL se comporta de manera diferente: trabaja con multiconjuntos y solo elimina los duplicados cuando se utiliza DISTINCT.

El operador DIVISION responde a consultas "para todos"; por ejemplo, busca clientes que hayan pedido todos los productos de un catálogo. Devuelve las tuplas de una relación que coinciden con todas las tuplas de otra.

Utilice una unión externa cuando las filas no coincidentes aún conserven información relevante; por ejemplo, para listar a todos los clientes junto con los datos opcionales de los pedidos. Las uniones internas eliminan esas filas no coincidentes; las uniones externas las conservan con valores nulos.

Los asistentes de IA traducen expresiones algebraicas a SQL y viceversa, explican la precedencia de los operadores paso a paso e identifican los predicados de unión faltantes que, de otro modo, convertirían una consulta en un lento producto cartesiano.

Sí. Las herramientas de IA transforman preguntas sencillas como "clientes de la India que compraron todos los productos" en árboles algebraicos con los operadores SELECT, PROJECT y DIVISION, y luego los convierten en SQL ejecutable.

Resumir este post con: