Мені відомо щонайменше два різні теоретичні підходи для розуміння реляційних баз даних: реляційна алгебра / обчислення Кодда та теорія категорій.
Чи є зв’язок між цими двома підходами? Вони в якомусь сенсі рівнозначні? Чи є якась вступна робота, яка пояснює, як обидві ці рамки пояснюють реляційні бази даних?
Передісторія: Нещодавно я читав « Теорію категорій для вчених Девіда Співака», яка витрачала досить багато часу на обговорення того, як теорія категорій може бути застосована для розуміння теорії реляційних баз даних. Однак, маючи невеликий особистий досвід щодо того, що таке реляційні бази даних або чому вони корисні, я в той час не повністю оцінив глибину розуміння, виявлену в книзі.
Однак нещодавно я дізнався про запити SQL та два пакети R для обробки даних: dplyr та data.table . SQL, очевидно, може висловити велику частину ідей реляційної алгебри / обчислення / моделі Кодда, але не всі . Більше того, автор dplyr, Хедлі Вікхем, чітко заявив, що його філософія, що лежить в основі пакету, заснована на роботі Кодда над реляційною алгеброю, а основні команди data.table досить добре відображають команди в SQL і dplyr.
Я також знаю, що теорія категорій впливає на багато програмістів, які використовують функціональні мови програмування, такі як Haskell. Однак я не знаю, чи існує функціональне програмування для маніпулювання даними або наукових даних, окрім пакету Purrr Хедлі Вікхема для R, факт, що Apache Spark написаний у Scala , та технології, пов’язані з MapReduce .
Все це подібне мені підказує, що між теорією категорій та реляційною алгеброю / обчисленням Кодда має бути якийсь зв’язок, але я ніколи не чув, щоб хтось робив таке з'єднання явним або пояснював, як воно лежить в основі дизайнерських рішень при популярній маніпуляції даними. і технології реляційних баз даних. Тому я також підозрюю, що можу бути абсолютно неправим.
EDIT: Мабуть, Девід Співак працював над " функціональною мовою запитів (FQL) ". Це здається, що це може бути застосування такого теоретичного зв'язку, за умови його існування.
Примітка. Я не впевнений, чи "реляційні структури" є відповідним тегом для обговорення реляційних баз даних або реляційної алгебри / обчислення. Ця стаття у Вікіпедії дозволяє припустити, що вони можуть бути пов'язані, але в кінцевому рахунку я не знаю, що означає фраза "реляційна структура". Будь ласка, повторно позначте тег.