Álgebra relacional

Cuando trabajamos con el modelo relacional, tenemos 2 grupos de operaciones que podemos usar. Uno de ellos es el álgebra relacional.

Al trabajar con elmodelo relacional, tenemos 2 grupos de operaciones que podemos utilizar.

El primero se llamaálgebra relacionaly es unlenguaje procedimental.

En esto se basa SQL y, como tal, es muy importante aprenderlo, ya que SQL es el estándar de facto para trabajar con bases de datos relacionales.

El segundo se llamacálculo relacionaly en lugar de ser de procedimiento, es unlenguaje declarativo. Es una diferencia fundamental en cómo interactuamos con las bases de datos, porque no le dices al software de la base de datosqué hacer, solo diloLo que quierasy deje que resuelva los detalles de cómo hacerlo.

Ésta es una distinción común entre los lenguajes de programación. En la interfaz moderna, decimos que la interacción con DOM en React es declarativa. El uso de JavaScript vanilla para modificar el DOM es un procedimiento.

Idiomas comoRegistro de datos,QBEyQUELtienen el cálculo relacional como base. No voy a hablar de esto porque creo que es una forma mucho más específica de hacer las cosas en comparación con el enfoque más práctico seguido por SQL, pero puede verlo si lo desea.

Dada esta introducción, sigamos conálgebra relacional.

Contamos con 2 tipos de operaciones:

  • operaciones primarias
  • unirse a operaciones

Operaciones primarias en álgebra relacional

Las operaciones principales son:

  • Uniónpara obtener datos de dos tablas, generando una suma de las tuplas, siempre que las dos tablas tengan las mismas columnas y tipos de atributos (dominio).
  • diferenciapara obtener los datos contenidos en la primera tabla pero no en la segunda, generando una diferencia de las tuplas, siempre que las dos tablas tengan las mismas columnas y tipos de atributos (dominio).
  • producto cartesianopara obtener datos de dos tablas y generar una sola tabla que combine los datos de ellas, en función de un valor de atributo.
  • Seleccionepara extraer solo algunas de las tuplas (filas) contenidas en una tabla según ciertos criterios.
  • proyectopara generar una nueva tabla que contenga solo uno o más atributos (columnas) de una tabla existente
  • rebautizarse utiliza para cambiar el nombre de un atributo, se utiliza para evitar conflictos cuando varias tablas tienen el mismo nombre para diferentes datos

Unir operaciones en álgebra relacional

Las uniones son probablemente las operaciones más poderosas que puede realizar con el álgebra relacional. Se basan en operaciones primarias y le permiten correlacionar datos contenidos en diferentes relaciones (tablas).

Nota: pronto hablaré sobre las uniones en la práctica en un DBMS, esto es principalmente teoría.

Tenemos 2 versiones principales de unión:unión naturalytheta unirse. All the other versions are extracted from those 2.

Unión natural

Unión naturalcorrelaciona dos relaciones (tablas) y crea una nueva tabla basada en los mismos valores de un atributo.

Primero, necesitamos dos relaciones con el mismo nombre de atributo (columna). Entonces, si los valores en los atributos en la relación A no coinciden en los atributos en la relación B, la fila no es parte del resultado, se ignora.

Ejemplo:

Relación A

ID de empleado Nombre
1 Marcos
2 Tony
3 Almiar

Relación B

Nombre del gerente ID de empleado
Todd 1
Albert 2

Podemos realizar una combinación natural para obtener el nombre del jefe de cada empleado:

ID de empleado Nombre Nombre del gerente
1 Marcos Todd
2 Tony Albert

Dado que las relaciones tienen en común el nombre del atributo Id. De empleado, solo está presente una vez en el resultado, no 2 veces.

El empleado # 3 presente en la relación A, Rick, no está incluido en esta tabla, porque no hay una entrada correspondiente en la relación B.

Theta-join

Una theta-join permite realizar una combinación basada en cualquier criterio para comparar dos columnas en dos relaciones diferentes, no solo la igualdad como lo hace la combinación natural.

Realiza un producto cartesiano de dos tablas, y filtra los resultados en función de la selección que queremos hacer.

Equi-join

Equi-join es una combinación theta, donde la selección se basa en la igualdad entre los valores de los atributos en las dos tablas diferentes.

La diferencia con la unión natural es que podemos elegir qué nombres de atributos (columnas) queremos comparar.

Hablaremos mucho más sobre las uniones más adelante cuando se introduzca SQL, para que podamos usarlas en la práctica.


Más tutoriales de bases de datos: