¿Son diferentes la teoría de categorías y el álgebra relacional?

Tuve que buscar álgebra relacional para refrescar mi memoria.

Ellos son muy diferentes.

El álgebra relacional se refiere a la manipulación de las relaciones: subconjuntos de [matemáticas] A \ veces B \ veces \ cdots \ veces C [/ matemáticas], donde [matemáticas] A, B, \ puntos, C [/ matemáticas] son ​​varios conjuntos (esencialmente , tipos de valor). El álgebra relacional se refiere a cómo combinar relaciones para crear nuevas relaciones, filtrar relaciones, etc.

La teoría de categorías, por otro lado, se basa en “categorías”, que tienen una colección de “objetos” y “mapas” entre esos objetos. Por ejemplo, la “Categoría de conjuntos” tiene la clase de conjuntos adecuada como sus objetos y los mapas son funciones entre conjuntos. Del mismo modo, la “Categoría de espacios vectoriales” tiene todos los espacios vectoriales como sus objetos y los mapas son posibles transformaciones lineales entre espacios vectoriales. Para que una categoría sea una categoría, los mapas deben cumplir un par de requisitos: (1) Si [matemática] A, B, C [/ matemática] son ​​tres objetos en la categoría y [matemática] f: A \ a B , g: B \ to C [/ math] son ​​dos mapas entre [math] A, B [/ math] y [math] B, C [/ math], luego hay un mapa [math] g \ circ f: A \ to C [/ math] (cierre transitivo), y (2) si [math] f, g, h [/ math] son ​​tres mapas, entonces (si está definido) [math] (f \ circ g) \ circ h = f \ circ (g \ circ h) [/ math] (asociatividad). En general, los mapas tienden a ser “morfismos”, o asignaciones que preservan parte de la estructura subyacente. Si tuviera una categoría de grupos (donde cada objeto era un grupo), esperaría que los mapas en esa categoría preservarían la operación del grupo (p. Ej., Si un grupo fuera enteros añadidos y otro grupo tuviera poderes reales de 2). bajo multiplicación, esperarías que [math] a + b [/ math] se mapearía a [math] 2 ^ a2 ^ b [/ math]).

A diferencia del álgebra relacional, la teoría de categorías es fundamental: se puede usar como base para todas las matemáticas, de la misma manera que la teoría de conjuntos. Exactamente cómo, no sé: mi clase de teoría de categorías hace 18 años no llegó tan lejos.

El poder de la teoría de categorías proviene del hecho de que es muy general. Una prueba en la teoría de categorías funciona igual de bien cuando se traduce al lenguaje de conjuntos como al lenguaje de álgebra lineal, o cualquier otra categoría que pueda nombrar, incluso cuando piense que las categorías no tienen absolutamente ninguna similitud, solo el hecho de que hay morfismos

Yendo a un nivel superior, existe el concepto de “functores”, que son asignaciones de una categoría a otra que preservan la estructura de la categoría; en otras palabras, los functores son las asignaciones en la categoría de categorías. Los functores son los que le permiten mapear una prueba de una categoría a otra, y dado que los functores son parte de una categoría, puede usar las herramientas de la teoría de categorías (incluidos los functores) para probar cómo funcionan los functores.

La teoría de categorías es mucho más grande, mucho más amplia y mucho más complicada que el álgebra relacional.

La mejor pregunta podría ser: ¿el álgebra relacional es una categoría? Por supuesto. Cualquier cosa es probablemente una categoría si puedes entrecerrar los ojos y representarla a través de un gráfico y dibujar líneas significativas entre ellos. Además, el álgebra relacional es una forma más fuerte de un gráfico, donde las flechas => claves foráneas => se unen => retrocesos. Del mismo modo, las sentencias SQL => morfismos (por ejemplo, la dualidad de las vistas SQL son código y datos al mismo tiempo). Relaciones de muchos a uno => pedidos anticipados, etc. Principalmente una cuestión de terminología.

La mayor diferencia es que generalmente en el mundo de la teoría de categorías, las flechas describen formas de transformar esquemas completos: FQL vs SQL, etc.