Mam świadomość co najmniej dwóch różnych teoretycznych podejść do zrozumienia relacyjnych baz danych: relacyjnej algebry / rachunku Codda i teorii kategorii.
Czy istnieje związek między tymi dwoma podejściami? Czy są w pewnym sensie równoważne? Czy są jakieś prace wprowadzające wyjaśniające, w jaki sposób oba te środowiska wyjaśniają relacyjne bazy danych?
Tło: Jakiś czas temu przeczytałem Teorię kategorii Davida Spivaka dla naukowców, która poświęciła sporo czasu na dyskusje, w jaki sposób można zastosować teorię kategorii do zrozumienia teorii relacyjnych baz danych. Mając jednak niewielkie osobiste doświadczenie na temat tego, jakie są relacyjne bazy danych lub dlaczego są one przydatne, w tym czasie nie doceniałem w pełni głębi wglądu zawartej w książce.
Jednak ostatnio uczyłem się o zapytaniach SQL i dwóch pakietach R do manipulacji danymi: dplyr i data.table . SQL może najwyraźniej wyrażać wiele pomysłów algebry relacyjnej / rachunku / modelu Codda, ale nie wszystkie . Co więcej, autor dplyr, Hadley Wickham, wyraźnie stwierdził, że jego filozofia leżąca u podstaw pakietu opiera się na pracy Codda nad relacyjną algebrą oraz podstawowych komendach data.table dość dobrze odwzorowujących polecenia w SQL i dplyr.
Wiem też, że teoria kategorii wpływa na wielu programistów używających funkcjonalnych języków programowania, takich jak Haskell. Jednak tak naprawdę nie jestem świadom, że istnieje jakiekolwiek zastosowanie programowania funkcjonalnego do manipulacji danymi lub nauki danych, oprócz mruczącego pakietu Hadleya Wickhama dla R, faktu, że Apache Spark jest napisany w Scali oraz technologii związanych z MapReduce .
Wszystkie tego rodzaju sugestie sugerują mi, że powinien istnieć jakiś związek między teorią kategorii a relacyjną algebrą / rachunkiem Codda, ale nigdy nie słyszałem o tym, aby ktoś wyraźnie określał takie powiązanie lub wyjaśniał, w jaki sposób leży u podstaw decyzji projektowych w popularnych manipulacjach danymi i technologie relacyjnych baz danych. Podejrzewam więc, że mogłem się całkowicie mylić.
EDYCJA: Najwyraźniej David Spivak pracował nad „ funkcjonalnym językiem zapytań (FQL) ”. To brzmi jak zastosowanie takiego teoretycznego połączenia, pod warunkiem, że istnieje.
Uwaga: Nie jestem pewien, czy „struktury relacyjne” są odpowiednim znacznikiem do dyskusji na temat relacyjnych baz danych lub relacyjnej algebry / rachunku różniczkowego. Ten artykuł w Wikipedii sugeruje, że mogą być ze sobą powiązane, ale ostatecznie nie wiem, co oznacza wyrażenie „struktura relacyjna”. Ponownie otaguj.