Estou ciente de pelo menos duas abordagens teóricas diferentes para entender os bancos de dados relacionais: a álgebra / cálculo relacional de Codd e a teoria das categorias.
Existe alguma relação entre essas duas abordagens? Em certo sentido, eles são equivalentes? Existe algum trabalho introdutório explicando como essas duas estruturas explicam bancos de dados relacionais?
Antecedentes: Há algum tempo, li a Teoria das categorias para cientistas de David Spivak, que passou bastante tempo discutindo como a teoria das categorias poderia ser aplicada para entender a teoria dos bancos de dados relacionais. No entanto, tendo pouca experiência pessoal sobre o que são bancos de dados relacionais ou por que são úteis, na época eu não apreciava completamente as profundezas do insight encontradas no livro.
No entanto, recentemente eu tenho aprendido sobre consultas SQL e dois pacotes R para manipulação de dados: dplyr e data.table . Aparentemente, o SQL pode expressar muitas das idéias da álgebra / cálculo / modelo relacional de Codd, mas não todas . Além disso, o autor do dplyr, Hadley Wickham, declarou explicitamente que sua filosofia subjacente ao pacote é baseada no trabalho de Codd em álgebra relacional e os comandos básicos da tabela data.table são muito bem mapeados para comandos no SQL e no dplyr.
Eu também sei que a teoria das categorias influencia muitos programadores que usam linguagens de programação funcional como Haskell. No entanto, não estou realmente ciente de que existe algum uso de programação funcional para manipulação de dados ou ciência de dados, além do pacote purrr de Hadley Wickham para R, o fato de o Apache Spark estar escrito em Scala e as tecnologias relacionadas ao MapReduce .
Tudo isso sugere que deveria haver algum tipo de relação entre a teoria das categorias e a álgebra / cálculo relacional de Codd, mas nunca ouvi falar de alguém que explique essa conexão ou explique como ela está subjacente às decisões de projeto na manipulação de dados popular e tecnologias de banco de dados relacional. Então, eu também suspeito que poderia estar completamente errado.
Edição: Aparentemente, David Spivak trabalhou em uma " linguagem de consulta funcional (FQL) ". Parece que pode ser uma aplicação dessa conexão teórica, desde que exista.
Nota: Não tenho certeza se "estruturas relacionais" é a tag apropriada para discussão de bancos de dados relacionais ou álgebra / cálculo relacional. Este artigo da Wikipedia sugere que eles podem estar conectados, mas, no final das contas, não sei o que a frase "estrutura relacional" significa. Sinta-se livre para re-etiquetar.