関係代数/計算とカテゴリー理論の間に関係はありますか?


17

リレーショナルデータベースを理解するための少なくとも2つの異なる理論的アプローチを知っています。Coddの関係代数/計算とカテゴリ理論です。

これら2つのアプローチの間に関係はありますか?ある意味では同等ですか?これらのフレームワークの両方がリレーショナルデータベースをどのように説明するかを説明する導入作業はありますか?

背景: しばらく前に、David Spivakの科学者向けカテゴリ理論を読みましたこのカテゴリ理論では、リレーショナルデータベースの理論を理解するために、カテゴリ理論をどのように適用できるかについてかなり議論しました。ただし、リレーショナルデータベースとは何か、またはそれらが有用である理由について個人的な経験はほとんどありませんでしたが、当時は、この本に見られる深い洞察を十分に理解していませんでした。

しかし、最近、SQLクエリと、データ操作用の2つのRパッケージdplyrdata.tableについて学びました。SQLは明らかにCoddの関係代数/計算/モデルのアイデア多くを表現できますが、すべてではありません。また、dplyrの著者、ハドレーウィッカムは、している明示的に述べパッケージの基礎となる彼の哲学は、リレーショナル代数にコッドの仕事に基づいて、およびの基本的なコマンドであることをdata.table SQLとdplyrのコマンドにかなりよくマップ。

カテゴリー理論は、Haskellのような関数型プログラミング言語を使用する多くのプログラマーに影響を与えることも知っています。ただし、R向けのHadley Wickhamのpurrrパッケージ、Apache SparkScalaで記述されているという事実、およびMapReduceに関連するテクノロジー以外に、データ操作またはデータサイエンスに関数型プログラミングが使用されていることはあまり知りません。

この種のすべては、カテゴリ理論とコッドの関係代数/計算との間に何らかの関係があるべきだと示唆していますが、そのような接続を明示的にしたり、一般的なデータ操作の設計決定の根底にあることを説明したりする人を聞いたことはありませんおよびリレーショナルデータベーステクノロジー。それで、私は完全に間違っているかもしれないと疑っています。

編集:どうやらDavid Spivakは「関数クエリ言語(FQL)」に取り組んでいるようです。これは、存在する限り、このような理論的な接続のアプリケーションである可能性があります。

注:「リレーショナル構造」がリレーショナルデータベースまたはリレーショナル代数/計算の議論に適切なタグであるかどうかはわかりません。このウィキペディアの記事は、それらが接続されている可能性を示唆していますが、最終的には「リレーショナル構造」というフレーズの意味がわかりません。再度タグを付けてください。


2
TannenとBunemanの作品、たとえば、クエリ言語設計への構造的アプローチを見ましたか?
reinierpost

@reinierpostまだ持っていませんが、見ていきます。
Chill2Macht

回答:


12

クエリ言語へのカテゴリアプローチは、少しニッチな関心ですが、私はそれが非常に興味深いニッチだと思います!

この分野の重要人物の2人は、ピーターブネマントーステングラストです。明らかに、彼らはすべての仕事をしませんでしたが、彼らの論文から始めて引用グラフをトレースすると、その地域のかなり良い報道を得ます。

それらが機能する中心的な観察は、リレーションはタプルのセットと見なすことができるため、パワーセットファンクタはタプルタイプをそのタプルのリレーションのタイプに変換すると解釈できることです。そして、powersetファンクターがモナドを形成するという事実は、Philip Wadlerのモナド理解構文に触発されたアイデアを使用して、豊富な方程式理論を使用したクエリのカテゴリに触発された計算を提供できることを意味します。

実際、BunemanらのクエリシステムKleisliは、モナドが「Kleisli triples」と呼ばれることもあるという事実からその名前を得ました。

Grustの博士論文、Comprehending Queriesは、これらのアイデアを詳細に解決し、モナド射を使用して集約演算子(sumおよびなどcount)をモデル化します。Grustと彼のグループは、データベースをプログラミング言語に統合する方法を研究したシステムFerryも構築しました。

この作業の主な問題の1つ(およびメモリが提供される場合はKleisliでも)は、モナドクエリ言語はリレーショナル代数よりも表現力が高い傾向があることです-クエリはセットのセットを処理できます。これをSQLまたはリレーショナル代数にコンパイルするには多少の注意が必要です(たとえば、Cheney et alの「言語統合クエリの実用的な理論」を参照)が、基本的な問題には非常に優れたカテゴリ定式があります。関係代数は、パワーセットファンクターのモノイダル構造、つまりデカルト積自然変換の存在のみを使用します ; また、モナドクエリ言語は結合を要求します、Pバツ×PYPバツ×YμPPバツPバツ

これはおそらく、クエリ言語へのカテゴリカルアプローチに関する主要な作業の流れです。

新しいアイデア(残念なことに、私が思うに十分な牽引力を得ていない)は、データベースをモデル化するために単体セットを使用することに関するDavid Spivakの研究です-Simplicial Databasesを参照してください。中心的な革新は、単純構造により、テーブル間の関係(外部キーのシステムなど)を含むデータベーススキーマ全体を明示的にモデリングできることです。これにより、スキーマ更新操作にセマンティクスを与えることができます。

標準クエリ言語からのもう1つの逸脱は、Datalogなどの制限された論理プログラミング言語です。これは、リレーショナル代数と固定小数点演算子として理解できます。固定小数点を使用すると、推移的閉包クエリなどを表現できるため、データログに基づいたDatomic機能クエリ言語などの新しいデータベースを使用できます。私の博士課程の学生、Michael Arntzeniusと私はDatalogのセマンティクスを研究し、Datafunと呼ばれる機能的アナログを考え出しました

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.