HeadlinesBriefing favicon HeadlinesBriefing.com

Prelaクエリ言語:11行のSQL代替

Hacker News •
×

PrelaはUCLA Re PLで開発されている新しいクエリ言語です。この言語はSQLとは大きく異なりますが、その核心的なアイデアは非常にシンプルです。この短いチュートリアルでは、PythonでPrelaのトレーニング版を作成し、その基本原理を理解します。

以下のクエリは、アメリカ企業がproducedした映画で、タイトルにキャラクター名が含まれているものを見つけ、タイトルと各キャストメンバーのエイリアスを出力します。注意してください、同等のSQLクエリは20行を超えます。

Prelaの最初の特殊な点は、二元関係のみが存在することです、つまり2つの列を持つテーブルです。最初は非常に制限的に思えますが、複数の列を持つ広いテーブルを「二元化」するのは簡単です。

二元関係に焦点を当てる動機は、それらが関数を一般化することから来ています。関数は構成可能であるため、強力です。これはプログラムの構成要素となります。関数は各入力を一意の出力にマッピングしますが、関係は入力を複数の異なる出力にマッピングできます。ある意味で、関係は非決定的な関数と見なすことができます。

構成の力は、複数の.select呼び出しをチェーンするときに本当に現れます。外キーを使用して結合する場合は、常にIDを行に「解決」する必要がありますが、Prelaはそのステップを自動的に挿入し、以下のように書くことができ、まるで「映画の会社の国」のように読めます!

主要エンティティ:ロケーション:UCLA Re PL