Je connais au moins deux approches théoriques différentes pour comprendre les bases de données relationnelles: l'algèbre / calcul relationnel de Codd et la théorie des catégories.
Existe-t-il une relation entre ces deux approches? Sont-ils en quelque sorte équivalents? Existe-t-il des travaux d'introduction expliquant comment ces deux cadres expliquent les bases de données relationnelles?
Contexte: Il y a quelque temps, j'ai lu la théorie des catégories pour les scientifiques de David Spivak qui a passé un certain temps à discuter de la façon dont la théorie des catégories pourrait être appliquée pour comprendre la théorie des bases de données relationnelles. Cependant, ayant peu d'expérience personnelle sur ce que sont les bases de données relationnelles ou pourquoi elles sont utiles, à l'époque, je n'appréciais pas pleinement les profondeurs de la perspicacité trouvées dans le livre.
Cependant, récemment, j'ai découvert les requêtes SQL et deux packages R pour la manipulation des données: dplyr et data.table . SQL peut apparemment exprimer une grande partie des idées de l'algèbre / calcul / modèle relationnel de Codd, mais pas toutes . De plus, l'auteur de dplyr, Hadley Wickham, a déclaré explicitement que sa philosophie sous-jacente au package est basée sur les travaux de Codd sur l'algèbre relationnelle et que les commandes de base de data.table correspondent assez bien aux commandes en SQL et en dplyr.
Je sais également que la théorie des catégories influence de nombreux programmeurs utilisant des langages de programmation fonctionnels comme Haskell. Cependant, je ne suis pas vraiment conscient de l'utilisation de la programmation fonctionnelle pour la manipulation de données ou la science des données, en plus du paquet purrr de Hadley Wickham pour R, du fait qu'Apache Spark est écrit en Scala et des technologies liées à MapReduce .
Tout cela me suggère qu'il devrait y avoir une sorte de relation entre la théorie des catégories et l'algèbre / calcul relationnel de Codd, mais je n'ai jamais entendu parler de quelqu'un expliquant une telle connexion ou expliquant comment elle sous-tend les décisions de conception dans la manipulation populaire des données et technologies de bases de données relationnelles. Je pense donc aussi que je peux me tromper complètement.
EDIT: Apparemment, David Spivak a travaillé sur un " langage de requête functorial (FQL) ". Cela peut sembler être une application d'une telle connexion théorique, à condition qu'elle existe.
Remarque: je ne sais pas si "structures relationnelles" est la balise appropriée pour discuter des bases de données relationnelles ou de l'algèbre / calcul relationnel. Cet article de Wikipédia suggère qu'ils pourraient être connectés, mais finalement je ne sais pas ce que signifie l'expression "structure relationnelle". N'hésitez pas à réétiqueter.