Conozco al menos dos enfoques teóricos diferentes para comprender las bases de datos relacionales: álgebra / cálculo relacional de Codd y teoría de categorías.
¿Hay alguna relación entre estos dos enfoques? ¿Son en algún sentido equivalentes? ¿Existe algún trabajo introductorio que explique cómo ambos marcos explican las bases de datos relacionales?
Antecedentes: Hace un tiempo leí la teoría de la categoría de David Spivak para científicos, que pasó bastante tiempo discutiendo cómo la teoría de la categoría podría aplicarse para comprender la teoría de las bases de datos relacionales. Sin embargo, al tener poca experiencia personal sobre qué son las bases de datos relacionales o por qué son útiles, en ese momento no aprecié completamente la profundidad de la información que se encuentra en el libro.
Sin embargo, recientemente he estado aprendiendo sobre consultas SQL y dos paquetes R para la manipulación de datos: dplyr y data.table . SQL aparentemente puede expresar muchas de las ideas del álgebra / cálculo / modelo relacional de Codd, pero no todas . Además, el autor de dplyr, Hadley Wickham, ha declarado explícitamente que su filosofía subyacente al paquete se basa en el trabajo de Codd sobre álgebra relacional, y los comandos básicos de data.table se correlacionan bastante bien con los comandos en SQL y dplyr.
También sé que la teoría de categorías influye en muchos programadores que usan lenguajes de programación funcionales como Haskell. Sin embargo, no estoy al tanto de que haya algún uso de la programación funcional para la manipulación de datos o la ciencia de datos, además del paquete de ronroneo de Hadley Wickham para R, el hecho de que Apache Spark está escrito en Scala y las tecnologías relacionadas con MapReduce .
Todo esto me sugiere que debería haber algún tipo de relación entre la teoría de categorías y el álgebra / cálculo relacional de Codd, pero nunca he oído hablar de alguien que explique tal conexión o explique cómo subyace a las decisiones de diseño en la manipulación de datos populares. y tecnologías de bases de datos relacionales. Entonces también sospecho que podría estar completamente equivocado.
EDITAR: Aparentemente, David Spivak ha trabajado en un " lenguaje de consulta funcional (FQL) ". Parece que podría ser una aplicación de una conexión tan teórica, siempre que exista.
Nota: No estoy seguro de si "estructuras relacionales" es la etiqueta apropiada para la discusión de bases de datos relacionales o álgebra / cálculo relacional. Este artículo de Wikipedia sugiere que podrían estar conectados, pero finalmente no sé qué significa la frase "estructura relacional". No dude en volver a etiquetar.