Á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.
¿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 | 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 |
|---|---|
| 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.
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.
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.
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. |




