Чи існує взаємозв'язок між реляційною алгеброю / численням і теорією категорій?


17

Мені відомо щонайменше два різні теоретичні підходи для розуміння реляційних баз даних: реляційна алгебра / обчислення Кодда та теорія категорій.

Чи є зв’язок між цими двома підходами? Вони в якомусь сенсі рівнозначні? Чи є якась вступна робота, яка пояснює, як обидві ці рамки пояснюють реляційні бази даних?

Передісторія: Нещодавно я читав « Теорію категорій для вчених Девіда Співака», яка витрачала досить багато часу на обговорення того, як теорія категорій може бути застосована для розуміння теорії реляційних баз даних. Однак, маючи невеликий особистий досвід щодо того, що таке реляційні бази даних або чому вони корисні, я в той час не повністю оцінив глибину розуміння, виявлену в книзі.

Однак нещодавно я дізнався про запити SQL та два пакети R для обробки даних: dplyr та data.table . SQL, очевидно, може висловити велику частину ідей реляційної алгебри / обчислення / моделі Кодда, але не всі . Більше того, автор dplyr, Хедлі Вікхем, чітко заявив, що його філософія, що лежить в основі пакету, заснована на роботі Кодда над реляційною алгеброю, а основні команди data.table досить добре відображають команди в SQL і dplyr.

Я також знаю, що теорія категорій впливає на багато програмістів, які використовують функціональні мови програмування, такі як Haskell. Однак я не знаю, чи існує функціональне програмування для маніпулювання даними або наукових даних, окрім пакету Purrr Хедлі Вікхема для R, факт, що Apache Spark написаний у Scala , та технології, пов’язані з MapReduce .

Все це подібне мені підказує, що між теорією категорій та реляційною алгеброю / обчисленням Кодда має бути якийсь зв’язок, але я ніколи не чув, щоб хтось робив таке з'єднання явним або пояснював, як воно лежить в основі дизайнерських рішень при популярній маніпуляції даними. і технології реляційних баз даних. Тому я також підозрюю, що можу бути абсолютно неправим.

EDIT: Мабуть, Девід Співак працював над " функціональною мовою запитів (FQL) ". Це здається, що це може бути застосування такого теоретичного зв'язку, за умови його існування.

Примітка. Я не впевнений, чи "реляційні структури" є відповідним тегом для обговорення реляційних баз даних або реляційної алгебри / обчислення. Ця стаття у Вікіпедії дозволяє припустити, що вони можуть бути пов'язані, але в кінцевому рахунку я не знаю, що означає фраза "реляційна структура". Будь ласка, повторно позначте тег.


2
Ви бачили роботу Таннена та Бунемана, наприклад, Структурний підхід до дизайну мови запитів ?
reinierpost

@reinierpost у мене немає, але я на це подивлюсь.
Chill2Macht

Відповіді:


12

Категоричні підходи до мов запитів трохи цікаві, але я думаю, що це дуже цікава ніша!

Дві ключові фігури в цій галузі - Пітер Бунеман і Торстен Груст . Очевидно, що вони не виконали всі роботи, але якщо ви почнете з їхніх робіт і відстежите графік цитування, ви отримаєте досить непогане покриття області.

Центральне спостереження, з якого вони працюють, полягає в тому, що оскільки відношення можна розглядати як набір кортежів, функтор функціонування може бути інтерпретований як прийняття типу кортежу до типу відносин над цим кортежем. Тоді, той факт, що функтор фуршетів утворює монаду, означає, що ви можете використовувати ідеї, навіяні синтаксисом монади Філіпа Вадлера, щоб дати категорично натхнене обчислення для запитів із багатою еквівалентною теорією.

Дійсно, система запитів Buneman et al. Клейслі отримала свою назву від того, що монади іноді називають "трійками Клейслі".

Кандидатська дисертація Груста, « Зрозумілі запити» , детально розглядає ці ідеї, включаючи використання мональних морфізмів для моделювання операторів агрегації (як sumі count). Груст та його група також побудували систему Ferry , яка вивчала, як інтегрувати бази даних у мови програмування.

():П(Х)×П(Y)П(Х×Y)мк:П(П(Х))П(Х)

Це, мабуть, основний потік роботи над категоричними підходами до мов запитів.

Нова ідея (яка, на жаль, не набрала такої тяги, як я думаю, що заслуговує) - робота Девіда Співака над використанням спрощених наборів для моделювання баз даних - див. Simplicial Databases . Основна інновація полягає в тому, що спрощена структура дозволяє чітко моделювати всю схему бази даних, включаючи взаємозв'язки між таблицями (наприклад, системою зовнішніх ключів), і це дає змогу надати семантику операціям оновлення схеми.

Іншим відхиленням від стандартних мов запитів є обмежені мови логіки програмування, такі як Datalog, які можна розуміти як алгебра реляції плюс оператор з фіксованою точкою. Фіксовані точки дозволяють виражати такі речі, як запити про перехідне закриття, і так нові бази даних, як Datomic, містять мови запитів на основі Datalog. Мій аспірант Майкл Арнценіус і я вивчили семантику Datalog і придумали функціональний аналог, який ми називаємо Datafun , який має досить категоричну інтерпретацію щодо категорій постів і напіврешеток.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.