Ich kenne mindestens zwei verschiedene theoretische Ansätze zum Verständnis relationaler Datenbanken: Codds relationale Algebra / Kalkül und Kategorietheorie.
Gibt es eine Beziehung zwischen diesen beiden Ansätzen? Sind sie in gewissem Sinne gleichwertig? Gibt es eine einführende Arbeit, die erklärt, wie beide Frameworks relationale Datenbanken erklären?
Hintergrund: Vor einiger Zeit habe ich David Spivaks Kategorietheorie für Wissenschaftler gelesen, in der lange darüber diskutiert wurde, wie Kategorietheorie angewendet werden kann, um die Theorie relationaler Datenbanken zu verstehen. Da ich jedoch wenig persönliche Erfahrung darüber habe, was relationale Datenbanken sind oder warum sie nützlich sind, wusste ich zu diesem Zeitpunkt nicht genau, welche Tiefen von Einsichten in dem Buch enthalten sind.
In letzter Zeit habe ich jedoch etwas über SQL- Abfragen und zwei R- Pakete für die Datenmanipulation gelernt : dplyr und data.table . SQL kann anscheinend viele Ideen der relationalen Algebra / des Kalküls / des Modells von Codd ausdrücken , aber nicht alle . Darüber hinaus hat der Autor von dplyr, Hadley Wickham, ausdrücklich erklärt, dass seine dem Paket zugrunde liegende Philosophie auf Codds Arbeit zur relationalen Algebra beruht und die grundlegenden Befehle von data.table den Befehlen in SQL und dplyr ziemlich gut entsprechen.
Ich weiß auch, dass die Kategorietheorie viele Programmierer beeinflusst, die funktionale Programmiersprachen wie Haskell verwenden. Ich bin mir jedoch nicht wirklich bewusst, dass neben Hadley Wickhams Purrr- Paket für R, der Tatsache, dass Apache Spark in Scala geschrieben ist , und Technologien im Zusammenhang mit MapReduce irgendeine Verwendung von funktionaler Programmierung für Datenmanipulation oder Datenwissenschaft vorhanden ist .
Alle diese Art von sagt mir , dass es sollte zwischen Kategorientheorie und Codds relationale Algebra / Kalkül, aber ich habe noch nie gehört , von jemand machen eine solche Verbindung explizit oder erklären , wie es zu Grunde liegt die Design - Entscheidungen in der populären Datenmanipulation irgendeine Art von Beziehung sein und relationale Datenbanktechnologien. Ich vermute also auch, dass ich völlig falsch liegen könnte.
EDIT: Anscheinend hat David Spivak an einer " functorial query language (FQL) " gearbeitet. Dies scheint eine Anwendung einer solchen theoretischen Verbindung zu sein, sofern sie existiert.
Hinweis: Ich bin mir nicht sicher, ob "relationale Strukturen" das geeignete Tag für die Diskussion relationaler Datenbanken oder relationaler Algebra / Kalkül ist. Dieser Wikipedia-Artikel schlägt vor, dass sie miteinander verbunden sind, aber letztendlich weiß ich nicht, was der Ausdruck "relationale Struktur" bedeutet. Bitte zögern Sie nicht, erneut zu taggen.